@@ -13,6 +13,7 @@ import { ThreeDBook } from '@/components/books/three-d-book'
1313import { Button } from '@/components/ui/button'
1414import { Badge } from '@/components/ui/badge'
1515import Link from 'next/link'
16+ import { DetailBook } from '@/components/books/DetailBook'
1617
1718export default async function BookDetailsPage ( {
1819 params,
@@ -47,79 +48,14 @@ export default async function BookDetailsPage({
4748 </ BreadcrumbList >
4849 </ Breadcrumb >
4950
50- < div className = "grid grid-cols-1 lg:grid-cols-3 gap-4" >
51- { /* Book Cover */ }
52- < div className = "lg:col-span-1 grid place-items-center gap-4" >
53- < ThreeDBook book = { bookRes . data } />
54- < Button className = "w-full" asChild >
55- < Link href = { `/admin/books/${ bookRes . data . id } /edit` } >
56- < Pen />
57- Edit
58- </ Link >
59- </ Button >
60- </ div >
61-
62- { /* Book Information */ }
63- < div className = "lg:col-span-2 space-y-4" >
64- < div >
65- < h1 className = "text-3xl font-bold mb-2" > { bookRes . data . title } </ h1 >
66- < p className = "text-xl text-muted-foreground mb-4" >
67- { bookRes . data . author }
68- </ p >
69- < div className = "flex flex-wrap gap-2 mb-4" >
70- < Badge
71- variant = {
72- bookRes . data . stats ?. is_available ? 'default' : 'secondary'
73- }
74- >
75- { bookRes . data . stats ?. is_available ? 'Available' : 'Borrowed' }
76- </ Badge >
77- < Badge variant = "outline" > bookRes.data.genre</ Badge >
78- </ div >
79- </ div >
80-
81- < Card >
82- < CardHeader >
83- < CardTitle > Book Information</ CardTitle >
84- </ CardHeader >
85- < CardContent className = "grid gap-2 grid-cols-[max-content_1fr] md:grid-cols-[max-content_1fr_max-content_1fr] items-center" >
86- < Hash className = "size-4" />
87- < p >
88- < span className = "font-medium" > Code: </ span >
89- { bookRes . data . code }
90- </ p >
91- < Calendar className = "size-4" />
92- < p >
93- < span className = "font-medium" > Year: </ span >
94- { bookRes . data . year }
95- </ p >
96- < Library className = "size-4" />
97- < p >
98- < span className = "font-medium" > Library: </ span >
99- < Link href = { `/libraries/${ bookRes . data . library . id } ` } >
100- { bookRes . data . library . name }
101- </ Link >
102- </ p >
103- </ CardContent >
104- </ Card >
105-
106- < Card >
107- < CardHeader >
108- < CardTitle > Description</ CardTitle >
109- </ CardHeader >
110- < CardContent >
111- < p className = "text-sm leading-relaxed" >
112- bookRes.data.description
113- </ p >
114- </ CardContent >
115- </ Card >
116- </ div >
117- </ div >
118-
119- { /* <div className="place-self-center text-center pt-4 border-t">
120- <p className="text-gray-600">{bookRes.data.author}</p>
121- <p className="text-sm text-gray-500">{bookRes.data.code}</p>
122- </div> */ }
51+ < DetailBook book = { bookRes . data } >
52+ < Button className = "w-full" asChild >
53+ < Link href = { `/admin/books/${ bookRes . data . id } /edit` } >
54+ < Pen />
55+ Edit
56+ </ Link >
57+ </ Button >
58+ </ DetailBook >
12359 </ div >
12460 )
12561}
0 commit comments