optimize settings store

This commit is contained in:
jeffvli
2026-01-02 03:13:17 -08:00
parent 0cfc4119ba
commit a66c67e86d
72 changed files with 479 additions and 354 deletions
@@ -127,9 +127,7 @@ const useUpdateAudioMotionAnalyzer = () => {
) => {
setSettings({
visualizer: {
...visualizer,
audiomotionanalyzer: {
...visualizer.audiomotionanalyzer,
[property]: value,
},
},
@@ -149,9 +147,7 @@ const useUpdateButterchurn = () => {
) => {
setSettings({
visualizer: {
...visualizer,
butterchurn: {
...visualizer.butterchurn,
[property]: value,
},
},
@@ -177,7 +173,6 @@ export const VisualizerSettingsForm = () => {
const handleTypeChange = (value: string) => {
setSettings({
visualizer: {
...visualizer,
type: value as 'audiomotionanalyzer' | 'butterchurn',
},
});
@@ -464,9 +459,7 @@ const PresetSettings = () => {
setSettings({
visualizer: {
...visualizer,
audiomotionanalyzer: {
...visualizer.audiomotionanalyzer,
...presetValue,
},
},
@@ -501,9 +494,7 @@ const PresetSettings = () => {
setSettings({
visualizer: {
...visualizer,
audiomotionanalyzer: {
...visualizer.audiomotionanalyzer,
presets: updatedPresets,
},
},
@@ -517,9 +508,7 @@ const PresetSettings = () => {
setSettings({
visualizer: {
...visualizer,
audiomotionanalyzer: {
...visualizer.audiomotionanalyzer,
presets: [...visualizer.audiomotionanalyzer.presets, newPreset],
},
},
@@ -644,9 +633,7 @@ const PresetSettings = () => {
setSettings({
visualizer: {
...visualizer,
audiomotionanalyzer: {
...visualizer.audiomotionanalyzer,
presets: updatedPresets,
},
},
@@ -776,9 +763,7 @@ const PresetSettings = () => {
setSettings({
visualizer: {
...visualizer,
audiomotionanalyzer: {
...visualizer.audiomotionanalyzer,
...configValue,
},
},
@@ -6,13 +6,13 @@ import styles from './visualizer.module.css';
import { useWebAudio } from '/@/renderer/features/player/hooks/use-webaudio';
import { openVisualizerSettingsModal } from '/@/renderer/features/player/utils/open-visualizer-settings-modal';
import { ComponentErrorBoundary } from '/@/renderer/features/shared/components/component-error-boundary';
import { useSettingsStore } from '/@/renderer/store';
import { useAccent, useSettingsStore } from '/@/renderer/store';
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
const VisualizerInner = () => {
const { webAudio } = useWebAudio();
const canvasRef = createRef<HTMLDivElement>();
const accent = useSettingsStore((store) => store.general.accent);
const accent = useAccent();
const visualizer = useSettingsStore((store) => store.visualizer);
const opacity = useSettingsStore((store) => store.visualizer.audiomotionanalyzer.opacity);
const [motion, setMotion] = useState<AudioMotionAnalyzer>();
@@ -277,12 +277,9 @@ const VisualizerInner = () => {
visualizer.loadPreset(nextPreset, currentSettings.blendTime || 0.0);
// Update currentPreset in settings
const currentVisualizer = useSettingsStore.getState().visualizer;
setSettings({
visualizer: {
...currentVisualizer,
butterchurn: {
...currentVisualizer.butterchurn,
currentPreset: nextPresetName,
},
},