import type { LayoutType } from '@/@types/theme' import AppRoute from '@/components/route/AppRoute' import PermissionGuard from '@/components/route/PermissionGuard' import ProtectedRoute from '@/components/route/ProtectedRoute' import PublicRoute from '@/components/route/PublicRoute' import Loading from '@/components/shared/Loading' import PageContainer from '@/components/template/PageContainer' import { Alert, Button } from '@/components/ui' import appConfig from '@/configs/app.config' import { protectedRoutes, publicRoutes } from '@/configs/routes.config' import { store, useStoreState } from '@/store' import { Suspense, useEffect } from 'react' import { ErrorBoundary } from 'react-error-boundary' import { MdArrowBack } from 'react-icons/md' import { Navigate, Route, Routes, useLocation } from 'react-router-dom' import DialogProvider from './shared/DialogContext' import DialogShowComponent from './shared/DialogContext/DialogShowComponent' import UiDialog from './shared/UiDialog' interface ViewsProps { pageContainerType?: 'default' | 'gutterless' | 'contained' layout?: LayoutType } type AllRoutesProps = ViewsProps const { authenticatedEntryPath } = appConfig const AllRoutes = (props: AllRoutesProps) => { return ( }> } /> {protectedRoutes.map((route, index) => ( } /> ))} } /> }> {publicRoutes.map((route) => ( } /> ))} ) } function fallbackRender({ error, resetErrorBoundary }: { error: Error; resetErrorBoundary: any }) { return (
{error.name ?? 'Hata!'}
{error.message}
) } const Views = (props: ViewsProps) => { const { setWarning, removeError } = store.getActions().base.messages const { errors, warning } = useStoreState((state) => state.base.messages) const location = useLocation() useEffect(() => { setWarning('') }, [location, setWarning]) return ( }> {!!warning?.length && ( {warning.map((w, i) => (
{w}
))}
)} {errors?.map((e) => ( { removeError(e.id) }} onClose={() => { removeError(e.id) }} title={e.title} > {e.message}

{e.statusCode}

{e.cid}
))}
) } export default Views