From dc79b19d56f0601229c8a5f168532fbcf518358a Mon Sep 17 00:00:00 2001 From: patrickkfkan <55383971+patrickkfkan@users.noreply.github.com> Date: Wed, 10 Aug 2022 02:37:19 +0800 Subject: [PATCH] refactor: migrate `MusicCarouselShelfBasicHeader` to TypeScript and add `more_content` prop (#132) * refactor: migrate `MusicCarouselShelfBasicHeader` to TS * feat: `MusicCarouselShelfBasicHeader.more_content` --- .../classes/MusicCarouselShelfBasicHeader.js | 24 ------------- .../classes/MusicCarouselShelfBasicHeader.ts | 35 +++++++++++++++++++ 2 files changed, 35 insertions(+), 24 deletions(-) delete mode 100644 src/parser/classes/MusicCarouselShelfBasicHeader.js create mode 100644 src/parser/classes/MusicCarouselShelfBasicHeader.ts diff --git a/src/parser/classes/MusicCarouselShelfBasicHeader.js b/src/parser/classes/MusicCarouselShelfBasicHeader.js deleted file mode 100644 index 3641eaed..00000000 --- a/src/parser/classes/MusicCarouselShelfBasicHeader.js +++ /dev/null @@ -1,24 +0,0 @@ -import Text from './misc/Text'; -import Thumbnail from './misc/Thumbnail'; -import { YTNode } from '../helpers'; - -class MusicCarouselShelfBasicHeader extends YTNode { - static type = 'MusicCarouselShelfBasicHeader'; - - constructor(data) { - super(); - - if (data.strapline) { - this.strapline = new Text(data.strapline).toString(); - } - - this.title = new Text(data.title).toString(); - // This.label = data.accessibilityData.accessibilityData.label; - // ^^ redundant? - if (data.thumbnail) { - this.thumbnail = Thumbnail.fromResponse(data.thumbnail.musicThumbnailRenderer.thumbnail); - } - } -} - -export default MusicCarouselShelfBasicHeader; \ No newline at end of file diff --git a/src/parser/classes/MusicCarouselShelfBasicHeader.ts b/src/parser/classes/MusicCarouselShelfBasicHeader.ts new file mode 100644 index 00000000..8ba9d228 --- /dev/null +++ b/src/parser/classes/MusicCarouselShelfBasicHeader.ts @@ -0,0 +1,35 @@ +import Text from './misc/Text'; +import { YTNode } from '../helpers'; +import MusicThumbnail from './MusicThumbnail'; +import Parser from '..'; +import Button from './Button'; + +class MusicCarouselShelfBasicHeader extends YTNode { + static type = 'MusicCarouselShelfBasicHeader'; + + strapline?: Text; + title: Text; + thumbnail?: MusicThumbnail | null; + more_content?: Button | null; + + constructor(data: any) { + super(); + + if (data.strapline) { + this.strapline = new Text(data.strapline); + } + + this.title = new Text(data.title); + // This.label = data.accessibilityData.accessibilityData.label; + // ^^ redundant? + if (data.thumbnail) { + this.thumbnail = Parser.parseItem(data.thumbnail, MusicThumbnail); + } + + if (data.moreContentButton) { + this.more_content = Parser.parseItem