mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 02:13:33 +00:00
Add ability to save/restore queue (#111)
* add ability to save/restore play queue * Add restoreQueue action * Add optional pause param on setQueue --------- Co-authored-by: jeffvli <jeffvictorli@gmail.com>
This commit is contained in:
parent
c1c6ce33e4
commit
106fc90c4a
10 changed files with 180 additions and 7 deletions
|
|
@ -74,6 +74,7 @@ export interface PlayerSlice extends PlayerState {
|
|||
previous: () => PlayerData;
|
||||
removeFromQueue: (uniqueIds: string[]) => PlayerData;
|
||||
reorderQueue: (rowUniqueIds: string[], afterUniqueId?: string) => PlayerData;
|
||||
restoreQueue: (data: Partial<PlayerState>) => PlayerData;
|
||||
setCurrentIndex: (index: number) => PlayerData;
|
||||
setCurrentTime: (time: number) => void;
|
||||
setCurrentTrack: (uniqueId: string) => PlayerData;
|
||||
|
|
@ -615,6 +616,20 @@ export const usePlayerStore = create<PlayerSlice>()(
|
|||
|
||||
return get().actions.getPlayerData();
|
||||
},
|
||||
restoreQueue: (data) => {
|
||||
set((state) => {
|
||||
state.current = {
|
||||
...state.current,
|
||||
...data.current,
|
||||
};
|
||||
state.queue = {
|
||||
...state.queue,
|
||||
...data.queue,
|
||||
};
|
||||
});
|
||||
|
||||
return get().actions.getPlayerData();
|
||||
},
|
||||
setCurrentIndex: (index) => {
|
||||
if (get().shuffle === PlayerShuffle.TRACK) {
|
||||
const foundSong = get().queue.default.find(
|
||||
|
|
@ -874,6 +889,7 @@ export const useQueueControls = () =>
|
|||
moveToTopOfQueue: state.actions.moveToTopOfQueue,
|
||||
removeFromQueue: state.actions.removeFromQueue,
|
||||
reorderQueue: state.actions.reorderQueue,
|
||||
restoreQueue: state.actions.restoreQueue,
|
||||
setCurrentIndex: state.actions.setCurrentIndex,
|
||||
setCurrentTrack: state.actions.setCurrentTrack,
|
||||
setShuffledIndex: state.actions.setShuffledIndex,
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ export interface SettingsState {
|
|||
followSystemTheme: boolean;
|
||||
fontContent: string;
|
||||
playButtonBehavior: Play;
|
||||
resume: boolean;
|
||||
showQueueDrawerButton: boolean;
|
||||
sideQueueType: SideQueueType;
|
||||
skipButtons: {
|
||||
|
|
@ -128,6 +129,7 @@ const initialState: SettingsState = {
|
|||
followSystemTheme: false,
|
||||
fontContent: 'Poppins',
|
||||
playButtonBehavior: Play.NOW,
|
||||
resume: false,
|
||||
showQueueDrawerButton: false,
|
||||
sideQueueType: 'sideQueue',
|
||||
skipButtons: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue