Files
yaak/apps/yaak-client/hooks/useResolvedTheme.ts
2026-05-07 15:50:10 -07:00

26 lines
905 B
TypeScript

import { useQuery } from "@tanstack/react-query";
import { settingsAtom } from "@yaakapp-internal/models";
import { useAtomValue } from "jotai";
import { getResolvedTheme, getThemes } from "../lib/theme/themes";
import { usePluginsKey } from "./usePlugins";
import { usePreferredAppearance } from "./usePreferredAppearance";
export function useResolvedTheme() {
const preferredAppearance = usePreferredAppearance();
const settings = useAtomValue(settingsAtom);
const pluginKey = usePluginsKey();
return useQuery({
placeholderData: (prev) => prev,
queryKey: ["resolved_theme", preferredAppearance, settings.updatedAt, pluginKey],
queryFn: async () => {
const data = await getResolvedTheme(
preferredAppearance,
settings.appearance,
settings.themeLight,
settings.themeDark,
);
return { ...data, ...(await getThemes()) };
},
});
}