// src/ModelOverview.jsx import React, { useEffect, useState } from "react"; export default function ModelOverview({ onBackToChat }) { const [defaultModel, setDefaultModel] = useState(""); const [modelInfo, setModelInfo] = useState([]); const [searchTerm, setSearchTerm] = useState(""); const [loading, setLoading] = useState(false); const fetchModelData = async () => { setLoading(true); try { const [defaultRes, infoRes] = await Promise.all([ fetch("/v1/default-model"), fetch("/v1/models-info") ]); const defaultText = await defaultRes.text(); const infoJson = await infoRes.json(); setDefaultModel(defaultText); setModelInfo(Array.isArray(infoJson) ? infoJson : []); } catch (err) { console.error("Errore nel caricamento modelli", err); } finally { setLoading(false); } }; const updateModelData = async () => { setLoading(true); try { const res = await fetch("/v1/models-info/update", { method: "POST" }); if (res.ok) { const updated = await res.json(); setModelInfo(Array.isArray(updated) ? updated : []); } } catch (err) { console.error("Errore nell'aggiornamento modelli", err); } finally { setLoading(false); } }; useEffect(() => { fetchModelData(); }, []); const filteredModels = modelInfo.filter((model) => model.name.toLowerCase().includes(searchTerm.toLowerCase()) ); return (
{defaultModel || "Non disponibile"}
| Nome | Descrizione | {/*Anno | */}Caratteristiche |
|---|---|---|---|
| Caricamento… | |||
| Nessun modello trovato | |||
| {model.name} | {model.description || "—"} | {/*{model.year || "—"} | */}
|