import { FilledCard } from "../../components/FilledCard"; import { For, createSignal } from "solid-js"; import { XIcon } from "../../icons/XIcon"; import { allCourses } from "../../utils/allCourses"; import { RegisterBatchCreate } from "../../types/Register"; import { RegistrationPreview } from "."; import { loadCustomLabels } from "../../utils/allCustomLabels"; function isoDateToLocalDate(date: string): string { const [,month, day] = /\d{4}-(\d{2})-(\d{2})/.exec(date) ?? ""; return `${day}/${month}`; } function wait(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); } export function RegisterPreview(props: {selections: Array, personId: number | null, onDelete: (v: number) => void, onRegister: () => void}) { const [loading, setLoading] = createSignal(false); const submit = async() => { setLoading(true); await wait(2000); const registers: RegisterBatchCreate = props.selections.map(({courseId, date, customLabel}) => ({ person_id: props.personId!, course_id: courseId, date, custom_label: customLabel, })); const result = await createRegisters(registers); if (result === null) { console.log("Create register: success"); // Custom labels may have changed, reload them loadCustomLabels(); } else { console.log(`error. ${result}`); } props.onRegister(); setLoading(false); }; return (

Confirmar registro

{({courseId, date, customLabel}) => ( )}
); } function Register(props: {courseId: number, date: string, customLabel: string, onDelete: (v: number) => void}) { const courseName = () => { const courses = allCourses(); return courses.find((course) => course.course_id === props.courseId)?.course_name ?? `Curso invalido! (${props.courseId})`; }; return (
{courseName()} {isoDateToLocalDate(props.date)} {props.customLabel}
); } async function createRegisters(data: RegisterBatchCreate): Promise { const response = await fetch(`${import.meta.env.VITE_BACKEND_URL}/api/register/batch`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(data), }); if (response.ok) { return null; } else { const data = await response.json(); return JSON.stringify(data); } }