refactor: migrate MusicCarouselShelfBasicHeader to TypeScript and add more_content prop (#132)

* refactor: migrate `MusicCarouselShelfBasicHeader` to TS

* feat: `MusicCarouselShelfBasicHeader.more_content`
This commit is contained in:
patrickkfkan
2022-08-10 02:37:19 +08:00
committed by GitHub
parent ad3ab4f637
commit dc79b19d56
2 changed files with 35 additions and 24 deletions

View File

@@ -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;

View File

@@ -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<MusicThumbnail>(data.thumbnail, MusicThumbnail);
}
if (data.moreContentButton) {
this.more_content = Parser.parseItem<Button>(data.moreContentButton, Button);
}
}
}
export default MusicCarouselShelfBasicHeader;