import { For, Show, createMemo } from "solid-js"; import { ScanData, ScanResult } from "."; import { FilledButton } from "../components/FilledButton"; import { FilledCard } from "../components/FilledCard"; import { LoadingIcon } from "../icons/LoadingIcon"; import { PDFIcon } from "../icons/PDFIcon"; import { LoadingStatus, useLoading } from "../utils/functions"; import { QuestionIcon } from "../icons/QuestionIcon"; export function ScansList(props: {scanData: ScanData | null}) { const {status, setStatus, error, setError} = useLoading(); const loading = createMemo(() => status() === LoadingStatus.Loading); const empty = createMemo(() => props.scanData?.Ok.length === 0); const entriesCount = createMemo(() => { if (props.scanData === null) return [0, 0]; let fullCount = 0; let partialCount = 0; let invalidCount = 0; for (const [, result] of props.scanData.Ok) { if ("Full" in result) { fullCount += 1; } else if ("Partial" in result) { partialCount += 1; } else { invalidCount += 1; } } return [fullCount, partialCount, invalidCount]; }); const convertScans = () => { setStatus(LoadingStatus.Loading); if (props.scanData === null) { setError("No se detectaron escaneos"); setStatus(LoadingStatus.Error); return; } fetch( `${import.meta.env.VITE_BACKEND_URL}/api/scans/convert`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(props.scanData), }, ) .then((res) => res.json()) .then((res) => { setStatus(LoadingStatus.Ok); console.log(res); }) .catch((err) => { setStatus(LoadingStatus.Error); console.error(err); }); }; return ( <>

Escaneos detectados

No se encontraron archivos que cumplan con los parámetros.

Se detectaron:

- {entriesCount()[0]} archivos con QR (nombres y curso)

- {entriesCount()[1]} archivos con QR (solo nombres)

- {entriesCount()[2]} archivos sin QR

El sig. botón:
- Convierte los escaneos con QR por completo (1), (2), (3) y (4).
- Convierte los escaneos sin QR solo en (1), (2) y (3). Se debe realizar (4) manualmente.

Convertir escaneos
); } function dataFromScanResult(result: ScanResult) { if ("Full" in result) { return `DNI: ${result.Full[0]}, iid: ${result.Full[1]}`; } else if ("Partial" in result) { return `DNI: ${result.Partial[0]}`; } else if ("Error" in result) { return `Error: ${result.Error}`; } }