Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3332 | Ir a la última revisión | 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>
  )
}