diff --git a/package-lock.json b/package-lock.json
index a3fd6f7..9bbca78 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,6 +12,7 @@
"@radix-ui/react-label": "^2.0.2",
"@radix-ui/react-slot": "^1.0.2",
"@supabase/supabase-js": "^2.39.0",
+ "@vercel/analytics": "^1.6.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^3.3.1",
@@ -1899,6 +1900,44 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/@vercel/analytics": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.6.1.tgz",
+ "integrity": "sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==",
+ "license": "MPL-2.0",
+ "peerDependencies": {
+ "@remix-run/react": "^2",
+ "@sveltejs/kit": "^1 || ^2",
+ "next": ">= 13",
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "svelte": ">= 4",
+ "vue": "^3",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@remix-run/react": {
+ "optional": true
+ },
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@vitejs/plugin-react": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
diff --git a/package.json b/package.json
index e3c1eff..4364075 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"@radix-ui/react-label": "^2.0.2",
"@radix-ui/react-slot": "^1.0.2",
"@supabase/supabase-js": "^2.39.0",
+ "@vercel/analytics": "^1.6.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^3.3.1",
diff --git a/src/App.tsx b/src/App.tsx
index 0beea5a..a5a6039 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,47 +1,49 @@
-
-import { Routes, Route, Navigate } from "react-router-dom"
-import { AuthLayout } from "./features/auth/AuthLayout"
-import { LoginPage } from "./features/auth/LoginPage"
-import { SignupPage } from "./features/auth/SignupPage"
-import { ProtectedRoute } from "./features/auth/ProtectedRoute"
-import { DashboardPage } from "./features/dashboard/DashboardPage"
-import { AuthProvider } from "./features/auth/AuthContext"
-import { RegisterEventPage } from "./features/public/RegisterEventPage"
-import { CreateEventPage } from "./features/events/CreateEventPage"
-import { EventStatsPage } from "./features/stats/EventStatsPage"
-import { AttendanceConfirmedPage } from "./features/public/AttendanceConfirmedPage"
-import { Toaster } from "@/components/ui/sonner"
-
-function App() {
- return (
-
-
- {/* Public Auth Routes */}
- }>
- } />
- } />
-
-
- {/* Protected Dashboard Routes */}
- }>
- } />
- } />
- } />
- } />
-
-
- {/* Public Event Routes */}
- } />
- } />
- } />
-
-
- {/* Catch all */}
- } />
-
-
-
- )
-}
-
-export default App
+
+import { Routes, Route, Navigate } from "react-router-dom"
+import { AuthLayout } from "./features/auth/AuthLayout"
+import { LoginPage } from "./features/auth/LoginPage"
+import { SignupPage } from "./features/auth/SignupPage"
+import { ProtectedRoute } from "./features/auth/ProtectedRoute"
+import { DashboardPage } from "./features/dashboard/DashboardPage"
+import { AuthProvider } from "./features/auth/AuthContext"
+import { RegisterEventPage } from "./features/public/RegisterEventPage"
+import { CreateEventPage } from "./features/events/CreateEventPage"
+import { EventStatsPage } from "./features/stats/EventStatsPage"
+import { AttendanceConfirmedPage } from "./features/public/AttendanceConfirmedPage"
+import { Toaster } from "@/components/ui/sonner"
+import { Analytics } from "@vercel/analytics/react"
+
+function App() {
+ return (
+
+
+ {/* Public Auth Routes */}
+ }>
+ } />
+ } />
+
+
+ {/* Protected Dashboard Routes */}
+ }>
+ } />
+ } />
+ } />
+ } />
+
+
+ {/* Public Event Routes */}
+ } />
+ } />
+ } />
+
+
+ {/* Catch all */}
+ } />
+
+
+
+
+ )
+}
+
+export default App