fix crossfade settings to update player store

This commit is contained in:
jeffvli
2025-11-06 20:30:33 -08:00
parent ae9a8e6d08
commit a137de612a
@@ -6,7 +6,7 @@ import {
SettingOption, SettingOption,
SettingsSection, SettingsSection,
} from '/@/renderer/features/settings/components/settings-section'; } from '/@/renderer/features/settings/components/settings-section';
import { usePlayerStatus } from '/@/renderer/store'; import { usePlayerActions, usePlayerProperties, usePlayerStatus } from '/@/renderer/store';
import { usePlaybackSettings, useSettingsStoreActions } from '/@/renderer/store/settings.store'; import { usePlaybackSettings, useSettingsStoreActions } from '/@/renderer/store/settings.store';
import { Select } from '/@/shared/components/select/select'; import { Select } from '/@/shared/components/select/select';
import { Slider } from '/@/shared/components/slider/slider'; import { Slider } from '/@/shared/components/slider/slider';
@@ -27,6 +27,9 @@ export const AudioSettings = ({ hasFancyAudio }: { hasFancyAudio: boolean }) =>
const { setSettings } = useSettingsStoreActions(); const { setSettings } = useSettingsStoreActions();
const status = usePlayerStatus(); const status = usePlayerStatus();
const { crossfadeDuration, transitionType } = usePlayerProperties();
const { setCrossfadeDuration, setTransitionType } = usePlayerActions();
const [audioDevices, setAudioDevices] = useState<{ label: string; value: string }[]>([]); const [audioDevices, setAudioDevices] = useState<{ label: string; value: string }[]>([]);
useEffect(() => { useEffect(() => {
@@ -114,11 +117,9 @@ export const AudioSettings = ({ hasFancyAudio }: { hasFancyAudio: boolean }) =>
value: PlayerStyle.CROSSFADE, value: PlayerStyle.CROSSFADE,
}, },
]} ]}
defaultValue={settings.style} defaultValue={transitionType}
disabled={settings.type !== PlayerType.WEB || status === PlayerStatus.PLAYING} disabled={settings.type !== PlayerType.WEB || status === PlayerStatus.PLAYING}
onChange={(e) => onChange={(e) => setTransitionType(e as PlayerStyle)}
setSettings({ playback: { ...settings, style: e as PlayerStyle } })
}
/> />
), ),
description: t('setting.playbackStyle', { description: t('setting.playbackStyle', {
@@ -176,17 +177,15 @@ export const AudioSettings = ({ hasFancyAudio }: { hasFancyAudio: boolean }) =>
{ {
control: ( control: (
<Slider <Slider
defaultValue={settings.crossfadeDuration} defaultValue={crossfadeDuration}
disabled={ disabled={
settings.type !== PlayerType.WEB || settings.type !== PlayerType.WEB ||
settings.style !== PlayerStyle.CROSSFADE || settings.style !== PlayerStyle.CROSSFADE ||
status === PlayerStatus.PLAYING status === PlayerStatus.PLAYING
} }
max={15} max={15}
min={0} min={3}
onChangeEnd={(e) => onChangeEnd={(e) => setCrossfadeDuration(e)}
setSettings({ playback: { ...settings, crossfadeDuration: e } })
}
w={100} w={100}
/> />
), ),