mirror of
https://github.com/XFox111/my-website.git
synced 2026-04-22 07:28:01 +03:00
refactor: moved analytics checks to a separate file
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import Package from "@/../package.json";
|
||||
import { footerImage, nextjsLogo } from "@/_assets/illustrations";
|
||||
import { analyticsEnabled } from "@/_utils/analytics/server";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import React from "react";
|
||||
@@ -14,7 +15,7 @@ const Footer: React.FC = () => (
|
||||
<p>
|
||||
This site was created with help of some third-party tools and services.
|
||||
</p>
|
||||
{ process.env.CLARITY_ID &&
|
||||
{ analyticsEnabled() &&
|
||||
<p>
|
||||
This site is using Microsoft Clarity for analytics purposes.<br aria-hidden />
|
||||
By using this site you agree that we and Microsoft can collect and use this data.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import { headers } from "next/headers";
|
||||
|
||||
/**
|
||||
* Check if Clarity is enabled
|
||||
* @returns true if Clarity is enabled
|
||||
*/
|
||||
export const analyticsEnabled = (): boolean => !!process.env.CLARITY_ID;
|
||||
|
||||
/**
|
||||
* Check if Clarity is enabled and the browser didn't send a DNT signal
|
||||
* @returns true if Clarity is enabled and the browser didn't send a DNT signal
|
||||
*/
|
||||
export const canLoadAnalytics = (): boolean =>
|
||||
analyticsEnabled() && headers().get("Dnt") !== "1";
|
||||
@@ -2,6 +2,7 @@ import Package from "@/../package.json";
|
||||
import Button from "@/_components/Button";
|
||||
import { canonicalName, getTitle } from "@/_data/metadata";
|
||||
import ThirdPartyAttribution from "@/_data/ThirdPartyAttributiont";
|
||||
import { analyticsEnabled } from "@/_utils/analytics/server";
|
||||
import { ArrowLeft24Regular, ArrowRight24Regular } from "@fluentui/react-icons";
|
||||
import { Metadata } from "next";
|
||||
import React from "react";
|
||||
@@ -23,7 +24,7 @@ const AttributionPage: React.FC = () => (
|
||||
<article>
|
||||
<h1>Attrubtions & information</h1>
|
||||
|
||||
{ process.env.CLARITY_ID &&
|
||||
{ analyticsEnabled() &&
|
||||
<section>
|
||||
<h2>Privacy policy</h2>
|
||||
<p>
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@ import Script from "next/script";
|
||||
import { PropsWithChildren } from "react";
|
||||
import Footer from "./_components/Footer";
|
||||
import Header from "./_components/Header";
|
||||
import { canLoadAnalytics } from "./_utils/analytics/server";
|
||||
import fonts from "./fonts";
|
||||
import "./globals.scss";
|
||||
|
||||
@@ -26,7 +27,7 @@ export default function RootLayout(props: PropsWithChildren)
|
||||
|
||||
return (
|
||||
<html lang="en" className={ fonts.map(i => i.variable).join(" ") }>
|
||||
{ headers.get("Dnt") !== "1" && process.env.CLARITY_ID &&
|
||||
{ canLoadAnalytics() &&
|
||||
// If "Do Not Track" is enabled, or there's no CLARITY_ID set up, we don't load any analytics
|
||||
<Script id="ms-clarity" src="/clarity.js" data-id={ process.env.CLARITY_ID } />
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user