Files
beenvoice/apps/mobile/lib/use-themed-styles.ts
soconnor d057ba208d Add 'apps/mobile/' from commit '5fa30f365f21531094cd4d2045042bb4f1370ac3'
git-subtree-dir: apps/mobile
git-subtree-mainline: 86f8987dff
git-subtree-split: 5fa30f365f
2026-08-16 21:42:59 -04:00

14 lines
526 B
TypeScript

import { useMemo } from "react";
import { StyleSheet } from "react-native";
import { useAppTheme } from "@/contexts/ThemeContext";
import type { ThemeColors } from "@/lib/theme-palette";
/** StyleSheet factory that re-runs when light/dark palette changes. */
export function useThemedStyles<T extends StyleSheet.NamedStyles<T>>(
factory: (colors: ThemeColors, isDark: boolean) => T,
): T {
const { colors, isDark } = useAppTheme();
return useMemo(() => StyleSheet.create(factory(colors, isDark)), [colors, isDark]);
}