summaryrefslogtreecommitdiff
path: root/app/components
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2024-09-23 16:20:18 +0200
committerYuval Adam <_@yuv.al>2024-09-23 16:20:18 +0200
commit25799e446197c238989cc748e0bd7f350a1d6d67 (patch)
tree7d1fe6f0fc08b2f44411fdf65d4718752e7dd972 /app/components
parentd5cf0f5f273fc5518582fd0cd6b42bafdd6764eb (diff)
Add fathom analytics client
Diffstat (limited to 'app/components')
-rw-r--r--app/components/Fathom.tsx35
-rw-r--r--app/components/Geshem.tsx4
2 files changed, 38 insertions, 1 deletions
diff --git a/app/components/Fathom.tsx b/app/components/Fathom.tsx
new file mode 100644
index 0000000..4dbd21b
--- /dev/null
+++ b/app/components/Fathom.tsx
@@ -0,0 +1,35 @@
+'use client';
+
+import { load, trackPageview } from 'fathom-client';
+import { useEffect, Suspense } from 'react';
+import { usePathname, useSearchParams } from 'next/navigation';
+
+function TrackPageView() {
+ const pathname = usePathname();
+ const searchParams = useSearchParams();
+
+ useEffect(() => {
+ load('MBXPLVRM', {
+ auto: false
+ });
+ }, []);
+
+ useEffect(() => {
+ if (!pathname) return;
+
+ trackPageview({
+ url: pathname + searchParams?.toString(),
+ referrer: document.referrer
+ });
+ }, [pathname, searchParams]);
+
+ return null;
+}
+
+export default function Fathom() {
+ return (
+ <Suspense fallback={null}>
+ <TrackPageView />
+ </Suspense>
+ );
+} \ No newline at end of file
diff --git a/app/components/Geshem.tsx b/app/components/Geshem.tsx
index ba67b34..ba5f65c 100644
--- a/app/components/Geshem.tsx
+++ b/app/components/Geshem.tsx
@@ -1,11 +1,12 @@
"use client"
import React, { useState, useEffect } from "react";
-// import { BrowserRouter, Route, Routes } from "react-router-dom";
import { Map } from "./Map";
import { Slider } from "./Slider";
import { DateTime } from "./Datetime";
+import Fathom from "./Fathom";
+
import { IMAGES_BASE_URL, PLAYBACK_HOURS, PLAYBACK_SLOTS } from "./config";
import "rc-slider/assets/index.css";
@@ -74,6 +75,7 @@ export function Geshem() {
return (
<>
+ <Fathom />
<Map images={images} slider={slider} />
<DateTime images={images} slider={slider} />
<Slider slider={slider} playback={fragment} setSlider={setSlider} />