Etter første dag på ny server

This commit is contained in:
Erol Haagenrud 2026-04-17 09:26:25 +02:00
parent e2f94dcaaa
commit 700f5aa08d
2 changed files with 65 additions and 7 deletions

View file

@ -1,11 +1,13 @@
import type { Metadata } from "next";
import { Mulish, Oswald } from "next/font/google";
import "./globals.css";
import Header from "@/components/Header";
import {
DEFAULT_DESCRIPTION,
DEFAULT_OG_IMAGE,
SITE_URL,
import { Mulish, Oswald } from "next/font/google";
import { Suspense } from "react";
import "./globals.css";
import Header from "@/components/Header";
import MatomoTracker from "@/components/MatomoTracker";
import {
DEFAULT_DESCRIPTION,
DEFAULT_OG_IMAGE,
SITE_URL,
createOrganizationJsonLd,
createWebsiteJsonLd,
} from "@/app/seo";
@ -86,6 +88,9 @@ import type { Metadata } from "next";
return (
<html lang="nb">
<body className={`${uiFont.variable} ${displayFont.variable} antialiased`}>
<Suspense fallback={null}>
<MatomoTracker />
</Suspense>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationJsonLd) }}

View file

@ -0,0 +1,53 @@
"use client";
import { useEffect, useRef } from "react";
import { usePathname, useSearchParams } from "next/navigation";
type MatomoCommand = [string, ...unknown[]];
declare global {
interface Window {
_paq?: MatomoCommand[];
}
}
const MATOMO_BASE_URL = "https://analyse.envide.no/";
const MATOMO_SITE_ID = "36";
export default function MatomoTracker() {
const pathname = usePathname();
const searchParams = useSearchParams();
const initializedRef = useRef(false);
const search = searchParams.toString();
useEffect(() => {
if (!pathname || pathname.startsWith("/admin")) {
return;
}
const _paq = (window._paq = window._paq || []);
if (!initializedRef.current) {
_paq.push(["setTrackerUrl", `${MATOMO_BASE_URL}matomo.php`]);
_paq.push(["setSiteId", MATOMO_SITE_ID]);
_paq.push(["enableLinkTracking"]);
if (!document.querySelector('script[data-matomo-script="true"]')) {
const script = document.createElement("script");
script.async = true;
script.src = `${MATOMO_BASE_URL}matomo.js`;
script.dataset.matomoScript = "true";
document.head.appendChild(script);
}
initializedRef.current = true;
}
const url = search ? `${pathname}?${search}` : pathname;
_paq.push(["setCustomUrl", url]);
_paq.push(["setDocumentTitle", document.title]);
_paq.push(["trackPageView"]);
}, [pathname, search]);
return null;
}