Files
YouTube.js/src/parser/classes/MusicImmersiveHeader.ts

41 lines
1.5 KiB
TypeScript

import { YTNode } from '../helpers.js';
import { Parser, type RawNode } from '../index.js';
import Button from './Button.js';
import MusicThumbnail from './MusicThumbnail.js';
import NavigationEndpoint from './NavigationEndpoint.js';
import SubscribeButton from './SubscribeButton.js';
import ToggleButton from './ToggleButton.js';
import Menu from './menus/Menu.js';
import Text from './misc/Text.js';
export default class MusicImmersiveHeader extends YTNode {
static type = 'MusicImmersiveHeader';
public title: Text;
public menu: Menu | null;
public more_button: ToggleButton | null;
public play_button: Button | null;
public share_endpoint?: NavigationEndpoint;
public start_radio_button: Button | null;
public subscription_button: SubscribeButton | null;
public description: Text;
public thumbnail: MusicThumbnail | null;
constructor(data: RawNode) {
super();
this.title = new Text(data.title);
this.menu = Parser.parseItem(data.menu, Menu);
this.more_button = Parser.parseItem(data.moreButton, ToggleButton);
this.play_button = Parser.parseItem(data.playButton, Button);
if ('shareEndpoint' in data)
this.share_endpoint = new NavigationEndpoint(data.shareEndpoint);
this.start_radio_button = Parser.parseItem(data.startRadioButton, Button);
this.subscription_button = Parser.parseItem(data.subscriptionButton, SubscribeButton);
this.description = new Text(data.description);
this.thumbnail = Parser.parseItem(data.thumbnail, MusicThumbnail);
}
}