import 'dart:collection'; import 'package:appflowy/plugins/database_view/grid/presentation/widgets/sort/sort_info.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/database_entities.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart'; import 'package:dartz/dartz.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import '../grid/presentation/widgets/filter/filter_info.dart'; import 'field/field_info.dart'; import 'row/row_cache.dart'; import 'row/row_service.dart'; part 'defines.freezed.dart'; typedef OnFieldsChanged = void Function(UnmodifiableListView); typedef OnFiltersChanged = void Function(List); typedef OnSortsChanged = void Function(List); typedef OnDatabaseChanged = void Function(DatabasePB); typedef OnRowsCreated = void Function(List ids); typedef OnRowsUpdated = void Function( List ids, ChangedReason reason, ); typedef OnRowsDeleted = void Function(List ids); typedef OnNumOfRowsChanged = void Function( UnmodifiableListView rows, UnmodifiableMapView rowByRowId, ChangedReason reason, ); typedef OnError = void Function(FlowyError); @freezed class LoadingState with _$LoadingState { const factory LoadingState.loading() = _Loading; const factory LoadingState.finish( Either successOrFail, ) = _Finish; const LoadingState._(); bool isLoading() => this is _Loading; }