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