import { Checkbox, Segmented, Select, Upload } from "antd"; import type { UploadFile } from "antd"; import { useState } from "react"; import { getDemoText } from "@/api/endpoints"; import { useDemoListQuery } from "@/api/queries"; import { useUiStore, type SourceKind } from "@/store/uiStore"; import { useSessionStore } from "@/store/sessionStore"; export function SourceSection() { const source = useUiStore((s) => s.source); const docText = useUiStore((s) => s.docText); const pdfFast = useUiStore((s) => s.pdfFast); const setSource = useUiStore((s) => s.setSource); const setDocText = useUiStore((s) => s.setDocText); const setPdfFile = useUiStore((s) => s.setPdfFile); const setPdfFast = useUiStore((s) => s.setPdfFast); const setSettingsCollapsed = useUiStore((s) => s.setSettingsCollapsed); const markChoiceTouched = useUiStore((s) => s.markChoiceTouched); const resetSession = useSessionStore((s) => s.resetSession); const demoQ = useDemoListQuery(); const [demoValue, setDemoValue] = useState(undefined); const [fileList, setFileList] = useState([]); function onSourceChange(next: SourceKind) { if (next === source) return; setSource(next); resetSession(); setDocText(""); setPdfFile(null); setFileList([]); setDemoValue(undefined); setSettingsCollapsed(false); markChoiceTouched(); } async function onDemoSelect(key: string) { setDemoValue(key); try { const data = await getDemoText(key); setDocText(data.text); if (source !== "text") setSource("text"); markChoiceTouched(); } catch { /* fallback silenzioso */ } setDemoValue(undefined); // permette di ricaricare lo stesso demo } return ( <>
block value={source} onChange={onSourceChange} options={[ { label: "Testo", value: "text" }, { label: "PDF", value: "pdf" }, ]} />
{source === "text" && (