import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:equatable/equatable.dart'; import '../../../data/repositories/etiqueta_repository.dart'; import '../../../domain/entities/pack.dart'; class PacksState extends Equatable { final List packs; final bool isLoading; const PacksState({this.packs = const [], this.isLoading = false}); PacksState copyWith({List? packs, bool? isLoading}) => PacksState( packs: packs ?? this.packs, isLoading: isLoading ?? this.isLoading, ); @override List get props => [packs, isLoading]; } class PacksCubit extends Cubit { final EtiquetaRepository _repo = EtiquetaRepository(); PacksCubit() : super(const PacksState()); Future load() async { emit(state.copyWith(isLoading: true)); final packs = await _repo.getPacks(); emit(state.copyWith(packs: packs, isLoading: false)); } Future addPack(String nombre, List tags) async { final pack = Pack(nombre: nombre, tags: tags); await _repo.insertPack(pack); await load(); } Future deletePack(int id) async { await _repo.deletePack(id); await load(); } }