snapshot of https://github.com/shadcn-ui/ui.git (main, 2026-09-15; blobs > 131072B omitted)
This commit is contained in:
28
apps/v4/hooks/use-colors.ts
Normal file
28
apps/v4/hooks/use-colors.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { useAtom } from "jotai"
|
||||
import { atomWithStorage } from "jotai/utils"
|
||||
|
||||
import { type ColorFormat } from "@/lib/colors"
|
||||
import { useMounted } from "@/hooks/use-mounted"
|
||||
|
||||
type Config = {
|
||||
format: ColorFormat
|
||||
lastCopied: string
|
||||
}
|
||||
|
||||
const colorsAtom = atomWithStorage<Config>("colors", {
|
||||
format: "hsl",
|
||||
lastCopied: "",
|
||||
})
|
||||
|
||||
export function useColors() {
|
||||
const [colors, setColors] = useAtom(colorsAtom)
|
||||
const mounted = useMounted()
|
||||
|
||||
return {
|
||||
isLoading: !mounted,
|
||||
format: colors.format,
|
||||
lastCopied: colors.lastCopied,
|
||||
setFormat: (format: ColorFormat) => setColors({ ...colors, format }),
|
||||
setLastCopied: (lastCopied: string) => setColors({ ...colors, lastCopied }),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user