import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import styles from './mobile-fullscreen-player.module.css'; import { SONG_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns'; import { ListConfigMenu, SONG_DISPLAY_TYPES, } from '/@/renderer/features/shared/components/list-config-menu'; import { useFullScreenPlayerStore, useFullScreenPlayerStoreActions, useLyricsDisplaySettings, useLyricsSettings, useSettingsStore, useSettingsStoreActions, } 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 { SegmentedControl } from '/@/shared/components/segmented-control/segmented-control'; import { Slider } from '/@/shared/components/slider/slider'; import { Switch } from '/@/shared/components/switch/switch'; import { QueueSong } from '/@/shared/types/domain-types'; import { ItemListKey, ListDisplayType } from '/@/shared/types/types'; interface MobileFullscreenPlayerHeaderProps { currentSong?: QueueSong; isPageHovered: boolean; onClose: () => void; } export const MobileFullscreenPlayerHeader = memo( ({ isPageHovered, onClose }: MobileFullscreenPlayerHeaderProps) => { const { t } = useTranslation(); const { dynamicBackground, dynamicImageBlur, dynamicIsImage, opacity, useImageAspectRatio, } = useFullScreenPlayerStore(); const { setStore } = useFullScreenPlayerStoreActions(); const { setSettings } = useSettingsStoreActions(); const lyricsSettings = useLyricsSettings(); const displaySettings = useLyricsDisplaySettings('default'); const lyricConfig = { ...lyricsSettings, ...displaySettings }; const handleLyricsSettings = (property: string, value: any) => { const displayProperties = ['fontSize', 'fontSizeUnsync', 'gap', 'gapUnsync']; if (displayProperties.includes(property)) { const currentDisplay = useSettingsStore.getState().lyricsDisplay; setSettings({ lyricsDisplay: { ...currentDisplay, default: { ...currentDisplay.default, [property]: value, }, }, }); } else { setSettings({ lyrics: { ...useSettingsStore.getState().lyrics, [property]: value, }, }); } }; return (
{dynamicBackground && ( )} {dynamicBackground && dynamicIsImage && ( )} {dynamicBackground && ( )}
); }, ); MobileFullscreenPlayerHeader.displayName = 'MobileFullscreenPlayerHeader';