Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 1,847 Bytes
932a7fd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
"use client"
import { create } from "zustand"
import { FontName } from "@/lib/fonts"
import { Preset, getPreset } from "@/app/engine/presets"
import { LayoutName } from "../layouts"
export const useStore = create<{
prompt: string
font: FontName
preset: Preset
panels: string[]
layout: LayoutName
isGeneratingLogic: boolean
panelGenerationStatus: Record<number, boolean>
isGeneratingText: boolean
atLeastOnePanelIsBusy: boolean
setPrompt: (prompt: string) => void
setFont: (font: FontName) => void
setPreset: (preset: Preset) => void
setPanels: (panels: string[]) => void
setLayout: (layout: LayoutName) => void
setGeneratingLogic: (isGeneratingLogic: boolean) => void
setGeneratingImages: (panelId: number, value: boolean) => void
setGeneratingText: (isGeneratingText: boolean) => void
}>((set, get) => ({
prompt: "",
font: "cartoonist",
preset: getPreset("japanese_manga"),
panels: [],
layout: "Layout1",
isGeneratingLogic: false,
panelGenerationStatus: {},
isGeneratingText: false,
atLeastOnePanelIsBusy: false,
setPrompt: (prompt: string) => set({ prompt }),
setFont: (font: FontName) => set({ font }),
setPreset: (preset: Preset) => set({ preset }),
setPanels: (panels: string[]) => set({ panels }),
setLayout: (layout: LayoutName) => set({ layout }),
setGeneratingLogic: (isGeneratingLogic: boolean) => set({ isGeneratingLogic }),
setGeneratingImages: (panelId: number, value: boolean) => {
const panelGenerationStatus: Record<number, boolean> = {
...get().panelGenerationStatus,
[panelId]: value
}
const atLeastOnePanelIsBusy = Object.values(panelGenerationStatus).includes(true)
set({
panelGenerationStatus,
atLeastOnePanelIsBusy
})
},
setGeneratingText: (isGeneratingText: boolean) => set({ isGeneratingText }),
}))
|