add debug logs for player actions

This commit is contained in:
jeffvli
2025-11-26 01:27:08 -08:00
parent 4b3fda18d4
commit 94a7829882
2 changed files with 192 additions and 1 deletions
@@ -13,6 +13,8 @@ import { useDeleteFavorite } from '/@/renderer/features/shared/mutations/delete-
import { useSetRating } from '/@/renderer/features/shared/mutations/set-rating-mutation'; import { useSetRating } from '/@/renderer/features/shared/mutations/set-rating-mutation';
import { songsQueries } from '/@/renderer/features/songs/api/songs-api'; import { songsQueries } from '/@/renderer/features/songs/api/songs-api';
import { AddToQueueType, usePlayerActions } from '/@/renderer/store'; import { AddToQueueType, usePlayerActions } from '/@/renderer/store';
import { LogCategory, logFn } from '/@/renderer/utils/logger';
import { logMsg } from '/@/renderer/utils/logger-message';
import { Checkbox } from '/@/shared/components/checkbox/checkbox'; import { Checkbox } from '/@/shared/components/checkbox/checkbox';
import { ConfirmModal } from '/@/shared/components/modal/modal'; import { ConfirmModal } from '/@/shared/components/modal/modal';
import { Stack } from '/@/shared/components/stack/stack'; import { Stack } from '/@/shared/components/stack/stack';
@@ -205,8 +207,19 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
(data: Song[], type: AddToQueueType) => { (data: Song[], type: AddToQueueType) => {
if (typeof type === 'object' && 'edge' in type && type.edge !== null) { if (typeof type === 'object' && 'edge' in type && type.edge !== null) {
const edge = type.edge === 'top' ? 'top' : 'bottom'; const edge = type.edge === 'top' ? 'top' : 'bottom';
logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByData, {
category: LogCategory.PLAYER,
meta: { data: data.length, edge, type, uniqueId: type.uniqueId },
});
storeActions.addToQueueByUniqueId(data, type.uniqueId, edge); storeActions.addToQueueByUniqueId(data, type.uniqueId, edge);
} else { } else {
logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByType, {
category: LogCategory.PLAYER,
meta: { data: data.length, type },
});
storeActions.addToQueueByType(data, type as Play); storeActions.addToQueueByType(data, type as Play);
} }
}, },
@@ -253,6 +266,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
}; };
try { try {
logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByFetch, {
category: LogCategory.PLAYER,
meta: { ids: id, itemType, serverId, type },
});
const songs = await queryClient.fetchQuery({ const songs = await queryClient.fetchQuery({
gcTime: 0, gcTime: 0,
queryFn: () => { queryFn: () => {
@@ -304,6 +322,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
let toastId: null | string = null; let toastId: null | string = null;
let fetchId: null | string = null; let fetchId: null | string = null;
logFn.debug(logMsg[LogCategory.PLAYER].addToQueueByListQuery, {
category: LogCategory.PLAYER,
meta: { itemType, query, serverId, type },
});
try { try {
// Get total count first // Get total count first
let totalCount = 0; let totalCount = 0;
@@ -372,6 +395,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
postProcess: 'sentenceCase', postProcess: 'sentenceCase',
}), }),
onClose: () => { onClose: () => {
logFn.debug(logMsg[LogCategory.PLAYER].cancelledFetch, {
category: LogCategory.PLAYER,
meta: { itemType, serverId },
});
queryClient.cancelQueries({ queryClient.cancelQueries({
exact: false, exact: false,
queryKey: getRootQueryKey(itemType, serverId), queryKey: getRootQueryKey(itemType, serverId),
@@ -451,11 +479,20 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
); );
const clearQueue = useCallback(() => { const clearQueue = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].clearQueue, {
category: LogCategory.PLAYER,
});
storeActions.clearQueue(); storeActions.clearQueue();
}, [storeActions]); }, [storeActions]);
const clearSelected = useCallback( const clearSelected = useCallback(
(items: QueueSong[]) => { (items: QueueSong[]) => {
logFn.debug(logMsg[LogCategory.PLAYER].clearSelected, {
category: LogCategory.PLAYER,
meta: { items },
});
storeActions.clearSelected(items); storeActions.clearSelected(items);
}, },
[storeActions], [storeActions],
@@ -463,6 +500,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const decreaseVolume = useCallback( const decreaseVolume = useCallback(
(amount: number) => { (amount: number) => {
logFn.debug(logMsg[LogCategory.PLAYER].decreaseVolume, {
category: LogCategory.PLAYER,
meta: { amount },
});
storeActions.decreaseVolume(amount); storeActions.decreaseVolume(amount);
}, },
[storeActions], [storeActions],
@@ -470,21 +512,39 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const increaseVolume = useCallback( const increaseVolume = useCallback(
(amount: number) => { (amount: number) => {
logFn.debug(logMsg[LogCategory.PLAYER].increaseVolume, {
category: LogCategory.PLAYER,
meta: { amount },
});
storeActions.increaseVolume(amount); storeActions.increaseVolume(amount);
}, },
[storeActions], [storeActions],
); );
const mediaNext = useCallback(() => { const mediaNext = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaNext, {
category: LogCategory.PLAYER,
});
storeActions.mediaNext(); storeActions.mediaNext();
}, [storeActions]); }, [storeActions]);
const mediaPause = useCallback(() => { const mediaPause = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaPause, {
category: LogCategory.PLAYER,
});
storeActions.mediaPause(); storeActions.mediaPause();
}, [storeActions]); }, [storeActions]);
const mediaPlay = useCallback( const mediaPlay = useCallback(
(id?: string) => { (id?: string) => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaPlay, {
category: LogCategory.PLAYER,
meta: { id },
});
storeActions.mediaPlay(id); storeActions.mediaPlay(id);
}, },
[storeActions], [storeActions],
@@ -492,51 +552,95 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const mediaPlayByIndex = useCallback( const mediaPlayByIndex = useCallback(
(index: number) => { (index: number) => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaPlayByIndex, {
category: LogCategory.PLAYER,
meta: { index },
});
storeActions.mediaPlayByIndex(index); storeActions.mediaPlayByIndex(index);
}, },
[storeActions], [storeActions],
); );
const mediaPrevious = useCallback(() => { const mediaPrevious = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaPrevious, {
category: LogCategory.PLAYER,
});
storeActions.mediaPrevious(); storeActions.mediaPrevious();
}, [storeActions]); }, [storeActions]);
const mediaStop = useCallback(() => { const mediaStop = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaStop, {
category: LogCategory.PLAYER,
});
storeActions.mediaStop(); storeActions.mediaStop();
}, [storeActions]); }, [storeActions]);
const mediaSeekToTimestamp = useCallback( const mediaSeekToTimestamp = useCallback(
(timestamp: number) => { (timestamp: number) => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaSeekToTimestamp, {
category: LogCategory.PLAYER,
meta: { timestamp },
});
storeActions.mediaSeekToTimestamp(timestamp); storeActions.mediaSeekToTimestamp(timestamp);
}, },
[storeActions], [storeActions],
); );
const mediaSkipBackward = useCallback(() => { const mediaSkipBackward = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaSkipBackward, {
category: LogCategory.PLAYER,
});
storeActions.mediaSkipBackward(); storeActions.mediaSkipBackward();
}, [storeActions]); }, [storeActions]);
const mediaSkipForward = useCallback(() => { const mediaSkipForward = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaSkipForward, {
category: LogCategory.PLAYER,
});
storeActions.mediaSkipForward(); storeActions.mediaSkipForward();
}, [storeActions]); }, [storeActions]);
const setSpeed = useCallback( const setSpeed = useCallback(
(speed: number) => { (speed: number) => {
logFn.debug(logMsg[LogCategory.PLAYER].setSpeed, {
category: LogCategory.PLAYER,
meta: { speed },
});
storeActions.setSpeed(speed); storeActions.setSpeed(speed);
}, },
[storeActions], [storeActions],
); );
const mediaToggleMute = useCallback(() => { const mediaToggleMute = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaToggleMute, {
category: LogCategory.PLAYER,
});
storeActions.mediaToggleMute(); storeActions.mediaToggleMute();
}, [storeActions]); }, [storeActions]);
const mediaTogglePlayPause = useCallback(() => { const mediaTogglePlayPause = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].mediaTogglePlayPause, {
category: LogCategory.PLAYER,
});
storeActions.mediaTogglePlayPause(); storeActions.mediaTogglePlayPause();
}, [storeActions]); }, [storeActions]);
const moveSelectedTo = useCallback( const moveSelectedTo = useCallback(
(items: QueueSong[], edge: 'bottom' | 'top', uniqueId: string) => { (items: QueueSong[], edge: 'bottom' | 'top', uniqueId: string) => {
logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedTo, {
category: LogCategory.PLAYER,
meta: { edge, items, uniqueId },
});
storeActions.moveSelectedTo(items, uniqueId, edge); storeActions.moveSelectedTo(items, uniqueId, edge);
}, },
[storeActions], [storeActions],
@@ -544,6 +648,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const moveSelectedToBottom = useCallback( const moveSelectedToBottom = useCallback(
(items: QueueSong[]) => { (items: QueueSong[]) => {
logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedToBottom, {
category: LogCategory.PLAYER,
meta: { items },
});
storeActions.moveSelectedToBottom(items); storeActions.moveSelectedToBottom(items);
}, },
[storeActions], [storeActions],
@@ -551,6 +660,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const moveSelectedToNext = useCallback( const moveSelectedToNext = useCallback(
(items: QueueSong[]) => { (items: QueueSong[]) => {
logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedToNext, {
category: LogCategory.PLAYER,
meta: { items },
});
storeActions.moveSelectedToNext(items); storeActions.moveSelectedToNext(items);
}, },
[storeActions], [storeActions],
@@ -558,6 +672,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const moveSelectedToTop = useCallback( const moveSelectedToTop = useCallback(
(items: QueueSong[]) => { (items: QueueSong[]) => {
logFn.debug(logMsg[LogCategory.PLAYER].moveSelectedToTop, {
category: LogCategory.PLAYER,
meta: { items },
});
storeActions.moveSelectedToTop(items); storeActions.moveSelectedToTop(items);
}, },
[storeActions], [storeActions],
@@ -565,6 +684,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const setVolume = useCallback( const setVolume = useCallback(
(volume: number) => { (volume: number) => {
logFn.debug(logMsg[LogCategory.PLAYER].setVolume, {
category: LogCategory.PLAYER,
meta: { volume },
});
storeActions.setVolume(volume); storeActions.setVolume(volume);
}, },
[storeActions], [storeActions],
@@ -572,6 +696,11 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const setRepeat = useCallback( const setRepeat = useCallback(
(repeat: PlayerRepeat) => { (repeat: PlayerRepeat) => {
logFn.debug(logMsg[LogCategory.PLAYER].setRepeat, {
category: LogCategory.PLAYER,
meta: { repeat },
});
storeActions.setRepeat(repeat); storeActions.setRepeat(repeat);
}, },
[storeActions], [storeActions],
@@ -579,31 +708,57 @@ export const PlayerProvider = ({ children }: { children: React.ReactNode }) => {
const setShuffle = useCallback( const setShuffle = useCallback(
(shuffle: PlayerShuffle) => { (shuffle: PlayerShuffle) => {
logFn.debug(logMsg[LogCategory.PLAYER].setShuffle, {
category: LogCategory.PLAYER,
meta: { shuffle },
});
storeActions.setShuffle(shuffle); storeActions.setShuffle(shuffle);
}, },
[storeActions], [storeActions],
); );
const shuffle = useCallback(() => { const shuffle = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].shuffle, {
category: LogCategory.PLAYER,
});
storeActions.shuffle(); storeActions.shuffle();
}, [storeActions]); }, [storeActions]);
const shuffleAll = useCallback(() => { const shuffleAll = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].shuffleAll, {
category: LogCategory.PLAYER,
});
storeActions.shuffleAll(); storeActions.shuffleAll();
}, [storeActions]); }, [storeActions]);
const shuffleSelected = useCallback( const shuffleSelected = useCallback(
(items: QueueSong[]) => { (items: QueueSong[]) => {
logFn.debug(logMsg[LogCategory.PLAYER].shuffleSelected, {
category: LogCategory.PLAYER,
meta: { items },
});
storeActions.shuffleSelected(items); storeActions.shuffleSelected(items);
}, },
[storeActions], [storeActions],
); );
const toggleRepeat = useCallback(() => { const toggleRepeat = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].toggleRepeat, {
category: LogCategory.PLAYER,
});
storeActions.toggleRepeat(); storeActions.toggleRepeat();
}, [storeActions]); }, [storeActions]);
const toggleShuffle = useCallback(() => { const toggleShuffle = useCallback(() => {
logFn.debug(logMsg[LogCategory.PLAYER].toggleShuffle, {
category: LogCategory.PLAYER,
});
storeActions.toggleShuffle(); storeActions.toggleShuffle();
}, [storeActions]); }, [storeActions]);
+37 -1
View File
@@ -7,6 +7,42 @@ export const logMsg = {
}, },
[LogCategory.API]: {}, [LogCategory.API]: {},
[LogCategory.OTHER]: {}, [LogCategory.OTHER]: {},
[LogCategory.PLAYER]: {}, [LogCategory.PLAYER]: {
addToQueueByData: 'Added to queue by data',
addToQueueByFetch: 'Added to queue by fetch',
addToQueueByListQuery: 'Added to queue by list query',
addToQueueByType: 'Added to queue by type',
cancelledFetch: 'Cancelled fetch',
clearQueue: 'Cleared queue',
clearSelected: 'Cleared selected',
decreaseVolume: 'Decreased volume',
increaseVolume: 'Increased volume',
mediaNext: 'Media next',
mediaPause: 'Media pause',
mediaPlay: 'Media play',
mediaPlayByIndex: 'Media play by index',
mediaPrevious: 'Media previous',
mediaSeekToTimestamp: 'Media seek to timestamp',
mediaSkipBackward: 'Media skip backward',
mediaSkipForward: 'Media skip forward',
mediaStop: 'Media stop',
mediaToggleMute: 'Media toggle mute',
mediaTogglePlayPause: 'Media toggle play pause',
moveSelectedTo: 'Moved selected to',
moveSelectedToBottom: 'Moved selected to bottom',
moveSelectedToNext: 'Moved selected to next',
moveSelectedToTop: 'Moved selected to top',
setFavorite: 'Set favorite',
setRating: 'Set rating',
setRepeat: 'Set repeat',
setShuffle: 'Set shuffle',
setSpeed: 'Set speed',
setVolume: 'Set volume',
shuffle: 'Shuffle',
shuffleAll: 'Shuffle all',
shuffleSelected: 'Shuffle selected',
toggleRepeat: 'Toggle repeat',
toggleShuffle: 'Toggle shuffle',
},
[LogCategory.SYSTEM]: {}, [LogCategory.SYSTEM]: {},
}; };