---
import "@styles/global.css";
import { SITE_INFO } from "@constants/site";
import Header from "@components/layouts/header/Header.astro";
import Footer from "@components/layouts/footer/Footer.astro";
import Breadcrumbs from "@components/base/Breadcrumbs.astro";
import NotificationToast from "@components/base/NotificationToast.astro";

// Получаем данные сессии из пропсов или из локальных данных
const {
  isActionActive = false,
  title = SITE_INFO.name,
  description = 'Berlin Minivan Transfers - Professionelle Van- und Limousinenservices in Berlin. Zuverlässige, komfortable und pünktliche Fahrten zu fairen Preisen.',
  canonicalLink = `${SITE_INFO.url}${Astro.url.pathname}`,
  breadcrumbs = null, // Опциональный параметр для настройки хлебных крошек
  skipSiteName = false // Флаг для пропуска добавления названия сайта к заголовку
} = Astro.props;

// Если session и status не переданы в пропсах, получаем их из Astro.locals
const sessionFromProps = Astro.props.session;
const statusFromProps = Astro.props.status;

// Получаем пользователя из локальных данных, если он не передан в пропсах
const user = Astro.locals.user;
const session = sessionFromProps !== undefined ? sessionFromProps : (user ? {user: user} : null);
const status = statusFromProps !== undefined ? statusFromProps : (user ? 'authenticated' : 'unauthenticated');

console.log('Данные сессии в Layout:', { session, status, user, sessionFromProps, statusFromProps });

const pageTitle = skipSiteName ? title : (title !== SITE_INFO.name ? `${title} | ${SITE_INFO.name}` : SITE_INFO.name);

// Определяем, является ли текущая страница главной
const isHomePage = Astro.url.pathname === '/';

// Проверяем наличие флага loginSuccess и аутентификацию пользователя
const loginSuccess = Astro.url.searchParams.get('loginSuccess') === 'true' && !!user;
const userName = user?.name || user?.email?.split('@')[0] || 'Gast';
---

<!doctype html>
<html lang="de">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content={description} />
		<link rel="icon" type="image/x-icon" href="/favicon.ico" />
		<link rel="canonical" href={canonicalLink} />
		<title>{pageTitle}</title>
	</head>
	<body>
        <Header
            isActionActive={isActionActive}
            session={session}
            status={status}
            currentPath={Astro.url.pathname}
        />
        {!isHomePage && (
          <div class="py-4 px-0">
            <div class="max-w-7xl mx-auto px-6">
              {breadcrumbs ? (
                <Breadcrumbs items={breadcrumbs} variant="minimal" />
              ) : (
                <Breadcrumbs
                  items={[{ label: 'Startseite', href: '/' }, {
                    label: Astro.url.pathname.startsWith('/blog') ? 'Blog' : title.split(' | ')[0],
                    current: true
                  }]}
                  variant="minimal"
                />
              )}
            </div>
          </div>
        )}

        {/* УВЕДОМЛЕНИЕ ОБ УСПЕШНОМ ВХОДЕ */}
        {loginSuccess && (
            <NotificationToast
                message={`Willkommen zurück, ${userName}!`}
                type="success"
                duration={5000}
            />
        )}

        <slot />
        <Footer />
	</body>
</html>