@gaddario98/react-native-core
Version:
```bash npm install @gaddario98/native ```
44 lines (43 loc) • 2.22 kB
JavaScript
;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