feat(settings): restructure settings layout and separate route modules

This commit is contained in:
poyrazavsever
2026-07-20 10:25:40 +03:00
parent cc22c8ee1d
commit b424385667
34 changed files with 2867 additions and 1691 deletions
@@ -0,0 +1,30 @@
import { getSqliteConnection } from "@/server/db/client";
import { I18nService } from "@/server/i18n/service";
import { resolveFreelancerLocale } from "@/server/i18n/resolver";
import { getUserPreferences } from "@/server/settings/preferences";
import { requireFreelancerBackend } from "@/server/web/freelancer";
import { LanguagePreferenceForm } from "./language-preference-form";
export default async function LanguagePreferenceSettingsPage() {
const { actor, context } = await requireFreelancerBackend();
const i18n = new I18nService(getSqliteConnection().db);
const activeLocales = i18n
.listLocales(actor)
.filter((locale) => locale.status === "active")
.map(({ code, name, nativeName }) => ({ code, name, nativeName }));
const defaultLocale = i18n.getSettings(actor).defaultLocale;
const preferredLanguage = getUserPreferences(actor).language;
const resolved = await resolveFreelancerLocale(context);
const preferenceIsActive = activeLocales.some(
(locale) => locale.code === preferredLanguage,
);
return (
<LanguagePreferenceForm
activeLocales={activeLocales}
defaultLocale={defaultLocale}
initialLanguage={preferenceIsActive ? preferredLanguage : resolved.locale}
preferenceNeedsSelection={!preferenceIsActive}
/>
);
}