blob: 2d362368a00cc8c8812dfbb6d7038b547dc0a03c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1
import type { Metadata } from "next";
import Link from "next/link";
import { Footer } from "@/components/Footer";
import { SiteHeader } from "@/components/SiteHeader";
import { getLocale } from "@/lib/locale.server";
import { getMessages } from "@/lib/localization";
export async function generateMetadata(): Promise<Metadata> {
const { metadata } = getMessages(await getLocale());
return {
title: metadata.accountTitle,
description: metadata.accountDescription,
robots: { index: false, follow: false },
};
}
export default async function AccountHomepage() {
const locale = await getLocale();
const { account, navigation } = getMessages(locale);
return (
<>
<SiteHeader account locale={locale} />
<main className="account-landing">
<section className="account-landing-hero">
<div className="shell account-landing-grid">
<div>
<p className="eyebrow">{account.landingEyebrow}</p>
<h1>{account.landingTitle}</h1>
<p>{account.landingDescription}</p>
<div className="hero-actions">
<Link className="button" href="/login">
{navigation.signIn}
</Link>
<Link className="button button-secondary" href="/register">
{navigation.createAccount}
</Link>
</div>
</div>
<div className="identity-card">
<div className="identity-icon" aria-hidden="true">
P
</div>
{account.identity.map(([label, description]) => (
<div key={label}>
<span>{label}</span>
<strong>{description}</strong>
</div>
))}
</div>
</div>
</section>
<section className="section">
<div className="shell feature-grid">
{account.features.map(([title, description], index) => (
<article key={title}>
<span>{String(index + 1).padStart(2, "0")}</span>
<h2>{title}</h2>
<p>{description}</p>
</article>
))}
</div>
</section>
</main>
<Footer locale={locale} />
</>
);
}
|