Some checks are pending
E2E / Playwright e2e (push) Waiting to run
- 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.
28 lines
728 B
TypeScript
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 }),
|
|
}
|
|
)
|
|
)
|