From eeaae6209f238b838b9b7fdd9bbef89f4f858fa3 Mon Sep 17 00:00:00 2001 From: jonz94 Date: Thu, 12 Dec 2024 20:31:14 +0800 Subject: [PATCH] feat(parser): Add `ButtonCardView` (#834) --- src/parser/classes/ButtonCardView.ts | 18 ++++++++++++++++++ src/parser/nodes.ts | 1 + 2 files changed, 19 insertions(+) create mode 100644 src/parser/classes/ButtonCardView.ts diff --git a/src/parser/classes/ButtonCardView.ts b/src/parser/classes/ButtonCardView.ts new file mode 100644 index 00000000..fe4b76d4 --- /dev/null +++ b/src/parser/classes/ButtonCardView.ts @@ -0,0 +1,18 @@ +import NavigationEndpoint from './NavigationEndpoint.js'; +import { YTNode } from '../helpers.js'; +import type { RawNode } from '../index.js'; + +export default class ButtonCardView extends YTNode { + static type = 'ButtonCardView'; + + title: string; + icon_name: string; + on_tap_endpoint: NavigationEndpoint; + + constructor(data: RawNode) { + super(); + this.title = data.title; + this.icon_name = data.icon.sources[0].clientResource.imageName; + this.on_tap_endpoint = new NavigationEndpoint(data.rendererContext.commandContext.onTap); + } +} diff --git a/src/parser/nodes.ts b/src/parser/nodes.ts index a23778d1..c24cc35d 100644 --- a/src/parser/nodes.ts +++ b/src/parser/nodes.ts @@ -33,6 +33,7 @@ export { default as BadgeView } from './classes/BadgeView.js'; export { default as BrowseFeedActions } from './classes/BrowseFeedActions.js'; export { default as BrowserMediaSession } from './classes/BrowserMediaSession.js'; export { default as Button } from './classes/Button.js'; +export { default as ButtonCardView } from './classes/ButtonCardView.js'; export { default as ButtonView } from './classes/ButtonView.js'; export { default as C4TabbedHeader } from './classes/C4TabbedHeader.js'; export { default as CallToActionButton } from './classes/CallToActionButton.js';