Skip to content

Commit 6d4e147

Browse files
committed
feat: edit/delete review
1 parent eefb857 commit 6d4e147

File tree

12 files changed

+672
-459
lines changed

12 files changed

+672
-459
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import {
2+
Breadcrumb,
3+
BreadcrumbItem,
4+
BreadcrumbLink,
5+
BreadcrumbList,
6+
BreadcrumbSeparator,
7+
} from '@/components/ui/breadcrumb'
8+
import { getMembership } from '@/lib/api/membership'
9+
import { SITE_NAME } from '@/lib/consts'
10+
import { Metadata } from 'next'
11+
12+
export const metadata: Metadata = {
13+
title: `Membership · ${SITE_NAME}`,
14+
}
15+
16+
export default async function MembershipDetailsLayout({
17+
children,
18+
params,
19+
}: Readonly<{
20+
children: React.ReactNode
21+
params: Promise<{ id: string }>
22+
}>) {
23+
const { id } = await params
24+
25+
const [membershipRes] = await Promise.all([getMembership({ id })])
26+
27+
if ('error' in membershipRes) {
28+
console.log({ libRes: membershipRes })
29+
return <div>{JSON.stringify(membershipRes.message)}</div>
30+
}
31+
return (
32+
<>
33+
<nav className="backdrop-blur-sm sticky top-0 z-10">
34+
<h1 className="text-2xl font-semibold">{membershipRes.data.name}</h1>
35+
<div className="flex justify-between items-center">
36+
<Breadcrumb>
37+
<BreadcrumbList>
38+
<BreadcrumbItem>
39+
<BreadcrumbLink href="/admin">Home</BreadcrumbLink>
40+
</BreadcrumbItem>
41+
<BreadcrumbSeparator />
42+
<BreadcrumbItem>
43+
<BreadcrumbLink href="/admin/memberships">
44+
Memberships
45+
</BreadcrumbLink>
46+
</BreadcrumbItem>
47+
<BreadcrumbSeparator />
48+
<BreadcrumbItem>{membershipRes.data.name}</BreadcrumbItem>
49+
</BreadcrumbList>
50+
</Breadcrumb>
51+
</div>
52+
</nav>
53+
{children}
54+
</>
55+
)
56+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ListCardMembership } from '@/components/memberships/ListCardMembership'
2+
import { getMembership } from '@/lib/api/membership'
3+
4+
export default async function Memberships({
5+
params,
6+
}: {
7+
params: Promise<{
8+
id: string
9+
}>
10+
}) {
11+
const { id } = await params
12+
13+
const [membershipRes] = await Promise.all([getMembership({ id })])
14+
15+
if ('error' in membershipRes) {
16+
console.log(membershipRes)
17+
return <div>{JSON.stringify(membershipRes.message)}</div>
18+
}
19+
20+
return (
21+
<div className="space-y-4">
22+
<ListCardMembership membership={membershipRes.data} />
23+
</div>
24+
)
25+
}

0 commit comments

Comments
 (0)