feat(ui): aynî kayıt kartları, ödeme ve birikim diyalogları, fiyat tablosu sayfası

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 12:37:48 +03:00
parent 9781cd9ed2
commit 3cd8d98324
9 changed files with 1119 additions and 7 deletions
+10 -2
View File
@@ -3,6 +3,7 @@ import { notFound } from "next/navigation";
import { PageHeader } from "@/components/page-header";
import { ContactsView } from "@/features/contacts/components/contacts-view";
import { listContacts } from "@/features/contacts/service";
import { openInKindByContact } from "@/features/in-kind/service";
import { hasHouseholdRole } from "@/features/households/roles";
import { tr } from "@/i18n/tr";
import { requireActiveHousehold } from "@/lib/dal";
@@ -11,12 +12,19 @@ export const metadata: Metadata = { title: tr.contacts.title };
export default async function ContactsPage() {
const { user, household } = await requireActiveHousehold("viewer");
const data = await listContacts(user.id, household.id);
const [data, inKind] = await Promise.all([
listContacts(user.id, household.id),
openInKindByContact(user.id, household.id),
]);
if (!data) notFound();
return (
<>
<PageHeader title={tr.contacts.title} description={tr.contacts.description} />
<ContactsView data={data} canWrite={hasHouseholdRole(household.role, "member")} />
<ContactsView
data={data}
inKind={Object.fromEntries(inKind)}
canWrite={hasHouseholdRole(household.role, "member")}
/>
</>
);
}