Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3245 | Rev 3270 | 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'
import EditGoalPage from '@pages/habits-and-skills/goals/edit-goal-page'

/* 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'))

/* Pages */
const PurposesPage = lazy(() =>
  import('@pages/habits-and-skills/purposes/purposes-page')
)
const CreatePurposePage = lazy(() =>
  import('@pages/habits-and-skills/purposes/create-purpose-page')
)
const EditPurposePage = lazy(() =>
  import('@pages/habits-and-skills/purposes/edit-purpose-page')
)
const ParadigmsPage = lazy(() =>
  import('@pages/habits-and-skills/paradigms/paradigms-page')
)
const CreateParadigmPage = lazy(() =>
  import('@pages/habits-and-skills/paradigms/create-paradigm-page')
)
const EditParadigmPage = lazy(() =>
  import('@pages/habits-and-skills/paradigms/edit-paradigm-page')
)
const ValuesPage = lazy(() =>
  import('@pages/habits-and-skills/values/values-page')
)
const CreateValuePage = lazy(() =>
  import('@pages/habits-and-skills/values/create-value-page')
)
const EditValuePage = lazy(() =>
  import('@pages/habits-and-skills/values/edit-value-page')
)
const HabitsPage = lazy(() =>
  import('@pages/habits-and-skills/habits/habits-page')
)
const CreateHabitPage = lazy(() =>
  import('@pages/habits-and-skills/habits/create-habit-page')
)
const GoalsPage = lazy(() =>
  import('@pages/habits-and-skills/goals/goals-page')
)
const CreateGoalPage = lazy(() =>
  import('@pages/habits-and-skills/goals/create-goal-page')
)
const EditHabitPage = lazy(() =>
  import('@pages/habits-and-skills/habits/edit-habit-page')
)

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='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>
  )
}