diff --git a/App.tsx b/App.tsx index a18c0c1..bd461ac 100644 --- a/App.tsx +++ b/App.tsx @@ -203,6 +203,22 @@ const App: React.FC = () => { showToast("Errore assegnazione agente", 'error'); } }; + + const markTicketsAsAnalyzed = async (ticketIds: string[]) => { + try { + await apiFetch('/tickets/mark-analyzed', { + method: 'POST', + body: JSON.stringify({ ticketIds }) + }); + // Optimistically update + setState(prev => ({ + ...prev, + tickets: prev.tickets.map(t => ticketIds.includes(t.id) ? { ...t, hasBeenAnalyzed: true } : t) + })); + } catch (e) { + console.error("Failed to mark tickets analyzed", e); + } + }; // --- KB Management --- const addArticle = async (article: KBArticle) => { @@ -236,6 +252,19 @@ const App: React.FC = () => { showToast("Errore aggiornamento articolo", 'error'); } }; + + const deleteArticle = async (id: string) => { + try { + await apiFetch(`/articles/${id}`, { method: 'DELETE' }); + setState(prev => ({ + ...prev, + articles: prev.articles.filter(a => a.id !== id) + })); + showToast("Articolo eliminato", 'info'); + } catch(e) { + showToast("Errore eliminazione articolo", 'error'); + } + }; // --- Survey Management --- const submitSurvey = async (surveyData: Omit) => { @@ -377,9 +406,11 @@ const App: React.FC = () => { settings={state.settings} updateTicketStatus={updateTicketStatus} updateTicketAgent={updateTicketAgent} - onReplyTicket={replyToTicket} // Added prop + onReplyTicket={replyToTicket} addArticle={addArticle} updateArticle={updateArticle} + deleteArticle={deleteArticle} // New Prop + markTicketsAsAnalyzed={markTicketsAsAnalyzed} // New Prop addAgent={addAgent} updateAgent={updateAgent} removeAgent={removeAgent}