mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-24 15:21:54 +00:00
feat(ytmusic): implement music#Library (#136)
* feat: add ItemSectionTab and related parsers * feat: add `continuation` to `Grid`parser class * feat (ytmusic): implement music#getLibrary() * Improve album fetch in `MusicResponsiveListItem` * music#Library: return [] for empty results * feat: add `Dropdown` & `DropdownItem` parsers * feat: add `CreatePlaylistDialog` parser * feat: add `create_playlist` to NavigationEndpoint * feat: add `AutomixPreviewVideo` parser * feat: improve parsing of items * fix: `PlaylistPanel` continuation * feat: more args in `Actions#next` * feat: add `PlaylistPanelContinuation` to `Parser` * chore: update parser-map * music#Library: refactor + add shuffle songs opt * feat: add `endpoint` to `DropdownItem` * feat: add `end_items` to `ItemSectionTabbedHeader` * feat(ytmusic): add `sort_by` to `music#Library`
This commit is contained in:
34
src/parser/classes/DropdownItem.ts
Normal file
34
src/parser/classes/DropdownItem.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
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;
|
||||
iconType?: 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;
|
||||
}
|
||||
|
||||
if (data.onSelectCommand?.browseEndpoint) {
|
||||
this.endpoint = new NavigationEndpoint(data.onSelectCommand);
|
||||
}
|
||||
|
||||
if (data.icon?.iconType) {
|
||||
this.iconType = data.icon?.iconType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default DropdownItem;
|
||||
Reference in New Issue
Block a user