diff --git a/app/[locale]/(site)/page.tsx b/app/[locale]/(site)/page.tsx index cd69e83..a4d4401 100644 --- a/app/[locale]/(site)/page.tsx +++ b/app/[locale]/(site)/page.tsx @@ -5,18 +5,11 @@ import { Container } from "@/components/layout/container"; import { HomeHero } from "@/components/layout/home-hero"; import { MotionFade } from "@/components/motion-fade"; import { MagicBentoSection } from "@/components/home/magic-bento-section"; -import { CapabilitiesSection } from "@/components/home/capabilities-section"; import { ContactCtaSection } from "@/components/home/contact-cta-section"; import { MarqueeSection } from "@/components/home/marquee-section"; -import { ProcessSection } from "@/components/home/process-section"; -import { ProjectsSection } from "@/components/home/projects-section"; import type { - CapabilitiesSectionCopy, ContactCtaSectionCopy, MarqueeSectionCopy, - ProcessSectionCopy, - ProjectCardCopy, - ProjectsSectionCopy, } from "@/components/home/types"; import { buildLocalizedMetadata } from "@/lib/metadata"; import { getLocalizedPath, resolveLocale } from "@/lib/locale"; @@ -25,10 +18,6 @@ import { getSiteSettings, splitMarqueeRowItems, } from "@/lib/app-config"; -import { - getLocalizedValue, - getPublishedPortfolioProjects, -} from "@/lib/portfolio"; import { type MarqueeRow } from "@/components/layout/stacked-marquee-section"; type HomePageProps = { @@ -65,10 +54,9 @@ export default async function HomePage({ params }: HomePageProps) { siteSettings.defaultLocale, ); - const [t, marqueeSettings, publishedProjects] = await Promise.all([ + const [t, marqueeSettings] = await Promise.all([ getTranslations({ locale: localeKey, namespace: "homepage" }), getMarqueeSettings(), - getPublishedPortfolioProjects(), ]); const bentoCards = [ @@ -112,28 +100,6 @@ export default async function HomePage({ params }: HomePageProps) { description: t("marquee.description"), }; - const projectsCopy: ProjectsSectionCopy = { - eyebrow: t("projects.eyebrow"), - title: t("projects.title"), - description: t("projects.description"), - stackLabel: t("projects.stackLabel"), - fallbackItems: t.raw("projects.fallbackItems") as ProjectsSectionCopy["fallbackItems"], - }; - - const capabilitiesCopy: CapabilitiesSectionCopy = { - eyebrow: t("capabilities.eyebrow"), - title: t("capabilities.title"), - description: t("capabilities.description"), - items: t.raw("capabilities.items") as CapabilitiesSectionCopy["items"], - }; - - const processCopy: ProcessSectionCopy = { - eyebrow: t("process.eyebrow"), - title: t("process.title"), - description: t("process.description"), - steps: t.raw("process.steps") as ProcessSectionCopy["steps"], - }; - const contactCtaCopy: ContactCtaSectionCopy = { eyebrow: t("contactCta.eyebrow"), title: t("contactCta.title"), @@ -157,45 +123,6 @@ export default async function HomePage({ params }: HomePageProps) { const portfolioHref = getLocalizedPath(localeKey, "/portfolio", siteSettings.defaultLocale); const contactHref = getLocalizedPath(localeKey, "/contact", siteSettings.defaultLocale); - const stackSets = t.raw("projects.stackSets") as string[][]; - - const selectedProjects = [ - ...publishedProjects.filter((project) => project.isFeatured), - ...publishedProjects.filter((project) => !project.isFeatured), - ].slice(0, 3); - - const projectCards: ProjectCardCopy[] = selectedProjects.map((project, index) => ({ - title: getLocalizedValue(project.title, localeKey), - summary: getLocalizedValue(project.summary, localeKey), - stack: stackSets[index] ?? stackSets[stackSets.length - 1] ?? [], - href: getLocalizedPath( - localeKey, - `/portfolio/${project.slug}`, - siteSettings.defaultLocale, - ), - cta: t("projects.cta"), - meta: [ - getLocalizedValue(project.category.name, localeKey), - getLocalizedValue(project.serviceLabel, localeKey), - String(project.projectYear), - ], - featured: index === 0, - coverImagePath: project.coverImagePath, - })); - - const fallbackProjectCards: ProjectCardCopy[] = projectsCopy.fallbackItems.map((item) => ({ - title: item.title, - summary: item.summary, - stack: item.stack, - href: item.href === "/portfolio" ? portfolioHref : item.href === "/contact" ? contactHref : item.href, - cta: t("projects.cta"), - meta: [t("projects.fallbackMeta")], - })); - - const mergedProjectCards = [ - ...projectCards, - ...fallbackProjectCards.slice(0, Math.max(0, 3 - projectCards.length)), - ].slice(0, 3); return ( <> @@ -226,19 +153,7 @@ export default async function HomePage({ params }: HomePageProps) { - - - - - - - - - - - - diff --git a/components/home/marquee-section.tsx b/components/home/marquee-section.tsx index acab4fb..afd444e 100644 --- a/components/home/marquee-section.tsx +++ b/components/home/marquee-section.tsx @@ -1,5 +1,4 @@ import { StackedMarqueeSection, type MarqueeRow } from "@/components/layout/stacked-marquee-section"; -import { AppCard } from "@/components/ui/app-card"; import { SectionHeading } from "./section-heading"; import type { MarqueeSectionCopy } from "./types"; @@ -10,18 +9,18 @@ type MarqueeSectionProps = { export function MarqueeSection({ copy, rows }: MarqueeSectionProps) { return ( -
+
- -
- -
-
+ {/* Full-bleed band: breaks out of the centered container to span the + entire site width instead of sitting inside a card. */} +
+ +
); }