82 lines
2.4 KiB
TypeScript
82 lines
2.4 KiB
TypeScript
import CallToActionSection from '@/components/blocks/calltoaction/calltoaction';
|
|
import FaqSection from '@/components/blocks/faqs/faqs';
|
|
import FeaturesSection from '@/components/blocks/features/features';
|
|
import Features2Section from '@/components/blocks/features/features2';
|
|
import Features3Section from '@/components/blocks/features/features3';
|
|
import HeroSection from '@/components/blocks/hero/hero';
|
|
import IntegrationSection from '@/components/blocks/integration/integration';
|
|
import Integration2Section from '@/components/blocks/integration/integration2';
|
|
import LogoCloud from '@/components/blocks/logo-cloud/logo-cloud';
|
|
import PricingSection from '@/components/blocks/pricing/pricing';
|
|
import StatsSection from '@/components/blocks/stats/stats';
|
|
import TestimonialsSection from '@/components/blocks/testimonials/testimonials';
|
|
import { NewsletterCard } from '@/components/newsletter/newsletter-card';
|
|
import DiscordWidget from '@/components/shared/discord-widget';
|
|
import { constructMetadata } from '@/lib/metadata';
|
|
import { getUrlWithLocale } from '@/lib/urls/urls';
|
|
import type { Metadata } from 'next';
|
|
import type { Locale } from 'next-intl';
|
|
import { getTranslations } from 'next-intl/server';
|
|
|
|
/**
|
|
* https://next-intl.dev/docs/environments/actions-metadata-route-handlers#metadata-api
|
|
*/
|
|
export async function generateMetadata({
|
|
params,
|
|
}: {
|
|
params: Promise<{ locale: Locale }>;
|
|
}): Promise<Metadata | undefined> {
|
|
const { locale } = await params;
|
|
const t = await getTranslations({ locale, namespace: 'Metadata' });
|
|
|
|
return constructMetadata({
|
|
title: t('title'),
|
|
description: t('description'),
|
|
canonicalUrl: getUrlWithLocale('', locale),
|
|
});
|
|
}
|
|
|
|
interface HomePageProps {
|
|
params: Promise<{ locale: Locale }>;
|
|
}
|
|
|
|
export default async function HomePage(props: HomePageProps) {
|
|
const params = await props.params;
|
|
const { locale } = params;
|
|
const t = await getTranslations('HomePage');
|
|
|
|
return (
|
|
<>
|
|
<div className="flex flex-col">
|
|
<HeroSection />
|
|
|
|
<LogoCloud />
|
|
|
|
<StatsSection />
|
|
|
|
<IntegrationSection />
|
|
|
|
<FeaturesSection />
|
|
|
|
<Features2Section />
|
|
|
|
<Features3Section />
|
|
|
|
<Integration2Section />
|
|
|
|
<PricingSection />
|
|
|
|
<FaqSection />
|
|
|
|
<CallToActionSection />
|
|
|
|
<TestimonialsSection />
|
|
|
|
<NewsletterCard />
|
|
|
|
<DiscordWidget />
|
|
</div>
|
|
</>
|
|
);
|
|
}
|