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 (
);
}