TeaSpeak-Client/imports/shared-app/ui/frames/side/MusicPlaylistDefinitions.d.ts
2021-02-07 20:01:37 +01:00

59 lines
1.3 KiB
TypeScript

export declare type MusicPlaylistStatus = {
status: "loading" | "unselected" | "unloaded";
} | {
status: "error";
reason: string;
} | {
status: "loaded";
serverUniqueId: string;
playlistId: number;
songs: number[];
activeSong: number;
} | {
status: "no-permissions";
failedPermission: string;
};
export declare type MusicPlaylistEntryInfo = {
type: "loading";
url: string | undefined;
} | {
type: "song";
url: string;
title: string;
description: string;
length: number;
thumbnailImage: string;
};
export interface MusicPlaylistUiEvents {
action_load_playlist: {
forced: boolean;
};
action_entry_delete: {
entryId: number;
};
action_reorder_song: {
entryId: number;
targetEntryId: number;
mode: "before" | "after";
};
action_add_song: {
url: string;
mode: "before" | "after" | "last";
targetEntryId?: number;
};
action_select_entry: {
entryId: number;
};
query_playlist_status: {};
query_entry_status: {
entryId: number;
};
notify_playlist_status: {
status: MusicPlaylistStatus;
};
notify_entry_status: {
entryId: number;
status: MusicPlaylistEntryInfo;
};
}