import isElectron from 'is-electron'; import { Group } from '@mantine/core'; import { Select, Tooltip, NumberInput, Switch, Slider } from '/@/renderer/components'; import { SettingsSection } from '/@/renderer/features/settings/components/settings-section'; import { SideQueueType, useGeneralSettings, useSettingsStoreActions, } from '/@/renderer/store/settings.store'; import { Play } from '/@/renderer/types'; const localSettings = isElectron() ? window.electron.localSettings : null; const SIDE_QUEUE_OPTIONS = [ { label: 'Fixed', value: 'sideQueue' }, { label: 'Floating', value: 'sideDrawerQueue' }, ]; export const ControlSettings = () => { const settings = useGeneralSettings(); const { setSettings } = useSettingsStoreActions(); const controlOptions = [ { control: ( setSettings({ general: { ...settings, skipButtons: { ...settings.skipButtons, enabled: e.currentTarget.checked, }, }, }) } /> ), description: 'Show or hide the skip buttons on the playerbar', isHidden: false, title: 'Show skip buttons', }, { control: ( setSettings({ general: { ...settings, skipButtons: { ...settings.skipButtons, skipBackwardSeconds: e.currentTarget.value ? Number(e.currentTarget.value) : 0, }, }, }) } /> setSettings({ general: { ...settings, skipButtons: { ...settings.skipButtons, skipForwardSeconds: e.currentTarget.value ? Number(e.currentTarget.value) : 0, }, }, }) } /> ), description: 'The number (in seconds) to skip forward or backward when using the skip buttons', isHidden: false, title: 'Skip duration', }, { control: ( { setSettings({ general: { ...settings, sideQueueType: e as SideQueueType, }, }); }} /> ), description: 'The style of the sidebar play queue', isHidden: false, title: 'Side play queue style', }, { control: ( { setSettings({ general: { ...settings, showQueueDrawerButton: e.currentTarget.checked, }, }); }} /> ), description: 'Display a hover icon on the right side of the application view the play queue', isHidden: false, title: 'Show floating queue hover area', }, { control: ( { setSettings({ general: { ...settings, volumeWheelStep: e, }, }); }} /> ), description: 'The amount of volume to change when scrolling the mouse wheel on the volume slider', isHidden: false, title: 'Volume wheel step', }, { control: ( { localSettings?.set('resume', e.target.checked); setSettings({ general: { ...settings, resume: e.currentTarget.checked, }, }); }} /> ), description: 'When exiting, save the current play queue and restore it when reopening', isHidden: !isElectron(), title: 'Save play queue', }, { control: ( setSettings({ general: { ...settings, defaultFullPlaylist: e.currentTarget.checked, }, }) } /> ), description: 'When navigating to a playlist, go to the playlist song list page instead of the default page', isHidden: false, title: 'Go to playlist songs page by default', }, ]; return ; };