mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-12 05:21:54 +01:00
24 lines
749 B
TypeScript
24 lines
749 B
TypeScript
import { useEffect, useState } from 'react';
|
|
import type { Appearance } from '../lib/theme/window';
|
|
import { getPreferredAppearance, subscribeToPreferredAppearanceChange } from '../lib/theme/window';
|
|
import { useSettings } from './useSettings';
|
|
|
|
export function useResolvedAppearance() {
|
|
const [preferredAppearance, setPreferredAppearance] = useState<Appearance>(
|
|
getPreferredAppearance(),
|
|
);
|
|
|
|
// Set appearance when preferred theme changes
|
|
useEffect(() => {
|
|
return subscribeToPreferredAppearanceChange(setPreferredAppearance);
|
|
}, []);
|
|
|
|
const settings = useSettings();
|
|
const appearance =
|
|
settings == null || settings?.appearance === 'system'
|
|
? preferredAppearance
|
|
: settings.appearance;
|
|
|
|
return appearance;
|
|
}
|