ultisuite-client/lib/demo/demo-theme-store.ts
R3D347HR4Y ad1370ea7e
Some checks are pending
E2E / Playwright e2e (push) Waiting to run
feat: enhance configuration and add new demo layouts
- Introduced turbopack alias for canvas in next.config.mjs.
- Updated package.json scripts for development and branding tasks.
- Added new dependencies for Tiptap extensions.
- Implemented new demo layouts for agenda, contacts, drive, and mail applications.
- Enhanced globals.css for improved theming and splash screen animations.
- Added OAuth callback handling for drive mounts.
- Updated layout components to integrate new demo shells and improve structure.
2026-06-12 19:10:24 +02:00

28 lines
728 B
TypeScript

"use client"
import { create } from "zustand"
import { persist } from "zustand/middleware"
import { debouncedPersistJSONStorage } from "@/lib/stores/debounced-json-storage"
import type { MailThemeMode } from "@/lib/mail-settings/types"
export const DEMO_THEME_STORAGE_KEY = "ultimail-demo-theme"
type DemoThemeState = {
themeMode: MailThemeMode
setThemeMode: (mode: MailThemeMode) => void
}
export const useDemoThemeStore = create<DemoThemeState>()(
persist(
(set) => ({
themeMode: "system",
setThemeMode: (themeMode) => set({ themeMode }),
}),
{
name: DEMO_THEME_STORAGE_KEY,
storage: debouncedPersistJSONStorage,
partialize: (s) => ({ themeMode: s.themeMode }),
}
)
)