Files
EpicNext-Cms/src/app/(site)/layout.tsx
T
openhands 903d175f2d
CI / check (push) Failing after 26s
CI / release (push) Skipped
CI / deploy (push) Skipped
Polish responsive design across all screen sizes and refine card blocks
- Enhance SurfaceCard with refined borders, layered shadows, and polished
  primary-tinted header with an icon container
- Update homepage blocks (hero, features, stats, login, news, photos) for
  proper mobile/tablet/desktop responsiveness and tighter mobile spacing
- Improve content-card, stat-block, card-grid and card styling with subtle
  depth (layered shadow + inner hairline) and smoother hover states
- Refine site header, footer, top header and site layout spacing for small
  screens while keeping a consistent professional look on large screens
- Add min-tap-height targets and responsive typography on mobile
2026-08-31 11:45:02 +02:00

42 lines
1.2 KiB
TypeScript

import type { ReactNode } from "react";
import MotionPageWrapper from "@/components/motion-page-wrapper";
import { Navigation } from "@/components/navigation";
import RadioPlayerGate from "@/components/public/radio-player-gate";
import { SiteFooter } from "@/components/site-footer";
import { SiteHeader } from "@/components/site-header";
import { TopHeader } from "@/components/top-header";
import { auth } from "@/lib/auth";
/**
* Public site chrome. Route group `(site)` keeps this off `/admin` and `/client`,
* so housekeeping is never constrained by the public max-w-7xl grid.
*/
export default async function SiteLayout({
children,
}: {
children: ReactNode;
}) {
const session = await auth();
return (
<>
{session?.user?.id ? (
<>
<TopHeader session={session} />
<SiteHeader />
<Navigation session={session} />
</>
) : null}
<main>
<div className="mx-auto mt-4 grid max-w-7xl grid-cols-12 gap-x-3 gap-y-5 px-3 py-3 sm:px-4 sm:py-4 md:mt-0 md:px-6 md:py-6 md:gap-y-6">
<div className="col-span-12 min-w-0">
<MotionPageWrapper>{children}</MotionPageWrapper>
</div>
</div>
</main>
<SiteFooter />
<RadioPlayerGate />
</>
);
}