fix: blockService exception

This commit is contained in:
appflowy 2022-04-08 15:13:53 +08:00
parent 814fdfe8e9
commit 1f657f3bf8
2 changed files with 9 additions and 12 deletions

View File

@ -16,12 +16,12 @@ part 'grid_bloc.freezed.dart';
class GridBloc extends Bloc<GridEvent, GridState> {
final View view;
final GridService service;
late GridFieldsListener _fieldListener;
late GridBlockService _blockService;
GridBloc({required this.view, required this.service}) : super(GridState.initial()) {
_fieldListener = GridFieldsListener(gridId: view.id);
final GridFieldsListener _fieldListener;
GridBlockService? _blockService;
GridBloc({required this.view, required this.service})
: _fieldListener = GridFieldsListener(gridId: view.id),
super(GridState.initial()) {
on<GridEvent>(
(event, emit) async {
await event.map(
@ -48,7 +48,7 @@ class GridBloc extends Bloc<GridEvent, GridState> {
@override
Future<void> close() async {
await _fieldListener.stop();
await _blockService.stop();
await _blockService?.stop();
return super.close();
}
@ -70,7 +70,7 @@ class GridBloc extends Bloc<GridEvent, GridState> {
blockOrders: grid.blockOrders,
);
_blockService.blocksUpdateNotifier?.addPublishListener((result) {
_blockService?.blocksUpdateNotifier?.addPublishListener((result) {
result.fold(
(blockMap) => add(GridEvent.didReceiveRowUpdate(_buildRows(blockMap))),
(err) => Log.error('$err'),

View File

@ -365,11 +365,8 @@ impl ClientGridEditor {
F: for<'a> FnOnce(&'a mut GridMetaPad) -> FlowyResult<Option<GridChangeset>>,
{
let mut write_guard = self.pad.write().await;
match f(&mut *write_guard)? {
None => {}
Some(change) => {
let _ = self.apply_change(change).await?;
}
if let Some(changeset) = f(&mut *write_guard)? {
let _ = self.apply_change(changeset).await?;
}
Ok(())
}