This commit is contained in:
2025-12-26 18:26:09 -03:00
parent 3cdded360f
commit d0dcc0a953
11 changed files with 574 additions and 460 deletions

View File

@@ -41,6 +41,7 @@ import { UserPicker } from '../_.$orgid.enrollments.add/user-picker'
import { Summary } from './bulk'
import { currency } from './utils'
import { useWizard } from '@/components/wizard'
import type { Item } from './bulk'
const emptyRow = {
user: undefined,
@@ -48,11 +49,6 @@ const emptyRow = {
scheduled_for: undefined
}
type Item = {
course: Enrollment['course']
quantity: number
}
const formSchemaAssigned = formSchema.extend({
coupon: z
.object({
@@ -68,7 +64,7 @@ type Schema = z.infer<typeof formSchemaAssigned>
type AssignedProps = {
onSubmit: (value: any) => void | Promise<void>
courses: Promise<{ hits: Course[] }>
enrollments: object[]
enrollments: Enrollment[]
coupon?: object
}
@@ -84,10 +80,14 @@ export function Assigned({
resolver: zodResolver(formSchemaAssigned),
defaultValues: {
coupon: couponInit,
enrollments: enrollments?.map((e: any) => ({
...e,
scheduled_for: e.scheduled_for ? new Date(e.scheduled_for) : undefined
})) || [emptyRow]
enrollments: enrollments.length
? enrollments.map((e: any) => ({
...e,
scheduled_for: e.scheduled_for
? new Date(e.scheduled_for)
: undefined
}))
: [emptyRow]
}
})
@@ -113,7 +113,7 @@ export function Assigned({
return hits
}
const onSubmit_ = async ({ enrollments }: Schema) => {
const onSubmit_ = async ({ enrollments, coupon }: Schema) => {
const items = Object.values(
enrollments.reduce<Record<string, Item>>((acc, e) => {
const id = e.course.id
@@ -124,7 +124,7 @@ export function Assigned({
return acc
}, {})
)
await onSubmit({ enrollments, items })
await onSubmit({ enrollments, items, coupon })
wizard('payment')
}