feat(db): mesh data model — meshes, members, invites, audit log
- 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>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
"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>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user