import clsx from 'clsx'; import { MouseEvent, useCallback } from 'react'; import styles from './playerbar.module.css'; import { AudioPlayer } from '/@/renderer/components'; import { CenterControls } from '/@/renderer/features/player/components/center-controls'; import { LeftControls } from '/@/renderer/features/player/components/left-controls'; import { RightControls } from '/@/renderer/features/player/components/right-controls'; import { usePowerSaveBlocker } from '/@/renderer/features/player/hooks/use-power-save-blocker'; import { PlayersRef } from '/@/renderer/features/player/ref/players-ref'; import { updateSong } from '/@/renderer/features/player/update-remote-song'; import { useCurrentPlayer, useCurrentStatus, useFullScreenPlayerStore, useMuted, usePlayer1Data, usePlayer2Data, usePlayerControls, useSetFullScreenPlayerStore, useVolume, } from '/@/renderer/store'; import { useGeneralSettings, usePlaybackType, useSettingsStore, } from '/@/renderer/store/settings.store'; import { PlaybackSelectors } from '/@/shared/constants/playback-selectors'; import { PlaybackType } from '/@/shared/types/types'; export const Playerbar = () => { const playersRef = PlayersRef; const settings = useSettingsStore((state) => state.playback); const { playerbarOpenDrawer } = useGeneralSettings(); const playbackType = usePlaybackType(); const volume = useVolume(); const player1 = usePlayer1Data(); const player2 = usePlayer2Data(); const status = useCurrentStatus(); const player = useCurrentPlayer(); const muted = useMuted(); const { autoNext } = usePlayerControls(); const { expanded: isFullScreenPlayerExpanded } = useFullScreenPlayerStore(); const setFullScreenPlayerStore = useSetFullScreenPlayerStore(); usePowerSaveBlocker(); const handleToggleFullScreenPlayer = (e?: KeyboardEvent | MouseEvent) => { e?.stopPropagation(); setFullScreenPlayerStore({ expanded: !isFullScreenPlayerExpanded }); }; const autoNextFn = useCallback(() => { const playerData = autoNext(); updateSong(playerData.current.song); }, [autoNext]); return (
{playbackType === PlaybackType.WEB && ( )}
); };