App Page (pages/_app.tsx)¶
Overview¶
Root application component that wraps all pages with common providers and layouts.
Features¶
- Global session management
- Loading state handling
- Layout wrapping for authenticated routes
- Route-based provider exclusion
URL Parameters¶
None - root application component
Implementation¶
State Management¶
Methods¶
None - component primarily handles rendering logic
HTML Structure¶
<SessionProvider basePath='/app/api/auth' session={pageProps.session}>
{isLoading ? (
<LoadingPage />
) : (
<Layout>
<Component {...pageProps} setIsLoading={setIsLoading} />
</Layout>
)}
</SessionProvider>
Props¶
Components/API Routes Used¶
Components¶
API Routes¶
/app/api/auth/*(NextAuth base path)
Routes to Page¶
- Not directly routable - wraps all pages
Dependencies¶
import { SessionProvider } from 'next-auth/react'
import type { AppProps } from 'next/app'
import { useRouter } from 'next/router'
import 'bootstrap/dist/css/bootstrap.min.css'
Notes¶
- Excludes SessionProvider for specific routes (e.g.,
/reset-password) - Handles global styles and CSS imports
- Provides loading state management to all pages
- Central point for authentication state management