stream/src/store/index.js

45 lines
1.2 KiB
JavaScript

import create from 'zustand'
import { defaultTheme } from '../assets/theme'
export const useSeriesStore = create((set, get) => ({
series: {},
episodes: [],
// Methods
setSeries: series => set({ series }),
setEpisodes: () => {
if (get().series) {
set({
episodes: get().series.map(series => series.episodes)
})
} else set({})
}
}))
export const [useTheme] = create(set => ({
theme: defaultTheme,
// Methods
setTheme: (theme) => set({ theme }),
setDefaultTheme: () => set({ theme: defaultTheme })
}))
export const [useUiStore] = create((set, get) => ({
mobileMenuOpen: false,
streamPreviewMinimized: false,
streamActive: false,
// Methods
toggleMobileMenu: () => set({ mobileMenuOpen: !get().mobileMenuOpen }),
toggleStreamPreviewMinimized: () => set({ streamPreviewMinimized: !get().streamPreviewMinimized }),
toggleStreamActive: () => set({ streamActive: !get().streamActive }),
}))
export const [useStreamStore] = create((set) => ({
currentStream: null,
streamIsLive: false,
// Methods
setCurrentStream: (currentStream) => set({ currentStream }),
setStreamIsLive: (streamIsLive) => set({ streamIsLive }),
}))