import { Outlet, Link } from 'react-router-dom';
import { useQuery } from '@tanstack/react-query';
import { useAuth } from '../../context/AuthContext';
import { gdprApi } from '../../services/api';
import Sidebar from './Sidebar';
import ScrollToTopButton from '../ScrollToTopButton';
import BirthdayModal from '../BirthdayModal';
import { AlertTriangle, ArrowRight, Building, Shield } from 'lucide-react';
function ConsentBanner() {
const { user, isCustomerPortal } = useAuth();
const { data } = useQuery({
queryKey: ['my-consent-status'],
queryFn: () => gdprApi.getMyConsentStatus(),
enabled: isCustomerPortal && !!user?.customerId,
staleTime: 30_000,
});
if (!isCustomerPortal || !data?.data) return null;
if (data.data.hasConsent) return null;
return (
Bitte stimmen Sie unserer Datenschutzerklärung zu, damit wir Sie beraten können.
Jetzt zustimmen
);
}
function PortalFooter() {
const { isCustomerPortal } = useAuth();
if (!isCustomerPortal) return null;
return (
);
}
export default function Layout() {
return (
// `overflow-auto` auf dem Content-Wrapper wurde entfernt: dadurch
// wurde jeder Sticky-Header (ContractDetail/ContractForm) unwirksam,
// weil sein Scroll-Ancestor der Wrapper war – der aber wegen der
// Flexbox-`min-h-auto`-Regel nicht selbst scrollte. Jetzt scrollt
// wieder das Window, und Sticky sitzt an der Viewport-Kante.
//
// `min-w-0` auf dem Content-Wrapper: Flex-Items haben default
// `min-width: auto`, wodurch der Wrapper von einem sehr breiten
// Kind (lange E-Mail-Adressen, breite Tabellen, PDF-URL-Anhänge)
// horizontal aufgebläht wird. Ohne overflow-auto fehlte der
// stille Cap; jetzt cappt min-w-0 die Flex-Basis auf die
// Viewport-Breite.