UNPKG

@gaddario98/react-native-core

Version:
44 lines (43 loc) 2.07 kB
import {jsx}from'react/jsx-runtime';import {Stack}from'expo-router';import {useMemo,useCallback}from'react';import {useAuthValue}from'@gaddario98/react-core/auth';import {usePageConfigValue}from'../pages/index.mjs';var layoutGeneratorConfig; var setLayoutGeneratorConfig = function setLayoutGeneratorConfig(config) { layoutGeneratorConfig = config; };var LayoutGenerator = function LayoutGenerator(_ref) { var screens = _ref.screens, userType = _ref.userType, initialRouteName = _ref.initialRouteName; var user = useAuthValue(); var _usePageConfigValue = usePageConfigValue(), isLogged = _usePageConfigValue.isLogged; var isAuthenticated = useMemo(function () { return isLogged(user); }, [isLogged, user]); var isRedirect = useCallback(function (screen) { var val = false; if (!screen) return false; if (screen.requireAuth) val = !isAuthenticated; if (screen.hideIfAuth) val = isAuthenticated; if (screen.userType && userType !== screen.userType) val = true; return val; }, [isAuthenticated, userType]); var screenOptions = useMemo(function () { return { headerShown: false, keyboardHandlingEnabled: true }; }, []); return jsx(Stack, { screenOptions: screenOptions, initialRouteName: initialRouteName, children: screens.map(function (screen_0) { var _a; return jsx(Stack.Screen, { name: screen_0.name, options: Object.assign({ headerShown: Boolean(screen_0.header || (layoutGeneratorConfig === null || layoutGeneratorConfig === void 0 ? void 0 : layoutGeneratorConfig.header)), header: screen_0.header || (layoutGeneratorConfig === null || layoutGeneratorConfig === void 0 ? void 0 : layoutGeneratorConfig.header) }, (_a = screen_0 === null || screen_0 === void 0 ? void 0 : screen_0.options) !== null && _a !== void 0 ? _a : {}), redirect: isRedirect(screen_0) }, screen_0.name); }) }); };export{LayoutGenerator,layoutGeneratorConfig,setLayoutGeneratorConfig};//# sourceMappingURL=index.mjs.map