refactor(dashboard): apply new i18n resolver to dashboard shell and localized fields
This commit is contained in:
@@ -2,7 +2,7 @@ import { DashboardShell } from "@/components/layout/dashboard-shell";
|
||||
import { domainActorFromSession } from "@/server/auth/domain-actor";
|
||||
import { requireFreelancer } from "@/server/auth/session";
|
||||
import { getPublicBranding } from "@/server/branding/runtime";
|
||||
import { resolveRequestLocale } from "@/server/i18n/resolver";
|
||||
import { resolveFreelancerLocale } from "@/server/i18n/resolver";
|
||||
import { createTranslator, getClientI18nPayload } from "@/server/i18n/translator";
|
||||
import { getUserPreferences } from "@/server/settings/preferences";
|
||||
|
||||
@@ -15,7 +15,7 @@ export default async function DashboardLayout({
|
||||
const { user, profile } = context;
|
||||
const branding = getPublicBranding();
|
||||
const preferences = getUserPreferences(domainActorFromSession(context));
|
||||
const resolvedLocale = await resolveRequestLocale();
|
||||
const resolvedLocale = await resolveFreelancerLocale(context);
|
||||
const translator = createTranslator(resolvedLocale.locale, [
|
||||
"common",
|
||||
"navigation",
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ import {
|
||||
} from "@/lib/color-mode";
|
||||
import { Toaster } from "poyraz-ui/molecules";
|
||||
import { getPublicBranding } from "@/server/branding/runtime";
|
||||
import { resolveRequestLocale } from "@/server/i18n/resolver";
|
||||
import { resolveRootLocale } from "@/server/i18n/resolver";
|
||||
|
||||
const colorModeScript = `(() => {
|
||||
const root = document.documentElement;
|
||||
@@ -53,7 +53,7 @@ export default async function RootLayout({
|
||||
const colorMode = isColorMode(cookieColorMode)
|
||||
? cookieColorMode
|
||||
: branding.defaultColorMode;
|
||||
const locale = await resolveRequestLocale();
|
||||
const locale = await resolveRootLocale();
|
||||
|
||||
return (
|
||||
<html
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
import { getPublicBranding } from "@/server/branding/runtime";
|
||||
import { resolveRequestLocale } from "@/server/i18n/resolver";
|
||||
import { resolveRootLocale } from "@/server/i18n/resolver";
|
||||
import { createTranslator } from "@/server/i18n/translator";
|
||||
import Link from "next/link";
|
||||
import { Button, Typography } from "poyraz-ui/atoms";
|
||||
|
||||
export default async function NotFoundPage() {
|
||||
const locale = await resolveRequestLocale();
|
||||
const locale = await resolveRootLocale();
|
||||
const t = createTranslator(locale.locale, ["common"]).t;
|
||||
const branding = getPublicBranding();
|
||||
|
||||
|
||||
@@ -19,6 +19,10 @@ type LocalizedFieldsProps = {
|
||||
fields: ContentTranslationField[];
|
||||
values?: LocalizedFieldValues | null;
|
||||
fallbackValues?: Record<string, string | null | undefined>;
|
||||
labels?: {
|
||||
defaultBadge?: string;
|
||||
missingRequired?: string;
|
||||
};
|
||||
};
|
||||
|
||||
export function LocalizedFields({
|
||||
@@ -28,6 +32,7 @@ export function LocalizedFields({
|
||||
fields,
|
||||
values,
|
||||
fallbackValues,
|
||||
labels,
|
||||
}: LocalizedFieldsProps) {
|
||||
const orderedLocales = useMemo(() => {
|
||||
const localeMap = new Map(locales.map((locale) => [locale.code, locale]));
|
||||
@@ -66,8 +71,18 @@ export function LocalizedFields({
|
||||
onClick={() => setActiveLocale(locale.code)}
|
||||
>
|
||||
{locale.nativeName || locale.code}
|
||||
{locale.code === defaultLocale ? <Badge variant="secondary">varsayılan</Badge> : null}
|
||||
{missingRequiredLocales.has(locale.code) ? <span aria-hidden="true" className="text-amber-500">•</span> : null}
|
||||
{locale.code === defaultLocale ? (
|
||||
<Badge variant="secondary">{labels?.defaultBadge ?? "Default"}</Badge>
|
||||
) : null}
|
||||
{missingRequiredLocales.has(locale.code) ? (
|
||||
<span
|
||||
aria-label={labels?.missingRequired}
|
||||
aria-hidden={labels?.missingRequired ? undefined : true}
|
||||
className="text-amber-500"
|
||||
>
|
||||
•
|
||||
</span>
|
||||
) : null}
|
||||
</Button>
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -35,7 +35,7 @@ export function DashboardShell({ branding, children, colorMode, i18n, labels, us
|
||||
homeHref="/"
|
||||
labels={labels}
|
||||
navGroups={navGroups}
|
||||
settingsHref="/settings"
|
||||
settingsHref="/settings/general"
|
||||
user={user}
|
||||
>
|
||||
{children}
|
||||
|
||||
Reference in New Issue
Block a user