mirror of
https://github.com/langgenius/dify.git
synced 2026-11-13 06:41:07 +08:00
30 lines
777 B
TypeScript
30 lines
777 B
TypeScript
'use client'
|
|
|
|
import type { ResolvedTheme, ThemePreference } from './theme'
|
|
import { useTheme } from 'next-themes'
|
|
import { useCallback } from 'react'
|
|
import { isThemePreference } from './theme'
|
|
|
|
type ThemePreferenceState = {
|
|
preference: ThemePreference
|
|
setPreference: (preference: ThemePreference) => void
|
|
}
|
|
|
|
export function useThemePreference(): ThemePreferenceState {
|
|
const { theme, setTheme } = useTheme()
|
|
const setPreference = useCallback(
|
|
(preference: ThemePreference) => setTheme(preference),
|
|
[setTheme],
|
|
)
|
|
|
|
return {
|
|
preference: isThemePreference(theme) ? theme : 'system',
|
|
setPreference,
|
|
}
|
|
}
|
|
|
|
export function useResolvedTheme(): ResolvedTheme {
|
|
const { resolvedTheme } = useTheme()
|
|
return resolvedTheme === 'dark' ? 'dark' : 'light'
|
|
}
|