This commit is contained in:
2025-12-19 20:02:11 -03:00
parent c3a5ef44c7
commit 24cd2cf10e

View File

@@ -81,6 +81,11 @@ export function meta({}: Route.MetaArgs) {
return [{ title: 'Adicionar matrícula' }] return [{ title: 'Adicionar matrícula' }]
} }
type Enrolled = {
status: 'fail' | 'success'
input_record: { user: any; course: any }
}
export async function loader({ params, context, request }: Route.LoaderArgs) { export async function loader({ params, context, request }: Route.LoaderArgs) {
const url = new URL(request.url) const url = new URL(request.url)
const submissionId = url.searchParams.get('submission') const submissionId = url.searchParams.get('submission')
@@ -93,7 +98,7 @@ export async function loader({ params, context, request }: Route.LoaderArgs) {
env: cloudflare.env env: cloudflare.env
}) })
const submission = submissionId const submission: Promise<{ enrolled: Enrolled[] }> = submissionId
? req({ ? req({
url: `/orgs/${params.orgid}/enrollments/${submissionId}/submitted`, url: `/orgs/${params.orgid}/enrollments/${submissionId}/submitted`,
context, context,
@@ -136,7 +141,7 @@ export default function Route({
resolver: zodResolver(formSchema), resolver: zodResolver(formSchema),
defaultValues: { enrollments: [emptyRow] } defaultValues: { enrollments: [emptyRow] }
}) })
const { formState, control, handleSubmit, getValues, reset } = form const { formState, control, handleSubmit, getValues, setValue } = form
const { fields, insert, remove, append } = useFieldArray({ const { fields, insert, remove, append } = useFieldArray({
control, control,
name: 'enrollments' name: 'enrollments'
@@ -173,12 +178,13 @@ export default function Route({
return return
} }
reset({ setValue(
enrollments: enrolled 'enrollments',
enrolled
.filter(({ status }) => status === 'fail') .filter(({ status }) => status === 'fail')
.map(({ input_record }) => pick(['course', 'user'], input_record)) .map(({ input_record }) => pick(['course', 'user'], input_record))
}) )
}, [enrolled, reset]) }, [enrolled, setValue])
return ( return (
<div className="space-y-2.5"> <div className="space-y-2.5">