import { useHotkeys } from '@mantine/hooks'; import { motion, Variants } from 'motion/react'; import { CSSProperties, useLayoutEffect, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useLocation } from 'react-router'; import styles from './full-screen-player.module.css'; import { TableConfigDropdown } from '/@/renderer/components/virtual-table'; import { FullScreenPlayerImage } from '/@/renderer/features/player/components/full-screen-player-image'; import { FullScreenPlayerQueue } from '/@/renderer/features/player/components/full-screen-player-queue'; import { useFastAverageColor } from '/@/renderer/hooks'; import { useCurrentSong, useFullScreenPlayerStore, useFullScreenPlayerStoreActions, useLyricsSettings, useSettingsStore, useSettingsStoreActions, useWindowSettings, } from '/@/renderer/store'; import { ActionIcon } from '/@/shared/components/action-icon/action-icon'; import { Divider } from '/@/shared/components/divider/divider'; import { Group } from '/@/shared/components/group/group'; import { NumberInput } from '/@/shared/components/number-input/number-input'; import { Option } from '/@/shared/components/option/option'; import { Popover } from '/@/shared/components/popover/popover'; import { Select } from '/@/shared/components/select/select'; import { Slider } from '/@/shared/components/slider/slider'; import { Switch } from '/@/shared/components/switch/switch'; import { Platform } from '/@/shared/types/types'; const mainBackground = 'var(--theme-colors-background)'; const Controls = () => { const { t } = useTranslation(); const { dynamicBackground, dynamicImageBlur, dynamicIsImage, expanded, opacity, useImageAspectRatio, } = useFullScreenPlayerStore(); const { setStore } = useFullScreenPlayerStoreActions(); const { setSettings } = useSettingsStoreActions(); const lyricConfig = useLyricsSettings(); const handleToggleFullScreenPlayer = () => { setStore({ expanded: !expanded }); }; const handleLyricsSettings = (property: string, value: any) => { setSettings({ lyrics: { ...useSettingsStore.getState().lyrics, [property]: value, }, }); }; useHotkeys([['Escape', handleToggleFullScreenPlayer]]); return ( {dynamicBackground && ( )} {dynamicBackground && dynamicIsImage && ( )} {dynamicBackground && ( )}