Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3336 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { lazy, Suspense } from 'react';
import { Route, Navigate, Routes } from 'react-router-dom';

import Spinner from '@components/UI/Spinner';

/* Layouts */
const HabitsRootLayout = lazy(() => import('@layouts/habits/root-layout'));
const PurposesLayout = lazy(() => import('@layouts/habits/purposes-layout'));
const ParadigmsLayout = lazy(() => import('@layouts/habits/paradigms-layout'));
const ValuesLayout = lazy(() => import('@layouts/habits/values-layout'));
const HabitsLayout = lazy(() => import('@layouts/habits/habits-layout'));
const GoalsLayout = lazy(() => import('@layouts/habits/goals-layout'));
const MyProgressLayout = lazy(() => import('@layouts/habits/my-progress-layout'));
const HabitProgressLayout = lazy(() => import('@layouts/habits/habit-progress-layout'));

/* Pages */
const PurposesPage = lazy(() => import('@pages/habits/purposes/purposes-page'));
const CreatePurposePage = lazy(() => import('@pages/habits/purposes/create-purpose-page'));
const EditPurposePage = lazy(() => import('@pages/habits/purposes/edit-purpose-page'));
const ParadigmsPage = lazy(() => import('@pages/habits/paradigms/paradigms-page'));
const CreateParadigmPage = lazy(() => import('@pages/habits/paradigms/create-paradigm-page'));
const EditParadigmPage = lazy(() => import('@pages/habits/paradigms/edit-paradigm-page'));
const ValuesPage = lazy(() => import('@pages/habits/values/values-page'));
const CreateValuePage = lazy(() => import('@pages/habits/values/create-value-page'));
const EditValuePage = lazy(() => import('@pages/habits/values/edit-value-page'));
const HabitsPage = lazy(() => import('@pages/habits/habits/habits-page'));
const CreateHabitPage = lazy(() => import('@pages/habits/habits/create-habit-page'));
const EditHabitPage = lazy(() => import('@pages/habits/habits/edit-habit-page'));
const GoalsPage = lazy(() => import('@pages/habits/goals/goals-page'));
const CreateGoalPage = lazy(() => import('@pages/habits/goals/create-goal-page'));
const EditGoalPage = lazy(() => import('@pages/habits/goals/edit-goal-page'));
const MyProgressPage = lazy(() => import('@pages/habits/progress/my-progress-page'));
const HabitProgressPage = lazy(() => import('@pages/habits/progress/habit-progress-page'));
const AddHabitProgress = lazy(() => import('@pages/habits/progress/add-habit-progress'));
const EditHabitProgress = lazy(() => import('@pages/habits/progress/edit-habit-progress'));

export default function HabitsRoutes() {
  return (
    <Suspense fallback={<Spinner />}>
      <Routes>
        <Route element={<HabitsRootLayout />}>
          <Route path='purposes' element={<PurposesLayout />}>
            <Route index element={<PurposesPage />} />
            <Route path='create' element={<CreatePurposePage />} />
            <Route path='edit/:id' element={<EditPurposePage />} />
            <Route path='*' element={<Navigate to='' />} />
          </Route>

          <Route path='paradigms' element={<ParadigmsLayout />}>
            <Route index element={<ParadigmsPage />} />
            <Route path='create' element={<CreateParadigmPage />} />
            <Route path='edit/:id' element={<EditParadigmPage />} />
            <Route path='*' element={<Navigate to='' />} />
          </Route>

          <Route path='values' element={<ValuesLayout />}>
            <Route index element={<ValuesPage />} />
            <Route path='create' element={<CreateValuePage />} />
            <Route path='edit/:id' element={<EditValuePage />} />
            <Route path='*' element={<Navigate to='' />} />
          </Route>

          <Route path='habits' element={<HabitsLayout />}>
            <Route index element={<HabitsPage />} />
            <Route path='create' element={<CreateHabitPage />} />
            <Route path='edit/:id' element={<EditHabitPage />} />
            <Route path='*' element={<Navigate to='' />} />
          </Route>

          <Route path='my-progress' element={<MyProgressLayout />}>
            <Route index element={<MyProgressPage />} />

            <Route path=':uuid' element={<HabitProgressLayout />}>
              <Route index element={<HabitProgressPage />} />
              <Route path='add' element={<AddHabitProgress />} />
              <Route path='edit/:id' element={<EditHabitProgress />} />
            </Route>

            <Route path='*' element={<Navigate to='' />} />
          </Route>

          <Route path='goals' element={<GoalsLayout />}>
            <Route index element={<GoalsPage />} />
            <Route path='create' element={<CreateGoalPage />} />
            <Route path='edit/:id' element={<EditGoalPage />} />
            <Route path='*' element={<Navigate to='' />} />
          </Route>

          <Route path='*' element={<Navigate to='habits' />} />
        </Route>
      </Routes>
    </Suspense>
  );
}