Update App.tsx
This commit is contained in:
33
App.tsx
33
App.tsx
@@ -203,6 +203,22 @@ const App: React.FC = () => {
|
|||||||
showToast("Errore assegnazione agente", 'error');
|
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 ---
|
// --- KB Management ---
|
||||||
const addArticle = async (article: KBArticle) => {
|
const addArticle = async (article: KBArticle) => {
|
||||||
@@ -236,6 +252,19 @@ const App: React.FC = () => {
|
|||||||
showToast("Errore aggiornamento articolo", 'error');
|
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 ---
|
// --- Survey Management ---
|
||||||
const submitSurvey = async (surveyData: Omit<SurveyResult, 'id' | 'timestamp'>) => {
|
const submitSurvey = async (surveyData: Omit<SurveyResult, 'id' | 'timestamp'>) => {
|
||||||
@@ -377,9 +406,11 @@ const App: React.FC = () => {
|
|||||||
settings={state.settings}
|
settings={state.settings}
|
||||||
updateTicketStatus={updateTicketStatus}
|
updateTicketStatus={updateTicketStatus}
|
||||||
updateTicketAgent={updateTicketAgent}
|
updateTicketAgent={updateTicketAgent}
|
||||||
onReplyTicket={replyToTicket} // Added prop
|
onReplyTicket={replyToTicket}
|
||||||
addArticle={addArticle}
|
addArticle={addArticle}
|
||||||
updateArticle={updateArticle}
|
updateArticle={updateArticle}
|
||||||
|
deleteArticle={deleteArticle} // New Prop
|
||||||
|
markTicketsAsAnalyzed={markTicketsAsAnalyzed} // New Prop
|
||||||
addAgent={addAgent}
|
addAgent={addAgent}
|
||||||
updateAgent={updateAgent}
|
updateAgent={updateAgent}
|
||||||
removeAgent={removeAgent}
|
removeAgent={removeAgent}
|
||||||
|
|||||||
Reference in New Issue
Block a user