POSTERAPP_V1/app/page.tsx

74 lines
2.9 KiB
TypeScript

import React from 'react'
import Link from 'next/link'
import LanguageSelector from '../components/LanguageSelector'
import { cookies } from 'next/headers'
async function getMessages() {
const cookieStore = await cookies()
const lang = cookieStore.get('NEXT_LOCALE')?.value || 'tr'
const messages = await import(`../messages/${lang}.json`)
return messages.default
}
export default async function Home() {
const messages = await getMessages()
return (
<main className="flex min-h-screen flex-col items-center justify-center p-24">
<div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
<h1 className="text-4xl font-bold mb-8">{messages.home.title}</h1>
<div className="absolute top-4 right-4">
<LanguageSelector />
</div>
</div>
<div className="mb-32 grid text-center lg:max-w-5xl lg:w-full lg:mb-0 lg:grid-cols-3 lg:text-left gap-4">
<Link
href="/auth/login"
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
>
<h2 className="mb-3 text-2xl font-semibold">
{messages.common.login}{' '}
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
-&gt;
</span>
</h2>
<p className="m-0 max-w-[30ch] text-sm opacity-50">
{messages.home.loginDescription}
</p>
</Link>
<Link
href="/auth/register"
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
>
<h2 className="mb-3 text-2xl font-semibold">
{messages.common.register}{' '}
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
-&gt;
</span>
</h2>
<p className="m-0 max-w-[30ch] text-sm opacity-50">
{messages.home.registerDescription}
</p>
</Link>
<Link
href="/about"
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
>
<h2 className="mb-3 text-2xl font-semibold">
{messages.common.about}{' '}
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
-&gt;
</span>
</h2>
<p className="m-0 max-w-[30ch] text-sm opacity-50">
{messages.home.aboutDescription}
</p>
</Link>
</div>
</main>
)
}