import { Layout } from '@/components/Layout/Layout'; import { AuthenticationPage, ForgetPasswordPage, } from '@/features/authorization'; import { Calendar, Devices, LocationTick, Mobile, PasswordCheck, Personalcard, ProfileCircle, Setting, Shield, Sms, type Icon, } from 'iconsax-react'; import { type ReactNode } from 'react'; import { Navigate } from 'react-router-dom'; export interface RouteConfig { path: string; element?: ReactNode; navConfig?: { title: string; // Translation key icon?: Icon; }; children?: RouteConfig[]; } // can lazy load component if needed (ex. lazy(() => import('@/features/home/routes/HomePage'));) export const appRoutes: RouteConfig[] = [ { path: '/', element: , }, { path: '/login', element: , }, { path: '/forget-password', element: , }, { path: '/', element: , }, { path: '/setting', element: , children: [ // TODO: add route component to each route { path: '/setting/profile', navConfig: { // Profile component title: 'side.account', icon: ProfileCircle, }, children: [ { path: '/setting/profile#info', navConfig: { title: 'side.personalInfo', icon: Personalcard, }, }, { path: '/setting/profile#contact-info', navConfig: { title: 'side.contactInfo', icon: Mobile, }, }, { path: '/setting/profile#email', navConfig: { title: 'side.email', icon: Sms, }, }, ], }, { path: '/setting/security', // security component navConfig: { title: 'side.security', icon: Shield, }, children: [ { path: '/setting/security#password', navConfig: { title: 'side.password', icon: PasswordCheck, }, }, { path: '/setting/security#confirmed-ips', navConfig: { title: 'side.confirmedIps', icon: LocationTick, }, }, { path: '/setting/security#recent-sessions', navConfig: { title: 'side.recentSessions', icon: Devices, }, }, ], }, { path: '/setting/active-sessions', // active session component navConfig: { title: 'side.activeSessions', icon: Calendar, }, }, { path: '/setting/preferences', // setting component navConfig: { title: 'side.setting', icon: Setting, }, }, ], }, ];