@@ -139,45 +139,69 @@ const BotChat: React.FC = () => {
139139
140140 // Handler per creare una nuova chat
141141 const handleNewChat = ( ) => {
142- Alert . alert (
143- "Nuova Chat" ,
144- "Vuoi creare una nuova chat? Tutti i messaggi attuali verranno eliminati sia localmente che dal server." ,
145- [
146- {
147- text : "Annulla" ,
148- style : "cancel"
149- } ,
150- {
151- text : "Conferma" ,
152- onPress : async ( ) => {
153- try {
154- // Elimina la cronologia dal server
155- const serverCleared = await clearChatHistory ( ) ;
156-
157- if ( ! serverCleared ) {
158- // Mostra un avviso ma procedi comunque con la pulizia locale
142+ // Se c'è una chat aperta, semplicemente pulisci e esci dalla sessione
143+ if ( currentChatId ) {
144+ Alert . alert (
145+ "Pulisci Chat" ,
146+ "Vuoi pulire la chat corrente? I messaggi verranno rimossi localmente ma la cronologia sul server rimarrà intatta." ,
147+ [
148+ {
149+ text : "Annulla" ,
150+ style : "cancel"
151+ } ,
152+ {
153+ text : "Conferma" ,
154+ onPress : ( ) => {
155+ // Pulisci solo localmente senza creare una nuova sessione
156+ setMessages ( [ ] ) ;
157+ setCurrentChatId ( null ) ;
158+ console . log ( '✅ Chat pulita e uscito dalla sessione' ) ;
159+ }
160+ }
161+ ]
162+ ) ;
163+ } else {
164+ // Se non c'è una chat aperta, crea una nuova sessione
165+ Alert . alert (
166+ "Nuova Chat" ,
167+ "Vuoi creare una nuova chat? Tutti i messaggi attuali verranno eliminati sia localmente che dal server." ,
168+ [
169+ {
170+ text : "Annulla" ,
171+ style : "cancel"
172+ } ,
173+ {
174+ text : "Conferma" ,
175+ onPress : async ( ) => {
176+ try {
177+ // Elimina la cronologia dal server
178+ const serverCleared = await clearChatHistory ( ) ;
179+
180+ if ( ! serverCleared ) {
181+ // Mostra un avviso ma procedi comunque con la pulizia locale
182+ Alert . alert (
183+ "Avviso" ,
184+ "Non è stato possibile eliminare la cronologia dal server, ma la chat locale verrà comunque resettata." ,
185+ [ { text : "OK" , onPress : ( ) => initializeChat ( ) } ]
186+ ) ;
187+ } else {
188+ // Tutto ok, procedi con la pulizia locale
189+ await initializeChat ( ) ;
190+ }
191+ } catch ( error ) {
192+ console . error ( "Errore durante il reset della chat:" , error ) ;
193+ // In caso di errore, procedi comunque con la pulizia locale
159194 Alert . alert (
160- "Avviso " ,
161- "Non è stato possibile eliminare la cronologia dal server, ma la chat locale verrà comunque resettata." ,
195+ "Errore " ,
196+ "Si è verificato un errore durante l'eliminazione della cronologia dal server, ma la chat locale verrà resettata." ,
162197 [ { text : "OK" , onPress : ( ) => initializeChat ( ) } ]
163198 ) ;
164- } else {
165- // Tutto ok, procedi con la pulizia locale
166- await initializeChat ( ) ;
167199 }
168- } catch ( error ) {
169- console . error ( "Errore durante il reset della chat:" , error ) ;
170- // In caso di errore, procedi comunque con la pulizia locale
171- Alert . alert (
172- "Errore" ,
173- "Si è verificato un errore durante l'eliminazione della cronologia dal server, ma la chat locale verrà resettata." ,
174- [ { text : "OK" , onPress : ( ) => initializeChat ( ) } ]
175- ) ;
176200 }
177201 }
178- }
179- ]
180- ) ;
202+ ]
203+ ) ;
204+ }
181205 } ;
182206
183207 // Handler per cambiare il tipo di modello
0 commit comments