feat: optymalizacja GlobalSearch, nawigacji oraz filtrów w sklepie

This commit is contained in:
MichalC
2026-06-27 21:12:23 +02:00
parent 0c59086a6b
commit c4294a81cf
43 changed files with 1623 additions and 192 deletions
+34 -16
View File
@@ -1,26 +1,44 @@
"use client";
'use client';
import { useEffect } from "react";
import { useConsentStore } from "@/lib/consent-store";
import { GoogleAnalytics, GoogleTagManager } from "@next/third-parties/google";
import Script from 'next/script';
import { useConsentStore } from '@/lib/consent-store';
const GA_ID = 'G-VW3GD6SS7K';
const CLARITY_ID = 'xdo6q3i06e';
export function AnalyticsWrapper() {
const { analytics, marketing, isInitialized, initialize } = useConsentStore();
const { analyticsConsent } = useConsentStore();
useEffect(() => {
initialize();
}, [initialize]);
if (!isInitialized) return null;
if (!analyticsConsent) return null;
return (
<>
{/* Ładujemy GTM tylko jeśli zgoda na marketing ATAK LUB analitykę,
w zależności od rygorystyczności, zazwyczaj GTM potrzebuje analityki/marketingu */}
{(analytics || marketing) && <GoogleTagManager gtmId="GTM-MBMRCD2N" />}
{/* Ładujemy GA4 tylko jeśli użytkownik zgodził się na analitykę */}
{analytics && <GoogleAnalytics gaId="G-1NGTSR4TWD" />}
{/* GA4 */}
<Script
src={`https://www.googletagmanager.com/gtag/js?id=${GA_ID}`}
strategy="afterInteractive"
/>
<Script id="ga4-init" strategy="afterInteractive">
{`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '${GA_ID}', {
page_path: window.location.pathname,
});
`}
</Script>
{/* Microsoft Clarity */}
<Script id="clarity-init" strategy="afterInteractive">
{`
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "${CLARITY_ID}");
`}
</Script>
</>
);
}