All files / src generateRoutes.tsx

0% Statements 0/20
0% Branches 0/2
0% Functions 0/7
0% Lines 0/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66                                                                                                                                   
import { createElement, lazy, Suspense } from "react";
import { Route } from "react-router-dom";
import { components } from "./components";
import { unAuthPages } from "./utils/pages/unAuthPages";
import { PageKeys } from "./pageKeys";
import { noLayoutPages } from "./utils/pages/noLayoutPages";
import { routes } from "./routes";
import Loading from "./components/common/Loading";
import AnimatedRoute from "./components/AnimatedRoute";
import { unsupportedAnimationPages } from "./utils/pages/unsupportedAnimationPages";
 
type LazyComponentProps = {
  importFn: () => Promise<{ default: any }>;
  pageKey?: string;
};
 
const LazyComponent = ({ importFn, pageKey }: LazyComponentProps) => (
  <Suspense fallback={<Loading />}>
    {unsupportedAnimationPages.includes(pageKey as PageKeys) ? (
      createElement(lazy(importFn))
    ) : (
      <AnimatedRoute>{createElement(lazy(importFn))}</AnimatedRoute>
    )}
  </Suspense>
);
 
export const generateUnauthRoutes = () => {
  return Object.entries(components)
    .filter(([pageKey]) => unAuthPages.includes(pageKey as PageKeys))
    .map(([pageKey, importFn]) => (
      <Route
        key={pageKey}
        path={routes[pageKey]}
        element={<LazyComponent importFn={importFn} />}
      />
    ));
};
 
// export const generateNoLayoutRoutes = () => {
//   return Object.entries(components)
//     .filter(([pageKey]) => noLayoutPages.includes(pageKey as PageKeys))
//     .map(([pageKey, importFn]) => (
//       <Route
//         key={pageKey}
//         path={routes[pageKey]}
//         element={<LazyComponent importFn={importFn} />}
//       />
//     ));
// };
 
export const generateOtherRoutes = () => {
  return Object.entries(components)
    .filter(
      ([pageKey]) =>
        // !noLayoutPages.includes(pageKey as PageKeys) &&
        !unAuthPages.includes(pageKey as PageKeys),
    )
    .map(([pageKey, importFn]) => (
      <Route
        key={pageKey}
        path={routes[pageKey]}
        element={<LazyComponent importFn={importFn} pageKey={pageKey} />}
      />
    ));
};