ultisuite-client/lib/stores/client-theme-store.ts
R3D347HR4Y d6d18f911b
Some checks failed
E2E / Playwright e2e (push) Has been cancelled
Lots of stuff and mobile app
2026-06-17 00:13:28 +02:00

28 lines
741 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 CLIENT_THEME_STORAGE_KEY = "ultisuite-client-theme"
type ClientThemeState = {
themeMode: MailThemeMode
setThemeMode: (mode: MailThemeMode) => void
}
export const useClientThemeStore = create<ClientThemeState>()(
persist(
(set) => ({
themeMode: "system",
setThemeMode: (themeMode) => set({ themeMode }),
}),
{
name: CLIENT_THEME_STORAGE_KEY,
storage: debouncedPersistJSONStorage,
partialize: (s) => ({ themeMode: s.themeMode }),
}
)
)