- pgSchema "mesh" with 4 tables isolating the peer mesh domain - Enums: visibility, transport, tier, role - audit_log is metadata-only (E2E encryption enforced at broker/client) - Cascade on mesh delete, soft-delete via archivedAt/revokedAt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
907 B
TypeScript
37 lines
907 B
TypeScript
"use client";
|
|
|
|
import { useTranslation } from "@turbostarter/i18n";
|
|
|
|
import { I18nControls } from "~/modules/common/i18n/controls";
|
|
import {
|
|
SettingsCard,
|
|
SettingsCardContent,
|
|
SettingsCardDescription,
|
|
SettingsCardFooter,
|
|
SettingsCardHeader,
|
|
SettingsCardTitle,
|
|
} from "~/modules/common/layout/dashboard/settings-card";
|
|
|
|
export const LanguageSwitcher = () => {
|
|
const { t } = useTranslation("common");
|
|
|
|
return (
|
|
<SettingsCard>
|
|
<SettingsCardHeader>
|
|
<SettingsCardTitle>{t("language.label")}</SettingsCardTitle>
|
|
<SettingsCardDescription>
|
|
{t("language.description")}
|
|
</SettingsCardDescription>
|
|
</SettingsCardHeader>
|
|
|
|
<SettingsCardContent>
|
|
<div className="max-w-xs">
|
|
<I18nControls />
|
|
</div>
|
|
</SettingsCardContent>
|
|
|
|
<SettingsCardFooter>{t("language.info")}</SettingsCardFooter>
|
|
</SettingsCard>
|
|
);
|
|
};
|