import { useSignals } from "@preact/signals-react/runtime"; import { faClipboard, faClipboardList, faCircleCheck, faCircleExclamation, faLoader, faSpinner, faSquareXmark, } from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { deleteInferenceJob, inferenceJobs, } from "~/pages/PageEnigma/store/inferenceJobs"; import { InferenceJob } from "~/pages/PageEnigma/models"; import { ButtonDialogue } from "../ButtonDialogue"; import { ButtonIcon, H4, H6, P } from "~/components"; import { JobState } from "~/hooks/useInferenceJobManager/useInferenceJobManager"; const printJobType = (jobType: string) => { switch (jobType) { case "generic": return "Text to Speech"; default: return "Unknown"; } }; const printJobStatus = (jobStatus: string) => { switch (jobStatus) { case JobState.PENDING: return "Adding to the queue."; case JobState.STARTED: return "Processing, please wait..."; case JobState.COMPLETE_SUCCESS: return "Completed! See Audio Panel for the result. file."; default: return "Unknown Status"; } }; const JobStatusIcon = ({ jobStatus }: { jobStatus: string }) => { switch (jobStatus) { case JobState.PENDING: { return ( ); } case JobState.STARTED: { return ( ); } case JobState.COMPLETE_SUCCESS: { return ( ); } default: { return ( ); } } }; const InferenceItem = ({ job }: { job: InferenceJob }) => { return (
  • {printJobType(job.job_type)}

    {printJobStatus(job.job_status)}
    {job.job_status === JobState.COMPLETE_SUCCESS && (
    { deleteInferenceJob(job); }} />
    )}
  • ); }; export const DialogueInference = () => { useSignals(); const buttonIcon = inferenceJobs.value.length > 0 ? faClipboardList : faClipboard; return ( {inferenceJobs.value.length > 0 && (
      {inferenceJobs.value.map((job) => ( ))}
    )} {inferenceJobs.value.length === 0 && (

    You currently have no running proccesses.

    )}
    ); };