UNPKG

@livelike/react-native

Version:

LiveLike React Native package

31 lines (27 loc) 768 B
import { useMemo } from 'react'; import { createStyles } from '../utils'; import { useTheme } from './useTheme'; import { LLComponentStyleFn } from '../types'; import { useFonts } from './useFonts'; export type UseStylesArg<TStyles> = { componentStylesFn: LLComponentStyleFn<TStyles>; stylesProp?: Partial<TStyles>; }; export function useStyles<TStyles>({ componentStylesFn, stylesProp, }: UseStylesArg<TStyles>): TStyles { const { theme } = useTheme(); const { fonts } = useFonts(); const componentStyles = useMemo(() => { return componentStylesFn({ theme, fonts }); }, [theme, componentStylesFn]); return useMemo( () => createStyles({ componentStyles, stylesProp, }), [componentStyles, stylesProp] ); }