Files
editor/apps/editor/store/use-audio.tsx
T
2026-02-12 08:57:37 +09:00

40 lines
934 B
TypeScript

'use client'
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
interface AudioState {
masterVolume: number
sfxVolume: number
radioVolume: number
muted: boolean
autoplay: boolean
setMasterVolume: (v: number) => void
setSfxVolume: (v: number) => void
setRadioVolume: (v: number) => void
toggleMute: () => void
setAutoplay: (v: boolean) => void
}
const useAudio = create<AudioState>()(
persist(
(set) => ({
masterVolume: 70,
sfxVolume: 50,
radioVolume: 50,
muted: false,
autoplay: true,
setMasterVolume: (v) => set({ masterVolume: v }),
setSfxVolume: (v) => set({ sfxVolume: v }),
setRadioVolume: (v) => set({ radioVolume: v }),
toggleMute: () => set((state) => ({ muted: !state.muted })),
setAutoplay: (v) => set({ autoplay: v }),
}),
{
name: 'pascal-audio-settings',
}
)
)
export default useAudio