refactor feature hooks to be conditionally initialized

This commit is contained in:
jeffvli
2026-01-21 02:23:25 -08:00
parent 9a4a8eb742
commit f4072c183b
12 changed files with 236 additions and 35 deletions
@@ -1,4 +1,4 @@
import { useCallback, useEffect, useRef, useState } from 'react';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import { useItemImageUrl } from '/@/renderer/components/item-image/item-image';
import { usePlayerEvents } from '/@/renderer/features/player/audio-player/hooks/use-player-events';
@@ -8,6 +8,7 @@ import {
usePlaybackSettings,
usePlayerSong,
usePlayerStore,
useSettingsStore,
useTimestampStoreBase,
} from '/@/renderer/store';
import { LogCategory, logFn } from '/@/renderer/utils/logger';
@@ -425,3 +426,19 @@ export const useScrobble = () => {
[handleScrobbleFromSongChange, handleProgressUpdate, handleScrobbleFromSeek],
);
};
const ScrobbleHookInner = () => {
useScrobble();
return null;
};
export const ScrobbleHook = () => {
const isScrobbleEnabled = useSettingsStore((state) => state.playback.scrobble.enabled);
const privateMode = useAppStore((state) => state.privateMode);
if (!isScrobbleEnabled || privateMode) {
return null;
}
return React.createElement(ScrobbleHookInner);
};