one-file-cli
Version:
Run shadcn/ui React components instantly with zero config - perfect for quick prototypes
30 lines (27 loc) • 940 B
text/typescript
import { create } from "zustand"
import { persist } from "zustand/middleware"
export const USER_THEMES_STORE_KEY = "user-themes-store"
type UserThemesStore = {
customThemeUrls: string[]
addThemeUrl: (url: string) => void
deleteThemeUrl: (url: string) => void
}
export const useUserThemesStore = create<UserThemesStore>()(
persist(
(set) => ({
customThemeUrls: [],
addThemeUrl: (url) =>
set((state) => ({
customThemeUrls: [...new Set([...state.customThemeUrls, url])]
})),
deleteThemeUrl: (url) =>
set((state) => ({
customThemeUrls: state.customThemeUrls.filter((t) => t !== url)
}))
}),
{
name: USER_THEMES_STORE_KEY,
partialize: (state) => ({ customThemeUrls: state.customThemeUrls })
}
)
)