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,37 @@
import { getSqliteConnection } from "@/server/db/client";
import { I18nService } from "@/server/i18n/service";
import { requireFreelancerBackend } from "@/server/web/freelancer";
import { LanguagesList } from "./languages-list";
export default async function LanguagesSettingsPage() {
const { actor } = await requireFreelancerBackend();
const service = new I18nService(getSqliteConnection().db);
const locales = service.listLocales(actor);
const settings = service.getSettings(actor);
const completion = new Map(
service.getCompletion(actor).map((item) => [item.locale, item.percent]),
);
const localeNames = new Map(locales.map((locale) => [locale.code, locale.nativeName]));
const languages = locales.map((locale) => {
const usage = service.getLocaleUsage(actor, locale.code);
return {
builtIn: locale.builtIn,
code: locale.code,
completion: completion.get(locale.code) ?? 0,
fallbackName: locale.fallbackLocale
? localeNames.get(locale.fallbackLocale) ?? locale.fallbackLocale
: null,
name: locale.name,
nativeName: locale.nativeName,
status: locale.status,
usage: usage.userPreferences + usage.clients + usage.portalInvitations,
};
});
return (
<LanguagesList
initialDefaultLocale={settings.defaultLocale}
languages={languages}
/>
);
}