diff options
Diffstat (limited to 'apps/web/app/settings')
| -rw-r--r-- | apps/web/app/settings/ai/page.tsx | 10 | ||||
| -rw-r--r-- | apps/web/app/settings/api-keys/page.tsx | 10 | ||||
| -rw-r--r-- | apps/web/app/settings/assets/layout.tsx | 18 | ||||
| -rw-r--r-- | apps/web/app/settings/broken-links/layout.tsx | 18 | ||||
| -rw-r--r-- | apps/web/app/settings/feeds/page.tsx | 10 | ||||
| -rw-r--r-- | apps/web/app/settings/import/page.tsx | 10 | ||||
| -rw-r--r-- | apps/web/app/settings/info/page.tsx | 10 | ||||
| -rw-r--r-- | apps/web/app/settings/rules/layout.tsx | 18 | ||||
| -rw-r--r-- | apps/web/app/settings/stats/layout.tsx | 18 | ||||
| -rw-r--r-- | apps/web/app/settings/subscription/page.tsx | 10 | ||||
| -rw-r--r-- | apps/web/app/settings/webhooks/page.tsx | 10 |
11 files changed, 142 insertions, 0 deletions
diff --git a/apps/web/app/settings/ai/page.tsx b/apps/web/app/settings/ai/page.tsx index 2b3d7a8d..02e2ae4b 100644 --- a/apps/web/app/settings/ai/page.tsx +++ b/apps/web/app/settings/ai/page.tsx @@ -1,4 +1,14 @@ +import type { Metadata } from "next"; import AISettings from "@/components/settings/AISettings"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.ai.ai_settings")} | Karakeep`, + }; +} export default function AISettingsPage() { return <AISettings />; diff --git a/apps/web/app/settings/api-keys/page.tsx b/apps/web/app/settings/api-keys/page.tsx index 1c3718d6..494a0b5c 100644 --- a/apps/web/app/settings/api-keys/page.tsx +++ b/apps/web/app/settings/api-keys/page.tsx @@ -1,4 +1,14 @@ +import type { Metadata } from "next"; import ApiKeySettings from "@/components/settings/ApiKeySettings"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.api_keys.api_keys")} | Karakeep`, + }; +} export default async function ApiKeysPage() { return ( diff --git a/apps/web/app/settings/assets/layout.tsx b/apps/web/app/settings/assets/layout.tsx new file mode 100644 index 00000000..2324c83a --- /dev/null +++ b/apps/web/app/settings/assets/layout.tsx @@ -0,0 +1,18 @@ +import type { Metadata } from "next"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.manage_assets.manage_assets")} | Karakeep`, + }; +} + +export default function AssetsLayout({ + children, +}: { + children: React.ReactNode; +}) { + return <>{children}</>; +} diff --git a/apps/web/app/settings/broken-links/layout.tsx b/apps/web/app/settings/broken-links/layout.tsx new file mode 100644 index 00000000..45f3dadf --- /dev/null +++ b/apps/web/app/settings/broken-links/layout.tsx @@ -0,0 +1,18 @@ +import type { Metadata } from "next"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.broken_links.broken_links")} | Karakeep`, + }; +} + +export default function BrokenLinksLayout({ + children, +}: { + children: React.ReactNode; +}) { + return <>{children}</>; +} diff --git a/apps/web/app/settings/feeds/page.tsx b/apps/web/app/settings/feeds/page.tsx index d2d1f182..603e9a09 100644 --- a/apps/web/app/settings/feeds/page.tsx +++ b/apps/web/app/settings/feeds/page.tsx @@ -1,4 +1,14 @@ +import type { Metadata } from "next"; import FeedSettings from "@/components/settings/FeedSettings"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.feeds.rss_subscriptions")} | Karakeep`, + }; +} export default function FeedSettingsPage() { return <FeedSettings />; diff --git a/apps/web/app/settings/import/page.tsx b/apps/web/app/settings/import/page.tsx index 11780d51..23ef4019 100644 --- a/apps/web/app/settings/import/page.tsx +++ b/apps/web/app/settings/import/page.tsx @@ -1,4 +1,14 @@ +import type { Metadata } from "next"; import ImportExport from "@/components/settings/ImportExport"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.import.import_export")} | Karakeep`, + }; +} export default function ImportSettingsPage() { return <ImportExport />; diff --git a/apps/web/app/settings/info/page.tsx b/apps/web/app/settings/info/page.tsx index 96deab96..1807b538 100644 --- a/apps/web/app/settings/info/page.tsx +++ b/apps/web/app/settings/info/page.tsx @@ -1,7 +1,17 @@ +import type { Metadata } from "next"; import { ChangePassword } from "@/components/settings/ChangePassword"; import { DeleteAccount } from "@/components/settings/DeleteAccount"; import UserDetails from "@/components/settings/UserDetails"; import UserOptions from "@/components/settings/UserOptions"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.info.user_info")} | Karakeep`, + }; +} export default async function InfoPage() { return ( diff --git a/apps/web/app/settings/rules/layout.tsx b/apps/web/app/settings/rules/layout.tsx new file mode 100644 index 00000000..03b4316e --- /dev/null +++ b/apps/web/app/settings/rules/layout.tsx @@ -0,0 +1,18 @@ +import type { Metadata } from "next"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.rules.rules")} | Karakeep`, + }; +} + +export default function RulesLayout({ + children, +}: { + children: React.ReactNode; +}) { + return <>{children}</>; +} diff --git a/apps/web/app/settings/stats/layout.tsx b/apps/web/app/settings/stats/layout.tsx new file mode 100644 index 00000000..0f24c049 --- /dev/null +++ b/apps/web/app/settings/stats/layout.tsx @@ -0,0 +1,18 @@ +import type { Metadata } from "next"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.stats.usage_statistics")} | Karakeep`, + }; +} + +export default function StatsLayout({ + children, +}: { + children: React.ReactNode; +}) { + return <>{children}</>; +} diff --git a/apps/web/app/settings/subscription/page.tsx b/apps/web/app/settings/subscription/page.tsx index e8c46460..5b06798e 100644 --- a/apps/web/app/settings/subscription/page.tsx +++ b/apps/web/app/settings/subscription/page.tsx @@ -1,9 +1,19 @@ +import type { Metadata } from "next"; import { redirect } from "next/navigation"; import SubscriptionSettings from "@/components/settings/SubscriptionSettings"; import { QuotaProgress } from "@/components/subscription/QuotaProgress"; +import { useTranslation } from "@/lib/i18n/server"; import serverConfig from "@karakeep/shared/config"; +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.subscription.subscription")} | Karakeep`, + }; +} + export default async function SubscriptionPage() { if (!serverConfig.stripe.isConfigured) { redirect("/settings"); diff --git a/apps/web/app/settings/webhooks/page.tsx b/apps/web/app/settings/webhooks/page.tsx index 327d0d8f..4f798aa1 100644 --- a/apps/web/app/settings/webhooks/page.tsx +++ b/apps/web/app/settings/webhooks/page.tsx @@ -1,4 +1,14 @@ +import type { Metadata } from "next"; import WebhookSettings from "@/components/settings/WebhookSettings"; +import { useTranslation } from "@/lib/i18n/server"; + +export async function generateMetadata(): Promise<Metadata> { + // oxlint-disable-next-line rules-of-hooks + const { t } = await useTranslation(); + return { + title: `${t("settings.webhooks.webhooks")} | Karakeep`, + }; +} export default function WebhookSettingsPage() { return <WebhookSettings />; |
