UNPKG

@hoddy-ui/core

Version:

Core rich react native components written in typescript

79 lines (74 loc) 2.23 kB
import { useContext } from "react"; import { Dimensions, Platform } from "react-native"; import { vs } from "react-native-size-matters"; import { UIThemeContext } from "./theme"; import colors from "./theme/colors"; export const useColors = () => { const { themeState } = useContext(UIThemeContext); return colors(themeState.value); }; export const useTheme = () => { const { themeState } = useContext(UIThemeContext); return themeState.value; }; export const useNavScreenOptions = (type: "stack" | "tab" | "drawer") => { const colors = useColors(); const theme = useTheme(); const options: any = { stack: { headerShown: false, headerStyle: { backgroundColor: colors.white[1], }, headerShadowVisible: false, contentStyle: { backgroundColor: colors.white[1], }, headerTitleStyle: { color: colors.black[1], }, headerTintColor: Platform.OS === "android" ? colors.black[1] : colors.blue.light, }, tab: { headerShown: false, headerTintColor: colors.dark.main, tabBarStyle: { borderTopColor: theme === "dark" ? colors.light.main : colors.white[2], borderTopWidth: 1, // shadowColor: "#000", // shadowOffset: { height: -3, width: 0 }, // shadowRadius: 7, // shadowOpacity: 0.1, backgroundColor: colors.white[1], }, tabBarActiveTintColor: colors.blue.main, tabBarInactiveTintColor: colors.textSecondary.main, tabBarLabelStyle: { // fontSize: ms(12), }, }, drawer: { headerShown: false, drawerActiveTintColor: colors.primary.main, drawerInactiveTintColor: colors.textSecondary.main, sceneContainerStyle: { backgroundColor: colors.white[2], }, drawerStyle: { backgroundColor: colors.white[1], }, headerStyle: { backgroundColor: colors.white[1], }, headerTitleStyle: { color: colors.dark.main, }, }, }; if (Platform.OS === "android") { options.tab.tabBarStyle.height = Dimensions.get("screen").height * 0.08; options.tab.tabBarStyle.paddingBottom = vs(15); } return options[type]; };