Update App.tsx
This commit is contained in:
33
App.tsx
33
App.tsx
@@ -204,6 +204,22 @@ const App: React.FC = () => {
|
||||
}
|
||||
};
|
||||
|
||||
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) => {
|
||||
try {
|
||||
@@ -237,6 +253,19 @@ const App: React.FC = () => {
|
||||
}
|
||||
};
|
||||
|
||||
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<SurveyResult, 'id' | 'timestamp'>) => {
|
||||
try {
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user