import { useMemo } from "react";import { useAppearancePreferences } from "../features/settings/appearance/AppearancePreferencesProvider";import type { MobileThemeVariables } from "./mobileTheme";import { getMobileThemeRuntimeVariables } from "./mobileThemeVariables";/** * Complete JS palette for native and third-party APIs that cannot consume a * Uniwind className (React Navigation, native editors, Markdown, SVG gradients, * Reanimated worklets). Ordinary React Native rendering must use className. * * This bridge follows the same single React theme commit as the root * ScopedTheme instead of subscribing every consumer to CSS-variable updates. */export function useUniwindTheme(): MobileThemeVariables { const { themeAppearance, themeId } = useAppearancePreferences(); return useMemo( () => getMobileThemeRuntimeVariables(themeId, themeAppearance), [themeAppearance, themeId], );}
import { useMemo } from "react";
import { useAppearancePreferences } from "../features/settings/appearance/AppearancePreferencesProvider";
import type { MobileThemeVariables } from "./mobileTheme";
import { getMobileThemeRuntimeVariables } from "./mobileThemeVariables";
/**
* Complete JS palette for native and third-party APIs that cannot consume a
* Uniwind className (React Navigation, native editors, Markdown, SVG gradients,
* Reanimated worklets). Ordinary React Native rendering must use className.
*
* This bridge follows the same single React theme commit as the root
* ScopedTheme instead of subscribing every consumer to CSS-variable updates.
*/
export function useUniwindTheme(): MobileThemeVariables {
const { themeAppearance, themeId } = useAppearancePreferences();
return useMemo(
() => getMobileThemeRuntimeVariables(themeId, themeAppearance),
[themeAppearance, themeId],
);
}