Files
YouTube.js/src/parser/classes/DropdownItem.ts
Patrick Kan dba34dc5ae feat(ytmusic): music#Playlist fixes and additions (#138)
* 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
2022-08-14 20:39:31 -03:00

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;