mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-16 21:50:35 +02:00
feat: sync play queue for navidrome/subsonic (#1335)
--------- Co-authored-by: jeffvli <jeffvictorli@gmail.com>
This commit is contained in:
@@ -80,6 +80,7 @@ export interface PlayerContext {
|
||||
itemType: LibraryItem,
|
||||
isFavorite: boolean,
|
||||
) => void;
|
||||
setQueue: (data: Song[], index?: number, position?: number) => void;
|
||||
setRating: (serverId: string, id: string[], itemType: LibraryItem, rating: number) => void;
|
||||
setRepeat: (repeat: PlayerRepeat) => void;
|
||||
setShuffle: (shuffle: PlayerShuffle) => void;
|
||||
@@ -116,6 +117,7 @@ export const PlayerContext = createContext<PlayerContext>({
|
||||
moveSelectedToNext: () => {},
|
||||
moveSelectedToTop: () => {},
|
||||
setFavorite: () => {},
|
||||
setQueue: () => {},
|
||||
setRating: () => {},
|
||||
setRepeat: () => {},
|
||||
setShuffle: () => {},
|
||||
@@ -642,6 +644,22 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
|
||||
storeActions.mediaSkipForward();
|
||||
}, [storeActions]);
|
||||
|
||||
const setQueue = useCallback(
|
||||
(data: Song[], index?: number, position?: number) => {
|
||||
logFn.debug(logMsg[LogCategory.PLAYER].setQueue, {
|
||||
category: LogCategory.PLAYER,
|
||||
meta: {
|
||||
data: data.length,
|
||||
index,
|
||||
position,
|
||||
},
|
||||
});
|
||||
|
||||
storeActions.setQueue(data, index, position);
|
||||
},
|
||||
[storeActions],
|
||||
);
|
||||
|
||||
const setSpeed = useCallback(
|
||||
(speed: number) => {
|
||||
logFn.debug(logMsg[LogCategory.PLAYER].setSpeed, {
|
||||
@@ -855,6 +873,7 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
|
||||
moveSelectedToNext,
|
||||
moveSelectedToTop,
|
||||
setFavorite,
|
||||
setQueue,
|
||||
setRating,
|
||||
setRepeat,
|
||||
setShuffle,
|
||||
@@ -873,7 +892,6 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
|
||||
clearQueue,
|
||||
clearSelected,
|
||||
decreaseVolume,
|
||||
setSpeed,
|
||||
increaseVolume,
|
||||
mediaNext,
|
||||
mediaPause,
|
||||
@@ -891,9 +909,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
|
||||
moveSelectedToNext,
|
||||
moveSelectedToTop,
|
||||
setFavorite,
|
||||
setQueue,
|
||||
setRating,
|
||||
setRepeat,
|
||||
setShuffle,
|
||||
setSpeed,
|
||||
setVolume,
|
||||
shuffle,
|
||||
shuffleAll,
|
||||
|
||||
Reference in New Issue
Block a user