From 1cc97576c89765933270026938c616509a558819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Tue, 27 Jan 2026 11:08:12 -0300 Subject: [PATCH] add quantity to combobox --- .../course-picker.tsx | 11 ++++++--- .../_.$orgid.enrollments.seats/route.tsx | 24 ++++++++++++------- .../_.$orgid.payments.$id/enrollments.tsx | 2 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/course-picker.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/course-picker.tsx index ab9b2e6..7157132 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/course-picker.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.add/course-picker.tsx @@ -36,6 +36,8 @@ import { } from '@repo/ui/components/ui/popover' import { cn } from '@repo/ui/lib/utils' +import { Abbr } from '@repo/ui/components/abbr' +import { Kbd } from '@repo/ui/components/ui/kbd' import { type Course } from './data' interface CoursePickerProps extends Omit< @@ -146,7 +148,8 @@ export const CoursePicker = forwardRef( id, name, access_period, - metadata__unit_price: unit_price + metadata__unit_price: unit_price, + quantity = null }) => { return ( ( set(false) }} > - {name} + {name} + {quantity && ( + {quantity}x + )} ) } diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx index 5a2fa7d..ebe635e 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx @@ -90,15 +90,23 @@ export default function Route({ loaderData: { seats } }: Route.ComponentProps) { () => Promise.resolve({ hits: Array.from( - new Map( - seats.map(({ course }) => [ - course.id, - { - ...course, - metadata__unit_price: 1 + seats + .reduce((map, { course }) => { + const existing = map.get(course.id) + + if (existing) { + existing.quantity += 1 + } else { + map.set(course.id, { + ...course, + metadata__unit_price: 1, + quantity: 1 + }) } - ]) ?? [] - ).values() + + return map + }, new Map()) + .values() ) }), [seats] diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id/enrollments.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id/enrollments.tsx index eacca46..ac62303 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id/enrollments.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id/enrollments.tsx @@ -262,7 +262,7 @@ function SeatsMenu({ seats: seats_ }: { seats: Seat[] }) { {course.name}
- {quantity}x + {quantity}x
)