---
import "@styles/global.css";

import Favicon from "@components/base/Favicon.astro";
import Header from "@components/layouts/header/Header.astro";
import Footer from "@components/layouts/footer/Footer.astro";
import ScrollTopButton from "@components/base/ScrollTopButton.astro";
import Breadcrumbs from "@components/base/Breadcrumbs.astro";
import ConsultationModal from "@components/base/ConsultationModal.astro";

interface Props {
  title?: string;
  description?: string;
  pagePath?: string;
  blogPostTitle?: string;
  bodyClass?: string;
  noContainer?: boolean; // Новый проп для отключения контейнера
}

const props = Astro.props || {};
const {
  title = "Лучший адвокат в Сургуте",
  description = "Профессиональные юридические услуги в Сургуте. Защита прав, уголовные дела, гражданские споры.",
  pagePath = undefined,
  blogPostTitle = undefined,
  noContainer = false, // По умолчанию контейнер включен
} = props;

// Формируем канонический URL на основе текущего запроса
let canonicalLink = undefined;
if (Astro.request) {
  const url = new URL(Astro.request.url);
  if (pagePath) {
    url.pathname = pagePath;
  }
  canonicalLink = url.toString();
}
---

<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width" />
    <Favicon />
    <title>{title}</title>
    {description ? <meta name="description" content={description} /> : null}
    {canonicalLink ? <link rel="canonical" href={canonicalLink} /> : null}
  </head>
  <body class={`${props.bodyClass || "bg-gray-50"}`}>
    <Header />
    <Breadcrumbs blogPostTitle={blogPostTitle} />
    {
      noContainer ? (
        <slot />
      ) : (
        <div class="container mx-auto px-4 md:px-8 lg:px-16">
          <slot />
        </div>
      )
    }
    <Footer />
    <ScrollTopButton />
    <ConsultationModal />
  </body>
</html>
