mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-24 15:21:54 +00:00
* feat: add MusicEditablePlaylistDetailHeader parser * feat: more info in `DropdownItem` * fix: empty `year` value in `MusicDetailHeader` * fix(ytmusic#Playlist): header err w/ own playlists * feat: include reload continuation in `MusicShelf` * feat(ytmusic): add getSuggestions() to Playlist
41 lines
956 B
TypeScript
41 lines
956 B
TypeScript
import { YTNode } from '../helpers';
|
|
import Text from './misc/Text';
|
|
import NavigationEndpoint from './NavigationEndpoint';
|
|
|
|
class DropdownItem extends YTNode {
|
|
static type = 'DropdownItem';
|
|
|
|
label: string;
|
|
selected: boolean;
|
|
value?: number | string;
|
|
iconType?: string;
|
|
description?: string;
|
|
endpoint?: NavigationEndpoint;
|
|
|
|
constructor(data: any) {
|
|
super();
|
|
|
|
this.label = new Text(data.label).toString();
|
|
this.selected = !!data.isSelected;
|
|
|
|
if (data.int32Value) {
|
|
this.value = data.int32Value;
|
|
} else if (data.stringValue) {
|
|
this.value = data.stringValue;
|
|
}
|
|
|
|
if (data.onSelectCommand?.browseEndpoint) {
|
|
this.endpoint = new NavigationEndpoint(data.onSelectCommand);
|
|
}
|
|
|
|
if (data.icon?.iconType) {
|
|
this.iconType = data.icon?.iconType;
|
|
}
|
|
|
|
if (data.descriptionText) {
|
|
this.description = new Text(data.descriptionText).toString();
|
|
}
|
|
}
|
|
}
|
|
|
|
export default DropdownItem; |