feat: implement privacy policy and cookie banner
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { Metadata } from 'next';
|
||||
import { companyDetails } from '@/content/company';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Polityka Prywatności i Cookies | AirProject',
|
||||
@@ -13,44 +14,67 @@ export default function PolitykaPrywatnosciPage() {
|
||||
<>
|
||||
<h1 className="text-4xl font-extrabold mb-8">Polityka Prywatności i Cookies</h1>
|
||||
|
||||
<p className="lead">
|
||||
Twoja prywatność jest dla nas ważna. W tym dokumencie opisujemy, jakie dane zbieramy, w jakim celu je wykorzystujemy oraz jakie masz w związku z tym prawa.
|
||||
<div className="prose prose-slate dark:prose-invert max-w-none space-y-6">
|
||||
<p className="lead text-lg text-text-muted">
|
||||
Poniższa Polityka Prywatności określa zasady zapisywania i uzyskiwania dostępu do danych na Urządzeniach Użytkowników korzystających z Serwisu do celów świadczenia usług drogą elektroniczną oraz zasady gromadzenia i przetwarzania danych osobowych Użytkowników.
|
||||
</p>
|
||||
|
||||
{/* TODO: treść prawna do uzupełnienia przez właściciela i weryfikacji z inspektorem ochrony danych / radcą prawnym */}
|
||||
|
||||
<h2 id="administrator">1. Administrator danych</h2>
|
||||
<h2 id="administrator" className="text-2xl font-bold mt-8 mb-4">1. Administrator danych</h2>
|
||||
<p>
|
||||
Administratorem Twoich danych osobowych jest:
|
||||
<strong> [TUTAJ WPISZ DANE FIRMY: Nazwa, Adres, NIP, e-mail kontaktowy]</strong>.
|
||||
Administratorem Twoich danych osobowych jest <strong>{companyDetails.legalName}</strong> z siedzibą we Wrocławiu (adres: {companyDetails.address.street}, {companyDetails.address.zipCode} {companyDetails.address.city}), NIP: {companyDetails.nip}, REGON: {companyDetails.regon}.
|
||||
</p>
|
||||
<p>Z administratorem można skontaktować się za pośrednictwem adresu e-mail: <strong>{companyDetails.email}</strong>.</p>
|
||||
|
||||
<h2 id="zakres-cel">2. Zakres i cele przetwarzania</h2>
|
||||
<p>Przetwarzamy dane osobowe podane przez Ciebie w formularzu kontaktowym oraz w procesie składania zamówienia w celu:</p>
|
||||
<ul>
|
||||
<li>Realizacji zamówień i usług (np. dojazdu instalatorów na wskazany adres).</li>
|
||||
<li>Komunikacji (odpowiedzi na zapytania z formularza).</li>
|
||||
<li>Celów księgowych i podatkowych.</li>
|
||||
<h2 id="zakres-cel" className="text-2xl font-bold mt-8 mb-4">2. Zakres i cele przetwarzania</h2>
|
||||
<p>Przetwarzamy dane osobowe podane przez Ciebie dobrowolnie w celu:</p>
|
||||
<ul className="list-disc pl-6 space-y-2">
|
||||
<li>Nawiązania kontaktu i odpowiedzi na przesłane zapytania (podstawa prawna: art. 6 ust. 1 lit. f RODO).</li>
|
||||
<li>Realizacji usług, m.in. montażu, serwisu i dostarczenia urządzeń HVAC pod wskazany adres (podstawa prawna: art. 6 ust. 1 lit. b RODO).</li>
|
||||
<li>Rozpatrywania potencjalnych reklamacji i roszczeń (podstawa prawna: art. 6 ust. 1 lit. c oraz f RODO).</li>
|
||||
<li>Prowadzenia ksiąg rachunkowych i dokumentacji podatkowej.</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="prawa">3. Twoje prawa</h2>
|
||||
<h2 id="prawa" className="text-2xl font-bold mt-8 mb-4">3. Prawa Użytkownika</h2>
|
||||
<p>Zgodnie z przepisami RODO masz prawo do:</p>
|
||||
<ul>
|
||||
<ul className="list-disc pl-6 space-y-2">
|
||||
<li>Dostępu do swoich danych oraz otrzymania ich kopii.</li>
|
||||
<li>Sprostowania (poprawienia) swoich danych.</li>
|
||||
<li>Usunięcia danych lub ograniczenia przetwarzania.</li>
|
||||
<li>Przenoszenia danych.</li>
|
||||
<li>Wniesienia sprzeciwu wobec przetwarzania.</li>
|
||||
<li>Usunięcia danych (prawo do bycia zapomnianym) lub ograniczenia przetwarzania.</li>
|
||||
<li>Przenoszenia danych do innego administratora.</li>
|
||||
<li>Wniesienia sprzeciwu wobec przetwarzania danych w celach marketingowych lub wynikających z prawnie uzasadnionego interesu administratora.</li>
|
||||
<li>Cofnięcia zgody w dowolnym momencie (bez wpływu na zgodność z prawem przetwarzania przed jej wycofaniem).</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="cookies">4. Pliki Cookies</h2>
|
||||
<h2 id="cookies" className="text-2xl font-bold mt-8 mb-4">4. Pliki Cookies i Analityka (Google Analytics 4 / Tag Manager)</h2>
|
||||
<p>
|
||||
Nasza strona wykorzystuje pliki cookies (ciasteczka) w celu zapewnienia prawidłowego działania serwisu (np. zapamiętania zawartości koszyka) oraz w celach analitycznych. Możesz zarządzać ustawieniami cookies z poziomu przeglądarki internetowej.
|
||||
Nasz serwis wykorzystuje pliki cookies (tzw. "ciasteczka") – dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym Użytkownika i przeznaczone są do korzystania z naszej strony internetowej.
|
||||
</p>
|
||||
|
||||
<h3 className="text-xl font-semibold mt-6 mb-3">Google Analytics 4 (GA4) i Google Tag Manager (GTM)</h3>
|
||||
<p>
|
||||
W celu analizy statystyk ruchu, zrozumienia zachowań Użytkowników oraz ciągłej optymalizacji naszego serwisu korzystamy z narzędzi dostarczanych przez firmę Google LLC: <strong>Google Analytics 4</strong> oraz <strong>Google Tag Manager</strong>.
|
||||
</p>
|
||||
<ul className="list-disc pl-6 space-y-2 mt-4">
|
||||
<li>
|
||||
<strong>Zasada działania:</strong> Narzędzia te używają plików cookies do generowania anonimowych statystyk dotyczących sposobu korzystania z witryny. Generowane informacje są następnie przekazywane i przechowywane na serwerach Google.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Anonimizacja IP:</strong> Wdrożyliśmy funkcje ochrony prywatności, a informacje zbierane przez analitykę Google są pseudonimizowane, uniemożliwiając bezpośrednią identyfikację konkretnej osoby.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zarządzanie:</strong> Użytkownik może w każdej chwili wyłączyć śledzenie analityczne za pomocą ustawień przeglądarki, instalując oficjalny dodatek do przeglądarki blokujący Google Analytics, lub korzystając z baneru zgody na naszej stronie.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="okres-przechowywania" className="text-2xl font-bold mt-8 mb-4">5. Okres przechowywania danych</h2>
|
||||
<p>
|
||||
Dane osobowe przetwarzane w celu zawarcia lub wykonania umowy będą przechowywane przez okres obowiązywania umowy, a po jego upływie przez okres niezbędny do posprzedażowej obsługi klientów (np. obsługi roszczeń z tytułu gwarancji/rękojmi) oraz wypełnienia obowiązków prawnych (np. rozliczeń podatkowych przez 5 lat).
|
||||
</p>
|
||||
|
||||
<p className="text-sm text-text-muted mt-12 pt-8 border-t border-border">
|
||||
Ostatnia aktualizacja dokumentu: 1 stycznia 2026 r.
|
||||
Ostatnia aktualizacja dokumentu: {new Date().toLocaleDateString('pl-PL')} r.
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import { Inter, Poppins } from "next/font/google";
|
||||
import { Header } from "@/components/layout/Header";
|
||||
import { TrustBar } from "@/components/layout/TrustBar";
|
||||
import { Footer } from "@/components/layout/Footer";
|
||||
import { CookieBanner } from "@/components/ui/CookieBanner";
|
||||
import { GoogleAnalytics, GoogleTagManager } from "@next/third-parties/google";
|
||||
import "./globals.css";
|
||||
|
||||
@@ -42,6 +43,7 @@ export default function RootLayout({
|
||||
<main className="flex-grow">{children}</main>
|
||||
<TrustBar />
|
||||
<Footer />
|
||||
<CookieBanner />
|
||||
<GoogleAnalytics gaId="G-1NGTSR4TWD" />
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useEffect } from "react";
|
||||
import Link from "next/link";
|
||||
import { Cookie, X } from "lucide-react";
|
||||
|
||||
|
||||
export function CookieBanner() {
|
||||
const [showBanner, setShowBanner] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
// Check if the user has already accepted cookies
|
||||
const consent = localStorage.getItem("airproject_cookie_consent");
|
||||
if (!consent) {
|
||||
setShowBanner(true);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const acceptCookies = () => {
|
||||
localStorage.setItem("airproject_cookie_consent", "true");
|
||||
setShowBanner(false);
|
||||
};
|
||||
|
||||
if (!showBanner) return null;
|
||||
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 z-50 p-4 md:p-6 pb-safe">
|
||||
<div className="max-w-4xl mx-auto bg-slate-900 border border-slate-700 shadow-2xl rounded-2xl p-4 md:p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4 md:gap-6 animate-in slide-in-from-bottom-10 fade-in duration-500">
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="bg-primary/20 p-2 md:p-3 rounded-full shrink-0 mt-1 md:mt-0 text-primary">
|
||||
<Cookie className="w-5 h-5 md:w-6 md:h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-white font-semibold text-sm md:text-base mb-1">
|
||||
Dbamy o Twoją prywatność
|
||||
</h3>
|
||||
<p className="text-slate-400 text-xs md:text-sm leading-relaxed max-w-2xl">
|
||||
Nasz serwis używa plików cookies (ciasteczek) w celach statystycznych (m.in. Google Analytics, Google Tag Manager) oraz prawidłowego działania strony.
|
||||
Możesz określić warunki przechowywania cookies w swojej przeglądarce. Dowiedz się więcej w naszej{" "}
|
||||
<Link
|
||||
href="/polityka-prywatnosci"
|
||||
className="text-primary hover:text-white transition-colors underline underline-offset-2"
|
||||
>
|
||||
Polityce Prywatności
|
||||
</Link>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-3 w-full md:w-auto shrink-0 justify-end md:justify-start">
|
||||
<button
|
||||
onClick={() => setShowBanner(false)}
|
||||
className="md:hidden btn btn-ghost btn-circle text-slate-400 hover:text-white shrink-0"
|
||||
>
|
||||
<X className="w-5 h-5" />
|
||||
</button>
|
||||
<button
|
||||
onClick={acceptCookies}
|
||||
className="btn btn-primary text-white w-full md:w-auto shadow-md shadow-primary/20"
|
||||
>
|
||||
Rozumiem i Akceptuję
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{/* Zamknięcie na desktop */}
|
||||
<button
|
||||
onClick={() => setShowBanner(false)}
|
||||
className="hidden md:flex absolute top-4 right-4 text-slate-500 hover:text-white transition-colors p-1"
|
||||
aria-label="Zamknij"
|
||||
>
|
||||
<X className="w-4 h-4" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
+5
-3
@@ -1,14 +1,16 @@
|
||||
// TODO: Dane firmy — do uzupełnienia przez właściciela
|
||||
export const companyDetails = {
|
||||
name: "ThermCool HVAC & Usługi Domowe",
|
||||
legalName: "e-Cores Radosław Smoliński",
|
||||
shortName: "ThermCool",
|
||||
nip: "1234567890", // TODO: wstaw realny NIP
|
||||
nip: "8943284529",
|
||||
regon: "544462699",
|
||||
phone: "+48 123 456 789",
|
||||
phoneRaw: "+48123456789",
|
||||
email: "[email protected]",
|
||||
address: {
|
||||
street: "ul. Klimatyczna 15",
|
||||
zipCode: "50-001",
|
||||
street: "ul. Wejherowska 11/2",
|
||||
zipCode: "54-239",
|
||||
city: "Wrocław",
|
||||
region: "Dolny Śląsk",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user