UNPKG

@gaddario98/react-native-core

Version:
44 lines (43 loc) 2.22 kB
'use strict';var jsxRuntime=require('react/jsx-runtime'),expoRouter=require('expo-router'),react=require('react'),auth=require('@gaddario98/react-core/auth'),index_ts=require('../pages/index.js');exports.layoutGeneratorConfig=void 0; var setLayoutGeneratorConfig = function setLayoutGeneratorConfig(config) { exports.layoutGeneratorConfig = config; };var LayoutGenerator = function LayoutGenerator(_ref) { var screens = _ref.screens, userType = _ref.userType, initialRouteName = _ref.initialRouteName; var user = auth.useAuthValue(); var _usePageConfigValue = index_ts.usePageConfigValue(), isLogged = _usePageConfigValue.isLogged; var isAuthenticated = react.useMemo(function () { return isLogged(user); }, [isLogged, user]); var isRedirect = react.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 = react.useMemo(function () { return { headerShown: false, keyboardHandlingEnabled: true }; }, []); return jsxRuntime.jsx(expoRouter.Stack, { screenOptions: screenOptions, initialRouteName: initialRouteName, children: screens.map(function (screen_0) { var _a; return jsxRuntime.jsx(expoRouter.Stack.Screen, { name: screen_0.name, options: Object.assign({ headerShown: Boolean(screen_0.header || (exports.layoutGeneratorConfig === null || exports.layoutGeneratorConfig === void 0 ? void 0 : exports.layoutGeneratorConfig.header)), header: screen_0.header || (exports.layoutGeneratorConfig === null || exports.layoutGeneratorConfig === void 0 ? void 0 : exports.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); }) }); };exports.LayoutGenerator=LayoutGenerator;exports.setLayoutGeneratorConfig=setLayoutGeneratorConfig;//# sourceMappingURL=index.js.map