From a2ec640ecc09db87605ef28249df0814105eabaf Mon Sep 17 00:00:00 2001 From: DaX Date: Mon, 30 Jun 2025 23:01:01 +0200 Subject: [PATCH] Add Matomo analytics tracking with Suspense fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Created MatomoAnalytics component with page view and event tracking - Fixed Next.js build issue by wrapping useSearchParams in Suspense - Added tracking for user interactions: - Search functionality - Table sorting - Filter changes (material, finish, color) - Dark mode toggles - Admin login success/failure - Admin filament create/update actions - Updated Amplify environment variables via AWS CLI - Analytics URL: https://analytics.demirix.dev (Site ID: 7) - Only loads when environment variables are set 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .env.production | 4 ++ app/layout.tsx | 7 +++ app/page.tsx | 6 ++- app/upadaj/dashboard/page.tsx | 3 ++ app/upadaj/page.tsx | 5 ++ src/components/EnhancedFilters.tsx | 29 ++++++++---- src/components/FilamentTableV2.tsx | 9 +++- src/components/MatomoAnalytics.tsx | 76 ++++++++++++++++++++++++++++++ 8 files changed, 129 insertions(+), 10 deletions(-) create mode 100644 src/components/MatomoAnalytics.tsx diff --git a/.env.production b/.env.production index f5403d7..f786082 100644 --- a/.env.production +++ b/.env.production @@ -4,3 +4,7 @@ NODE_ENV=production # API Configuration NEXT_PUBLIC_API_URL=https://api.filamenteka.rs/api +# Matomo Analytics Configuration +NEXT_PUBLIC_MATOMO_URL=https://analytics.demirix.dev +NEXT_PUBLIC_MATOMO_SITE_ID=7 + diff --git a/app/layout.tsx b/app/layout.tsx index daa3437..65d1d53 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,7 @@ import type { Metadata } from 'next' import '../src/styles/index.css' import { BackToTop } from '../src/components/BackToTop' +import { MatomoAnalytics } from '../src/components/MatomoAnalytics' export const metadata: Metadata = { title: 'Filamenteka', @@ -46,6 +47,12 @@ export default function RootLayout({ {children} + {process.env.NEXT_PUBLIC_MATOMO_URL && process.env.NEXT_PUBLIC_MATOMO_SITE_ID && ( + + )} ) diff --git a/app/page.tsx b/app/page.tsx index 107be45..768b61c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -4,6 +4,7 @@ import { useState, useEffect } from 'react'; import { FilamentTableV2 } from '../src/components/FilamentTableV2'; import { Filament } from '../src/types/filament'; import { filamentService } from '../src/services/api'; +import { trackEvent } from '../src/components/MatomoAnalytics'; export default function Home() { const [filaments, setFilaments] = useState([]); @@ -103,7 +104,10 @@ export default function Home() {
{mounted ? (