From 58c7d069f9095a892f0de0a6094209e5e271487a Mon Sep 17 00:00:00 2001 From: Araozu Date: Tue, 29 Aug 2023 10:18:23 -0500 Subject: [PATCH] [FE][Certs] Get registers from BE --- frontend/src/certs/Registers/index.tsx | 47 ++++++++++++++++++++++---- frontend/src/certs/Search.tsx | 1 + frontend/src/certs/index.tsx | 8 +++-- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/frontend/src/certs/Registers/index.tsx b/frontend/src/certs/Registers/index.tsx index d0c292d..3154d1b 100644 --- a/frontend/src/certs/Registers/index.tsx +++ b/frontend/src/certs/Registers/index.tsx @@ -1,30 +1,63 @@ +import { For, createEffect, createSignal } from "solid-js"; import { DownloadIcon } from "../../icons/DownloadIcon"; +import { Person } from "../../types/Person"; import { Register } from "../../types/Register"; -export function Registers() { +export function Registers(props: {person: Person | null}) { + const [registers, setRegisters] = createSignal>([]); + + createEffect(async() => { + if (props.person === null) { + setRegisters([]); + return; + } + + const person = props.person; + + const res = await fetch(`${import.meta.env.VITE_BACKEND_URL}/api/register/${person.person_dni}`); + if (res.ok) { + const data = await res.json(); + setRegisters(data); + } + }); + return (

- SUMA BERNAL, MAIKOL + {props.person?.person_names}  + {props.person?.person_paternal_surname}  + {props.person?.person_maternal_surname}

- - - + + {(register) => } +
); } function RegisterEl(props: {register: Register}) { + + const displayDate = () => { + const [, year, month, day] = /(\d{4})-(\d{2})-(\d{2})/.exec(props.register.register_display_date) ?? []; + return `${day}/${month}/${year}`; + }; + return (
-

Matpel 2

-

12/08/2023 - 6486

+

+ course_id: {props.register.register_course_id} +

+

+ {displayDate()} +  -  + {props.register.register_code} +

); diff --git a/frontend/src/certs/Search.tsx b/frontend/src/certs/Search.tsx index be41c24..c649778 100644 --- a/frontend/src/certs/Search.tsx +++ b/frontend/src/certs/Search.tsx @@ -34,6 +34,7 @@ export function Search(props: {setPerson: (p: Person | null) => void}) { } else { setQrBase64(null); setPerson(null); + props.setPerson(null); } }); diff --git a/frontend/src/certs/index.tsx b/frontend/src/certs/index.tsx index e695155..b9410fe 100644 --- a/frontend/src/certs/index.tsx +++ b/frontend/src/certs/index.tsx @@ -1,13 +1,17 @@ +import { createSignal } from "solid-js"; import { NewRegister } from "./NewRegister"; import { Registers } from "./Registers"; import { Search } from "./Search"; +import { Person } from "../types/Person"; export function Certs() { + const [person, setPerson] = createSignal(null); + return (
- {}} /> + {}} /> - +
); }