import { For, Show, createSignal, onMount } from "solid-js"; import { Search } from "../certs/Search"; import { Person } from "../types/Person"; import { FilledCard } from "../components/FilledCard"; import { LinkIcon } from "../icons/LinkIcon"; import { ClassroomUserCreation } from "./ClassroomUserCreation"; import { ClassroomRegistrationUser } from "../types/ClassroomRegistrationUser"; import { SpinnerGapIcon } from "../icons/SpinnerGapIcon"; import { QuestionIcon } from "../icons/QuestionIcon"; import { JsonResult } from "../types/JsonResult"; import { XcircleIcon } from "../icons/XCircleIcon"; type TabType = "Vinculate" | "Create"; export function OnlineClassroom() { const [person, setPerson] = createSignal(null); return (
); } function ClassroomUser(props: {person: Person}) { const [active, setActive] = createSignal("Vinculate"); return (

Persona no vinculada:

); } type Status = "Init" | "Ok" | "Loading" | "Error"; function ClassroomVinculation(props: {person_surname: string}) { const [classroomUsers, setClassroomUsers] = createSignal([]); const [error, setError] = createSignal(""); const [status, setStatus] = createSignal("Init"); const loadUsers = async() => { setStatus("Loading"); const response = await fetch(`${import.meta.env.VITE_BACKEND_URL}/api/classroom/users/${encodeURIComponent(props.person_surname)}`); const json: JsonResult> = await response.json(); if (response.ok) { setClassroomUsers(json.Ok); setStatus("Ok"); } else { console.error("Error loading users", json); setError(json.Err.reason); setStatus("Error"); } }; onMount(loadUsers); return (

Vincule un usuario existente:

No se encontraron usuarios en el aula virtual.

{(u) => }

Error buscando usuarios: {error()}.

); } function ClassroomSingleUser(props: {user: ClassroomRegistrationUser}) { return (
{props.user.name} {props.user.surname}
{props.user.username}
registrado:  ??/??/????
); } function ClassroomTabs(props: {active: TabType, setActive: (v: TabType) => void}) { const presetsClasses = () => ((props.active === "Vinculate") ? "font-bold border-c-primary" : "border-c-transparent"); const manualClasses = () => ((props.active === "Create") ? "font-bold border-c-primary" : "border-c-transparent"); return (
); }