UNPKG

react-native-material-elements

Version:

React native material elements is a sophisticated UI library crafted to enhance your React Native development workflow. Designed for simplicity and elegance, nex-ui provides a rich collection of components and utilities to effortlessly create polished mob

118 lines (96 loc) 4.26 kB
import { useContextSelector } from 'use-context-selector'; import { ThemeContext } from './V2ThemeContext'; export const themeErrorMsg = 'Please ensure the ThemeProvider is correctly wrapped around the application.'; export const useThemeFontSelector = () => { const themeFonts = useContextSelector(ThemeContext, values => values?.theme?.font); if (!themeFonts) { throw new Error(`Theme fonts are unavailable. ${themeErrorMsg}`); } return themeFonts; }; export const useThemeColorsSelector = () => { const themeColors = useContextSelector(ThemeContext, values => values?.theme?.colors); if (!themeColors) { throw new Error(`Theme colors are unavailable. ${themeErrorMsg}`); } return themeColors; }; export const useFontWeightSelector = () => { const themeFontWeight = useContextSelector(ThemeContext, values => values?.theme?.fontWeight); if (!themeFontWeight) { throw new Error(`Theme font weight are unavailable. ${themeErrorMsg}`); } return themeFontWeight; }; export const useLatterSpacingSelector = () => { const latterSpacing = useContextSelector(ThemeContext, values => values?.theme?.latterSpacing); if (!latterSpacing) { throw new Error(`Theme latterSpacing are unavailable. ${themeErrorMsg}`); } return latterSpacing; }; export const useLineHeightSelector = () => { const lineHeight = useContextSelector(ThemeContext, values => values?.theme?.lineHeight); if (!lineHeight) { throw new Error(`Theme lineHeight are unavailable. ${themeErrorMsg}`); } return lineHeight; }; export const useThemeSpacingSelector = () => { const themeSpacing = useContextSelector(ThemeContext, values => values?.theme?.spacing); if (!themeSpacing) { throw new Error(`Theme spacing are unavailable. ${themeErrorMsg}`); } return themeSpacing; }; export const useThemeTextConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.textProps); }; export const useThemeBadgeConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.badgeProps); }; export const useThemeButtonConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.buttonProps); }; export const useThemeIconButtonConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.iconButtonProps); }; export const useThemeButtonGroupConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.buttonGroupProps); }; export const useThemeCardConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.cardProps); }; export const useThemeCardHeaderConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.cardHeaderProps); }; export const useThemeCheckBoxConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.checkBoxProps); }; export const useThemeChipConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.chipProps); }; export const useThemeDividerConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.dividerProps); }; export const useThemeListConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.listProps); }; export const useThemeListItemConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.listItemProps); }; export const useThemePaginationConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.paginationProps); }; export const useThemeRadioConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.radioProps); }; export const useThemeSwitchConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.switchProps); }; export const useThemeTextFieldConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.textFieldProps); }; export const useThemeIconInputConfigSelector = () => { return useContextSelector(ThemeContext, values => values?.components?.iconInputProps); };