ticket refinements
This commit is contained in:
@@ -367,4 +367,22 @@ class TicketFormCubit extends Cubit<TicketFormState> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> deleteTicket() async {
|
||||
final currentTicket = state.ticket;
|
||||
|
||||
if (currentTicket.id == null || currentTicket.id!.isEmpty) return;
|
||||
|
||||
try {
|
||||
await _repository.deleteTicket(currentTicket.id!);
|
||||
emit(state.copyWith(status: TicketFormStatus.deleted));
|
||||
} catch (e) {
|
||||
emit(
|
||||
state.copyWith(
|
||||
status: TicketFormStatus.failure,
|
||||
errorMessage: 'Errore durante l\'eliminazione: $e',
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,16 @@ import 'package:equatable/equatable.dart';
|
||||
import 'package:flux/features/tickets/models/ticket_model.dart';
|
||||
// Adatta gli import al tuo progetto!
|
||||
|
||||
enum TicketFormStatus { initial, ready, loading, saving, success, pop, failure }
|
||||
enum TicketFormStatus {
|
||||
initial,
|
||||
ready,
|
||||
loading,
|
||||
saving,
|
||||
success,
|
||||
pop,
|
||||
failure,
|
||||
deleted,
|
||||
}
|
||||
|
||||
class TicketFormState extends Equatable {
|
||||
final TicketModel ticket;
|
||||
|
||||
@@ -158,4 +158,19 @@ class TicketListCubit extends Cubit<TicketListState> {
|
||||
// Opzionale: Se vuoi comunque riallinearti al server in modo silenzioso dopo l'animazione
|
||||
// loadTickets(refresh: true);
|
||||
}
|
||||
|
||||
Future<void> deleteTickets(List<TicketModel> tickets) async {
|
||||
try {
|
||||
for (final ticket in tickets) {
|
||||
await _repository.deleteTicket(ticket.id!);
|
||||
}
|
||||
// Rimuoviamo i ticket localmente senza ricaricare tutto
|
||||
final remainingTickets = state.tickets
|
||||
.where((t) => !tickets.any((toDelete) => toDelete.id == t.id))
|
||||
.toList();
|
||||
emit(state.copyWith(tickets: remainingTickets, selectedTickets: {}));
|
||||
} catch (e) {
|
||||
emit(state.copyWith(errorMessage: e.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user