UNPKG

@gaddario98/react-native-core

Version:
1 lines 4.54 kB
{"version":3,"file":"index.mjs","sources":["../../layouts/config.ts","../../layouts/LayoutGenerator.tsx"],"sourcesContent":["import { LayoutGeneratorConfig } from \"./types\";\n\nlet layoutGeneratorConfig: LayoutGeneratorConfig;\n\nconst setLayoutGeneratorConfig = (config: LayoutGeneratorConfig) => {\n layoutGeneratorConfig = config;\n};\n\nexport { layoutGeneratorConfig, setLayoutGeneratorConfig };\n","import { Stack } from \"expo-router\";\nimport { ComponentProps, useCallback, useMemo } from \"react\";\nimport \"react-native-reanimated\";\nimport { LayoutGeneratorProps, Screen } from \"./types\";\nimport { useAuthValue } from \"@gaddario98/react-core/auth\";\nimport { layoutGeneratorConfig } from \"./config\";\nimport { usePageConfigValue } from \"../pages\";\n\nconst LayoutGenerator = ({\n screens,\n userType,\n initialRouteName,\n}: LayoutGeneratorProps) => {\n const user = useAuthValue();\n const { isLogged } = usePageConfigValue();\n\n const isAuthenticated = useMemo(() => isLogged(user), [isLogged, user]);\n\n const isRedirect = useCallback(\n (screen: Screen) => {\n let val = false;\n if (!screen) return false;\n if (screen.requireAuth) val = !isAuthenticated;\n if (screen.hideIfAuth) val = isAuthenticated;\n if (screen.userType && userType !== screen.userType) val = true;\n return val;\n },\n [isAuthenticated, userType],\n );\n\n const screenOptions = useMemo(\n (): ComponentProps<typeof Stack>[\"screenOptions\"] => ({\n headerShown: false,\n keyboardHandlingEnabled: true,\n }),\n [],\n );\n\n return (\n <Stack screenOptions={screenOptions} initialRouteName={initialRouteName}>\n {screens.map((screen) => {\n return (\n <Stack.Screen\n key={screen.name}\n name={screen.name}\n options={{\n headerShown: Boolean(\n screen.header || layoutGeneratorConfig?.header,\n ),\n header: screen.header || layoutGeneratorConfig?.header,\n ...(screen?.options ?? {}),\n }}\n redirect={isRedirect(screen)}\n />\n );\n })}\n </Stack>\n );\n};\n\nexport default LayoutGenerator;\n"],"names":["layoutGeneratorConfig","setLayoutGeneratorConfig","config","LayoutGenerator","_ref","screens","userType","initialRouteName","user","useAuthValue","_usePageConfigValue","usePageConfigValue","isLogged","isAuthenticated","useMemo","isRedirect","useCallback","screen","val","requireAuth","hideIfAuth","screenOptions","headerShown","keyboardHandlingEnabled","_jsx","Stack","children","map","Screen","name","options","Object","assign","Boolean","header","_a","redirect"],"mappings":"uNAEA,IAAIA;AAEJ,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,MAA6B,EAAI;AACjEF,EAAAA,qBAAqB,GAAGE,MAAM;AAChC,ECEA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAIM;AAAA,EAAA,IAHzBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;AAEhB,EAAA,IAAMC,IAAI,GAAGC,YAAY,EAAE;AAC3B,EAAA,IAAAC,mBAAA,GAAqBC,kBAAkB,EAAE;IAAjCC,QAAQ,GAAAF,mBAAA,CAARE,QAAQ;EAEhB,IAAMC,eAAe,GAAGC,OAAO,CAAC,YAAA;IAAA,OAAMF,QAAQ,CAACJ,IAAI,CAAC;AAAA,EAAA,CAAA,EAAE,CAACI,QAAQ,EAAEJ,IAAI,CAAC,CAAC;AAEvE,EAAA,IAAMO,UAAU,GAAGC,WAAW,CAC5B,UAACC,MAAc,EAAI;IACjB,IAAIC,GAAG,GAAG,KAAK;AACf,IAAA,IAAI,CAACD,MAAM,EAAE,OAAO,KAAK;AACzB,IAAA,IAAIA,MAAM,CAACE,WAAW,EAAED,GAAG,GAAG,CAACL,eAAe;AAC9C,IAAA,IAAII,MAAM,CAACG,UAAU,EAAEF,GAAG,GAAGL,eAAe;AAC5C,IAAA,IAAII,MAAM,CAACX,QAAQ,IAAIA,QAAQ,KAAKW,MAAM,CAACX,QAAQ,EAAEY,GAAG,GAAG,IAAI;AAC/D,IAAA,OAAOA,GAAG;AACZ,EAAA,CAAC,EACD,CAACL,eAAe,EAAEP,QAAQ,CAAC,CAC5B;EAED,IAAMe,aAAa,GAAGP,OAAO,CAC3B,YAAA;IAAA,OAAsD;AACpDQ,MAAAA,WAAW,EAAE,KAAK;AAClBC,MAAAA,uBAAuB,EAAE;KAC1B;EAAA,CAAC,EACF,EAAE,CACH;EAED,OACEC,GAAA,CAACC,KAAK;AAACJ,IAAAA,aAAa,EAAEA,aAAa;AAAEd,IAAAA,gBAAgB,EAAEA,gBAAgB;AAAAmB,IAAAA,QAAA,EACpErB,OAAO,CAACsB,GAAG,CAAC,UAACV,QAAM,EAAI;;AACtB,MAAA,OACEO,GAAA,CAACC,KAAK,CAACG,MAAM,EAAA;QAEXC,IAAI,EAAEZ,QAAM,CAACY,IAAI;AACjBC,QAAAA,OAAO,EAAAC,MAAA,CAAAC,MAAA,CAAA;UACLV,WAAW,EAAEW,OAAO,CAClBhB,QAAM,CAACiB,MAAM,KAAIlC,qBAAqB,aAArBA,qBAAqB,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAqB,CAAEkC,MAAM,CAAA,CAC/C;AACDA,UAAAA,MAAM,EAAEjB,QAAM,CAACiB,MAAM,KAAIlC,qBAAqB,KAAA,IAAA,IAArBA,qBAAqB,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAqB,CAAEkC,MAAM;AAAA,SAAA,EAClD,CAAAC,EAAA,GAAAlB,QAAM,KAAA,IAAA,IAANA,QAAM,uBAANA,QAAM,CAAEa,OAAO,MAAA,IAAA,IAAAK,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI,EAAG,CAAA;QAE5BC,QAAQ,EAAErB,UAAU,CAACE,QAAM;SATtBA,QAAM,CAACY,IAAI,CAUhB;IAEN,CAAC;AAAC,GAAA,CACI;AAEZ"}