diff --git a/app/_app.tsx b/app/_app.tsx
deleted file mode 100644
index cc04bd0..0000000
--- a/app/_app.tsx
+++ /dev/null
@@ -1,161 +0,0 @@
-// ** React Imports
-import { ReactNode } from 'react'
-
-// ** Next Imports
-import Head from 'next/head'
-import { Router } from 'next/router'
-import type { NextPage } from 'next'
-import type { AppProps } from 'next/app'
-
-
-
-
-
-// ** Loader Import
-import NProgress from 'nprogress'
-
-// ** Emotion Imports
-import { CacheProvider } from '@emotion/react'
-import type { EmotionCache } from '@emotion/cache'
-
-// ** Config Imports
-
-import { defaultACLObj } from 'src/configs/acl'
-import themeConfig from 'src/configs/themeConfig'
-
-// ** Fake-DB Import
-import 'src/@fake-db'
-
-// ** Third Party Import
-import { Toaster } from 'react-hot-toast'
-
-// ** Component Imports
-import UserLayout from 'app/layouts/UserLayout'
-import AclGuard from 'src/@core/components/auth/AclGuard'
-import ThemeComponent from 'src/@core/theme/ThemeComponent'
-import AuthGuard from 'src/@core/components/auth/AuthGuard'
-import GuestGuard from 'src/@core/components/auth/GuestGuard'
-import WindowWrapper from 'src/@core/components/window-wrapper'
-
-// ** Spinner Import
-import Spinner from 'src/@core/components/spinner'
-
-// ** Contexts
-import { AuthProvider } from 'src/context/AuthContext'
-import { SettingsConsumer, SettingsProvider } from 'src/@core/context/settingsContext'
-
-// ** Styled Components
-import ReactHotToast from 'src/@core/styles/libs/react-hot-toast'
-
-// ** Utils Imports
-import { createEmotionCache } from 'src/@core/utils/create-emotion-cache'
-
-// ** Prismjs Styles
-import 'prismjs'
-import 'prismjs/themes/prism-tomorrow.css'
-import 'prismjs/components/prism-jsx'
-import 'prismjs/components/prism-tsx'
-
-// ** React Perfect Scrollbar Style
-import 'react-perfect-scrollbar/dist/css/styles.css'
-
-import 'src/iconify-bundle/icons-bundle-react'
-
-// ** Global css styles
-import '../../styles/globals.css'
-
-// ** Extend App Props with Emotion
-type ExtendedAppProps = AppProps & {
- Component: NextPage
- emotionCache: EmotionCache
-}
-
-type GuardProps = {
- authGuard: boolean
- guestGuard: boolean
- children: ReactNode
-}
-
-const clientSideEmotionCache = createEmotionCache()
-
-// ** Pace Loader
-if (themeConfig.routingLoader) {
- Router.events.on('routeChangeStart', () => {
- NProgress.start()
- })
- Router.events.on('routeChangeError', () => {
- NProgress.done()
- })
- Router.events.on('routeChangeComplete', () => {
- NProgress.done()
- })
-}
-
-const Guard = ({ children, authGuard, guestGuard }: GuardProps) => {
- if (guestGuard) {
- return }>{children}
- } else if (!guestGuard && !authGuard) {
- return <>{children}>
- } else {
- return }>{children}
- }
-}
-
-// ** Configure JSS & ClassName
-const App = (props: ExtendedAppProps) => {
- const { Component, emotionCache = clientSideEmotionCache, pageProps } = props
-
- // Variables
- const contentHeightFixed = Component.contentHeightFixed ?? false
- const getLayout =
- Component.getLayout ?? (page => {page})
-
- const setConfig = Component.setConfig ?? undefined
-
- const authGuard = Component.authGuard ?? true
-
- const guestGuard = Component.guestGuard ?? false
-
- const aclAbilities = Component.acl ?? defaultACLObj
-
- return (
-
-
-
- {`${themeConfig.templateName} - Material Design React Admin Template`}
-
-
-
-
-
-
-
-
- {({ settings }) => {
- return (
-
-
-
-
- {getLayout()}
-
-
-
-
-
-
-
- )
- }}
-
-
-
-
-
- )
-}
-
-export default App
diff --git a/app/acl/page.tsx b/app/acl/page.tsx
index 2144cd2..d929e55 100644
--- a/app/acl/page.tsx
+++ b/app/acl/page.tsx
@@ -2,7 +2,7 @@
import { useContext } from 'react'
// ** Context Imports
-import { AbilityContext } from 'app/layouts/components/acl/Can'
+import { AbilityContext } from 'src/layouts/components/acl/Can'
// ** MUI Imports
import Grid from '@mui/material/Grid'
diff --git a/app/error.tsx b/app/error.tsx
new file mode 100644
index 0000000..53945a6
--- /dev/null
+++ b/app/error.tsx
@@ -0,0 +1,20 @@
+'use client' // Error components must be Client Components
+
+import { useEffect } from 'react'
+
+export default function Error({
+ error,
+}: {
+ error: Error & { digest?: string }
+}) {
+ useEffect(() => {
+ // Log the error to an error reporting service
+ console.error(error)
+ }, [error])
+
+ return (
+
+
Something went wrong!
+
+ )
+}
\ No newline at end of file
diff --git a/app/index.tsx b/app/index.tsx
index 6e35d3c..8fd9e84 100644
--- a/app/index.tsx
+++ b/app/index.tsx
@@ -4,38 +4,27 @@
import { useEffect } from 'react'
// ** Next Imports
-import { useRouter } from 'next/router'
+import { useRouter } from 'next/navigation'
// ** Spinner Import
import Spinner from 'src/@core/components/spinner'
-// ** Hook Imports
-import { useAuth } from 'src/hooks/useAuth'
-
/**
* Set Home URL based on User Roles
*/
-export const getHomeRoute = (role: string) => {
- if (role === 'client') return '/acl'
- else return '/home'
+export const getHomeRoute = () => {
+ return '/home'
}
const Home = () => {
// ** Hooks
- const auth = useAuth()
const router = useRouter()
useEffect(() => {
- if (!router.isReady) {
- return
- }
+ const homeRoute = getHomeRoute()
- if (auth.user && auth.user.role) {
- const homeRoute = getHomeRoute(auth.user.role)
-
- // Redirect user to Home URL
- router.replace(homeRoute)
- }
+ // Redirect user to Home URL
+ router.replace(homeRoute)
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
diff --git a/app/layout.tsx b/app/layout.tsx
index 129c55b..5f80d88 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,6 +1,7 @@
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
+import { MainLayout } from "src/layouts/MainLayout";
const inter = Inter({ subsets: ["latin"] });
@@ -16,7 +17,9 @@ export default function RootLayout({
}>) {
return (
- {children}
-
+
+ {children}
+
+