import "@/styles/globals.css"; import "@/styles/normalize.css"; import "@/styles/webflow.css"; import "@/styles/protekproject.webflow.css"; import "@/styles/my.css"; import "@/styles/maintenance.css"; import type { AppProps } from "next/app"; import Script from "next/script"; import { ApolloProvider } from '@apollo/client'; import { apolloClient } from '@/lib/apollo'; import React, { useState } from "react"; import MaintenanceMode from '@/components/MaintenanceMode'; import { CartProvider } from '@/contexts/CartContext'; import { FavoritesProvider } from '@/contexts/FavoritesContext'; import Layout from "@/components/Layout"; import { Toaster } from 'react-hot-toast'; import CookieConsent from '@/components/CookieConsent'; export default function App({ Component, pageProps }: AppProps) { const [isMaintenanceMode, setIsMaintenanceMode] = useState(false); const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); React.useEffect(() => { const maintenanceMode = process.env.NEXT_PUBLIC_MAINTENANCE_MODE === 'true'; const savedAuth = typeof window !== 'undefined' ? localStorage.getItem('maintenance_authenticated') : null; setIsMaintenanceMode(maintenanceMode); setIsAuthenticated(savedAuth === 'true'); setIsLoading(false); }, []); const handlePasswordCorrect = () => { if (typeof window !== 'undefined') { localStorage.setItem('maintenance_authenticated', 'true'); } setIsAuthenticated(true); }; if (isLoading) { return null; } if (isMaintenanceMode && !isAuthenticated) { return ; } return (