- Fix i18n dotted permission keys causing INVALID_KEY console spam (en/de cms.json) - Fix member detail breadcrumb showing UUID instead of member name - Fix bookings stats card showing 'of' instead of 'Total' - Fix events/registrations table 'status' column header resolving to object - Fix finance search placeholder showing 'Show All' instead of search text - Fix finance status filter default showing 'No data' instead of 'All' - Fix applications page German pluralization 'Antrage' → 'Anträge' - Add breadcrumbValues prop to CmsPageShell for UUID→name overrides
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { createMemberManagementApi } from '@kit/member-management/api';
|
|
import { MemberDetailView } from '@kit/member-management/components';
|
|
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
|
|
|
import { AccountNotFound } from '~/components/account-not-found';
|
|
import { CmsPageShell } from '~/components/cms-page-shell';
|
|
|
|
interface Props {
|
|
params: Promise<{ account: string; memberId: string }>;
|
|
}
|
|
|
|
export default async function MemberDetailPage({ params }: Props) {
|
|
const { account, memberId } = await params;
|
|
const client = getSupabaseServerClient();
|
|
const { data: acct } = await client
|
|
.from('accounts')
|
|
.select('id')
|
|
.eq('slug', account)
|
|
.single();
|
|
if (!acct) return <AccountNotFound />;
|
|
|
|
const api = createMemberManagementApi(client);
|
|
const member = await api.getMember(memberId);
|
|
if (!member) return <AccountNotFound />;
|
|
|
|
// Fetch sub-entities in parallel
|
|
const [roles, honors, mandates] = await Promise.all([
|
|
api.listMemberRoles(memberId),
|
|
api.listMemberHonors(memberId),
|
|
api.listMandates(memberId),
|
|
]);
|
|
|
|
const memberName = `${String(member.first_name)} ${String(member.last_name)}`;
|
|
|
|
return (
|
|
<CmsPageShell
|
|
account={account}
|
|
title={memberName}
|
|
breadcrumbValues={{ [memberId]: memberName }}
|
|
>
|
|
<MemberDetailView
|
|
member={member}
|
|
account={account}
|
|
accountId={acct.id}
|
|
roles={roles}
|
|
honors={honors}
|
|
mandates={mandates}
|
|
/>
|
|
</CmsPageShell>
|
|
);
|
|
}
|