Admin website

This commit is contained in:
2025-09-25 16:54:50 +02:00
parent 8dbf6caa6f
commit 24f15b6e28
36 changed files with 3451 additions and 561 deletions

View File

@@ -1,7 +1,6 @@
import React from 'react'
import React from 'react'
import ReactDOM from 'react-dom/client'
import { createBrowserRouter, RouterProvider } from 'react-router-dom'
import { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom'
import { HelmetProvider } from 'react-helmet-async'
import './index.css'
import App from './App'
@@ -15,25 +14,52 @@ import Beliefs from './pages/Beliefs'
import Contact from './pages/Contact'
import Privacy from './pages/Privacy'
import Terms from './pages/Terms'
import Events from './pages/Events'
import EventDetail from './pages/EventDetail'
import AdminLayout from './pages/admin/AdminLayout'
import AdminLogin from './pages/admin/AdminLogin'
import AdminEvents from './pages/admin/AdminEvents'
import AdminEventForm from './pages/admin/AdminEventForm'
import RequireAdmin from './pages/admin/RequireAdmin'
import { initAnalytics } from './utils/analytics'
import { initGA, initGTM } from './utils/analytics-config'
const router = createBrowserRouter([{
path: '/',
element: <App />,
children: [
{ index:true, element:<Home/> },
{ path:'about', element:<About/> },
{ path:'services', element:<Services/> },
{ path:'resources', element:<Resources/> },
{ path:'prayer-requests', element:<PrayerRequests/> },
{ path:'calendar', element:<Calendar/> },
{ path:'beliefs', element:<Beliefs/> },
{ path:'contact', element:<Contact/> },
{ path:'privacy', element:<Privacy/> },
{ path:'terms', element:<Terms/> }
]
}])
const router = createBrowserRouter([
{
path: '/',
element: <App />,
children: [
{ index: true, element: <Home /> },
{ path: 'about', element: <About /> },
{ path: 'services', element: <Services /> },
{ path: 'resources', element: <Resources /> },
{ path: 'prayer-requests', element: <PrayerRequests /> },
{ path: 'calendar', element: <Calendar /> },
{ path: 'beliefs', element: <Beliefs /> },
{ path: 'contact', element: <Contact /> },
{ path: 'privacy', element: <Privacy /> },
{ path: 'terms', element: <Terms /> },
{ path: 'events', element: <Events /> },
{ path: 'events/:slug', element: <EventDetail /> }
]
},
{
path: '/admin',
element: <AdminLayout />,
children: [
{ index: true, element: <Navigate to="/admin/events" replace /> },
{ path: 'login', element: <AdminLogin /> },
{
element: <RequireAdmin />,
children: [
{ path: 'events', element: <AdminEvents /> },
{ path: 'events/new', element: <AdminEventForm /> },
{ path: 'events/:slug/edit', element: <AdminEventForm /> }
]
}
]
}
])
// Initialize analytics after DOM is ready
document.addEventListener('DOMContentLoaded', () => {