Skip to content

Commit f4ce432

Browse files
committed
feat: subscription usage progress
1 parent f72f283 commit f4ce432

File tree

3 files changed

+49
-26
lines changed

3 files changed

+49
-26
lines changed

app/(protected)/borrows/[id]/page.tsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,15 +212,6 @@ export default async function BorrowDetailsPage({
212212
</Card>
213213
</div>
214214

215-
{/* <Card>
216-
<CardHeader>
217-
<CardTitle>Progress</CardTitle>
218-
</CardHeader>
219-
<CardContent>
220-
<Progress value={progressPercent} />
221-
</CardContent>
222-
</Card> */}
223-
224215
<Card>
225216
<CardHeader>
226217
<div className="flex justify-between items-center">

app/(protected)/subscriptions/[id]/page.tsx

Lines changed: 47 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ import {
99
import Link from 'next/link'
1010
import { Verify } from '@/lib/firebase/firebase'
1111
import { Badge } from '@/components/ui/badge'
12-
import {
13-
formatDate,
14-
getSubscriptionStatus,
15-
isSubscriptionActive,
16-
} from '@/lib/utils'
12+
import { formatDate, getSubscriptionStatus } from '@/lib/utils'
1713
import { getSubscription } from '@/lib/api/subscription'
1814
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
1915
import {
@@ -30,6 +26,7 @@ import {
3026
User,
3127
} from 'lucide-react'
3228
import { formatDistanceToNowStrict } from 'date-fns'
29+
import { Progress } from '@/components/ui/progress'
3330

3431
export default async function SubscriptionDetailsPage({
3532
params,
@@ -92,17 +89,7 @@ export default async function SubscriptionDetailsPage({
9289
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
9390
<Card className="row-span-2">
9491
<CardHeader>
95-
<div className="flex justify-between items-center">
96-
<CardTitle>Subscription Details</CardTitle>
97-
<Badge
98-
variant={
99-
isSubscriptionActive(subsRes.data) ? 'default' : 'secondary'
100-
}
101-
className="capitalize"
102-
>
103-
{getSubscriptionStatus(subsRes.data)}
104-
</Badge>
105-
</div>
92+
<CardTitle>Subscription Details</CardTitle>
10693
</CardHeader>
10794
<CardContent className="grid gap-2 grid-cols-[max-content_1fr] items-center">
10895
<CalendarClock className="size-4" />
@@ -147,7 +134,7 @@ export default async function SubscriptionDetailsPage({
147134
</CardContent>
148135
</Card>
149136

150-
<Card>
137+
<Card className="order-first md:order-none">
151138
<CardHeader>
152139
<CardTitle>User Information</CardTitle>
153140
</CardHeader>
@@ -191,6 +178,49 @@ export default async function SubscriptionDetailsPage({
191178
</p>
192179
</CardContent>
193180
</Card>
181+
182+
<Card className="md:col-span-2">
183+
<CardHeader>
184+
<CardTitle>Usage</CardTitle>
185+
</CardHeader>
186+
<CardContent className="grid md:grid-cols-2 gap-4">
187+
{subsRes.data.active_loan_limit && (
188+
<div>
189+
<div className="flex justify-between">
190+
<span>Active Borrows</span>
191+
<span>
192+
{subsRes.data.active_loan_count ?? 0} /{' '}
193+
{subsRes.data.active_loan_limit}
194+
</span>
195+
</div>
196+
<Progress
197+
value={
198+
((subsRes.data.active_loan_count ?? 0) /
199+
subsRes.data.active_loan_limit) *
200+
100
201+
}
202+
/>
203+
</div>
204+
)}
205+
{subsRes.data.usage_limit && (
206+
<div>
207+
<div className="flex justify-between">
208+
<span>Borrowed Books</span>
209+
<span>
210+
{subsRes.data.usage_count ?? 0} / {subsRes.data.usage_limit}
211+
</span>
212+
</div>
213+
<Progress
214+
value={
215+
((subsRes.data.usage_count ?? 0) /
216+
subsRes.data.usage_limit) *
217+
100
218+
}
219+
/>
220+
</div>
221+
)}
222+
</CardContent>
223+
</Card>
194224
</div>
195225
</div>
196226
)

lib/types/subscription.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ export type Subscription = WithCommon<{
1616
}>
1717

1818
export type SubscriptionDetail = Omit<Subscription, 'user' | 'membership'> & {
19+
usage_count?: number
20+
active_loan_count?: number
1921
user: User
2022
membership: Membership
2123
}

0 commit comments

Comments
 (0)