import { Cubit } from "../../../src/lib"; import BlocBase from "../../../src/lib/BlocBase"; class BlocState { blocs: BlocBase[]; updated?: BlocBase; constructor(blocs: BlocBase[], updated?: BlocBase) { this.blocs = blocs; this.updated = updated; } } export default class BlocsCubit extends Cubit { constructor() { super(new BlocState([])); } add = (bloc: BlocBase) => { this.emit(new BlocState([...this.state.blocs, bloc])); }; remove = (bloc: BlocBase) => { this.emit(new BlocState(this.state.blocs.filter(b => b.id !== bloc.id))); }; update = (bloc: BlocBase) => { this.emit(new BlocState(this.state.blocs.map(b => b.id === bloc.id ? bloc : b), bloc)); }; }