Переглянути джерело

refactor: refactor multi-select typeOption

appflowy 2 роки тому
батько
коміт
1bdd863b75
22 змінених файлів з 58 додано та 206 видалено
  1. 8 0
      frontend/app_flowy/lib/plugins/board/application/board_bloc.dart
  2. 1 1
      frontend/app_flowy/lib/plugins/grid/application/cell/cell_service/cell_service.dart
  3. 3 1
      frontend/app_flowy/lib/plugins/grid/application/field/field_editor_bloc.dart
  4. 1 0
      frontend/app_flowy/lib/plugins/grid/application/field/field_type_option_edit_bloc.dart
  5. 1 8
      frontend/app_flowy/lib/plugins/grid/application/field/type_option/date_bloc.dart
  6. 1 8
      frontend/app_flowy/lib/plugins/grid/application/field/type_option/multi_select_type_option.dart
  7. 1 9
      frontend/app_flowy/lib/plugins/grid/application/field/type_option/number_bloc.dart
  8. 16 18
      frontend/app_flowy/lib/plugins/grid/application/field/type_option/single_select_type_option.dart
  9. 1 116
      frontend/app_flowy/lib/plugins/grid/application/field/type_option/type_option_data_controller.dart
  10. 1 0
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/cell/date_cell/date_editor.dart
  11. 1 1
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/field_cell.dart
  12. 1 1
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/field_editor.dart
  13. 1 1
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/grid_header.dart
  14. 3 2
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/builder.dart
  15. 1 12
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/checkbox.dart
  16. 1 0
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/date.dart
  17. 1 0
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/number.dart
  18. 1 10
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/rich_text.dart
  19. 11 6
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/single_select.dart
  20. 1 10
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/url.dart
  21. 1 1
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/row/row_detail.dart
  22. 1 1
      frontend/app_flowy/lib/plugins/grid/presentation/widgets/toolbar/grid_property.dart

+ 8 - 0
frontend/app_flowy/lib/plugins/board/application/board_bloc.dart

@@ -56,6 +56,9 @@ class BoardBloc extends Bloc<BoardEvent, BoardState> {
           didReceiveGridUpdate: (GridPB grid) {
             emit(state.copyWith(grid: Some(grid)));
           },
+          groupByField: (GridFieldPB field) {
+            emit(state.copyWith(groupField: Some(field)));
+          },
         );
       },
     );
@@ -97,11 +100,16 @@ class BoardBloc extends Bloc<BoardEvent, BoardState> {
   }
 
   void _buildColumns(UnmodifiableListView<GridFieldPB> fields) {
+    GridFieldPB? groupField;
     for (final field in fields) {
       if (field.fieldType == FieldType.SingleSelect) {
+        groupField = field;
         _buildColumnsFromSingleSelect(field);
       }
     }
+
+    assert(groupField != null);
+    add(BoardEvent.groupByField(groupField!));
   }
 
   void _buildColumnsFromSingleSelect(GridFieldPB field) {

+ 1 - 1
frontend/app_flowy/lib/plugins/grid/application/cell/cell_service/cell_service.dart

@@ -17,7 +17,7 @@ import 'package:app_flowy/plugins/grid/application/field/field_service.dart';
 import 'dart:convert' show utf8;
 
 import '../../field/field_cache.dart';
-import '../../field/type_option/type_option_data_controller.dart';
+import '../../field/type_option/type_option_context.dart';
 import 'cell_field_notifier.dart';
 part 'cell_service.freezed.dart';
 part 'cell_data_loader.dart';

+ 3 - 1
frontend/app_flowy/lib/plugins/grid/application/field/field_editor_bloc.dart

@@ -2,9 +2,11 @@ import 'package:flowy_sdk/protobuf/flowy-grid/field_entities.pb.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 import 'dart:async';
 import 'package:dartz/dartz.dart';
-import 'type_option/type_option_data_controller.dart';
+import 'type_option/type_option_context.dart';
 import 'package:freezed_annotation/freezed_annotation.dart';
 
+import 'type_option/type_option_data_controller.dart';
+
 part 'field_editor_bloc.freezed.dart';
 
 class FieldEditorBloc extends Bloc<FieldEditorEvent, FieldEditorState> {

+ 1 - 0
frontend/app_flowy/lib/plugins/grid/application/field/field_type_option_edit_bloc.dart

@@ -2,6 +2,7 @@ import 'package:flowy_sdk/protobuf/flowy-grid/field_entities.pb.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 import 'package:freezed_annotation/freezed_annotation.dart';
 import 'dart:async';
+
 import 'type_option/type_option_data_controller.dart';
 part 'field_type_option_edit_bloc.freezed.dart';
 

+ 1 - 8
frontend/app_flowy/lib/plugins/grid/application/field/type_option/date_bloc.dart

@@ -5,16 +5,9 @@ import 'package:freezed_annotation/freezed_annotation.dart';
 import 'dart:async';
 import 'package:protobuf/protobuf.dart';
 
-import 'type_option_data_controller.dart';
+import 'type_option_context.dart';
 part 'date_bloc.freezed.dart';
 
-class DateTypeOptionDataParser extends TypeOptionDataParser<DateTypeOption> {
-  @override
-  DateTypeOption fromBuffer(List<int> buffer) {
-    return DateTypeOption.fromBuffer(buffer);
-  }
-}
-
 class DateTypeOptionBloc
     extends Bloc<DateTypeOptionEvent, DateTypeOptionState> {
   DateTypeOptionBloc({required DateTypeOptionContext typeOptionContext})

+ 1 - 8
frontend/app_flowy/lib/plugins/grid/application/field/type_option/multi_select_type_option.dart

@@ -3,6 +3,7 @@ import 'package:flowy_sdk/protobuf/flowy-grid/multi_select_type_option.pb.dart';
 import 'package:flowy_sdk/protobuf/flowy-grid/select_option.pb.dart';
 import 'dart:async';
 import 'select_option_type_option_bloc.dart';
+import 'type_option_context.dart';
 import 'type_option_data_controller.dart';
 import 'type_option_service.dart';
 import 'package:protobuf/protobuf.dart';
@@ -72,11 +73,3 @@ class MultiSelectTypeOptionContext
     };
   }
 }
-
-class MultiSelectTypeOptionWidgetDataParser
-    extends TypeOptionDataParser<MultiSelectTypeOption> {
-  @override
-  MultiSelectTypeOption fromBuffer(List<int> buffer) {
-    return MultiSelectTypeOption.fromBuffer(buffer);
-  }
-}

+ 1 - 9
frontend/app_flowy/lib/plugins/grid/application/field/type_option/number_bloc.dart

@@ -4,18 +4,10 @@ import 'package:flutter_bloc/flutter_bloc.dart';
 import 'package:freezed_annotation/freezed_annotation.dart';
 import 'dart:async';
 import 'package:protobuf/protobuf.dart';
-import 'type_option_data_controller.dart';
+import 'type_option_context.dart';
 
 part 'number_bloc.freezed.dart';
 
-class NumberTypeOptionWidgetDataParser
-    extends TypeOptionDataParser<NumberTypeOption> {
-  @override
-  NumberTypeOption fromBuffer(List<int> buffer) {
-    return NumberTypeOption.fromBuffer(buffer);
-  }
-}
-
 class NumberTypeOptionBloc
     extends Bloc<NumberTypeOptionEvent, NumberTypeOptionState> {
   NumberTypeOptionBloc({required NumberTypeOptionContext typeOptionContext})

+ 16 - 18
frontend/app_flowy/lib/plugins/grid/application/field/type_option/single_select_type_option.dart

@@ -4,20 +4,26 @@ import 'package:flowy_sdk/protobuf/flowy-grid/single_select_type_option.pb.dart'
 import 'dart:async';
 import 'package:protobuf/protobuf.dart';
 import 'select_option_type_option_bloc.dart';
-import 'type_option_data_controller.dart';
+import 'type_option_context.dart';
 import 'type_option_service.dart';
 
-class SingleSelectTypeOptionContext with ISelectOptionAction {
+class SingleSelectAction with ISelectOptionAction {
+  final String gridId;
+  final String fieldId;
+  final SingleSelectTypeOptionContext typeOptionContext;
   final TypeOptionFFIService service;
 
-  SingleSelectTypeOptionContext({
-    required SingleSelectTypeOptionWidgetDataParser dataBuilder,
-    required TypeOptionDataController dataController,
-  })  : service = TypeOptionFFIService(
-          gridId: dataController.gridId,
-          fieldId: dataController.field.id,
-        ),
-        super(dataParser: dataBuilder, dataController: dataController);
+  SingleSelectAction({
+    required this.gridId,
+    required this.fieldId,
+    required this.typeOptionContext,
+  }) : service = TypeOptionFFIService(gridId: gridId, fieldId: fieldId);
+
+  SingleSelectTypeOptionPB get typeOption => typeOptionContext.typeOption;
+
+  set typeOption(SingleSelectTypeOptionPB newTypeOption) {
+    typeOptionContext.typeOption = newTypeOption;
+  }
 
   @override
   List<SelectOptionPB> Function(SelectOptionPB) get deleteOption {
@@ -71,11 +77,3 @@ class SingleSelectTypeOptionContext with ISelectOptionAction {
     };
   }
 }
-
-class SingleSelectTypeOptionWidgetDataParser
-    extends TypeOptionDataParser<SingleSelectTypeOptionPB> {
-  @override
-  SingleSelectTypeOptionPB fromBuffer(List<int> buffer) {
-    return SingleSelectTypeOptionPB.fromBuffer(buffer);
-  }
-}

+ 1 - 116
frontend/app_flowy/lib/plugins/grid/application/field/type_option/type_option_data_controller.dart

@@ -1,127 +1,12 @@
 import 'package:flowy_infra/notifier.dart';
-import 'package:flowy_sdk/dispatch/dispatch.dart';
 import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/checkbox_type_option.pb.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/date_type_option.pb.dart';
 import 'package:flowy_sdk/protobuf/flowy-grid/field_entities.pb.dart';
 import 'package:app_flowy/plugins/grid/application/field/field_service.dart';
 import 'package:dartz/dartz.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/number_type_option.pb.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/single_select_type_option.pb.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/text_type_option.pb.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/url_type_option.pb.dart';
 import 'package:protobuf/protobuf.dart';
 import 'package:flowy_sdk/log.dart';
 
-abstract class TypeOptionDataParser<T> {
-  T fromBuffer(List<int> buffer);
-}
-
-typedef NumberTypeOptionContext = TypeOptionContext<NumberTypeOption>;
-typedef RichTextTypeOptionContext = TypeOptionContext<RichTextTypeOption>;
-typedef CheckboxTypeOptionContext = TypeOptionContext<CheckboxTypeOption>;
-typedef URLTypeOptionContext = TypeOptionContext<URLTypeOption>;
-typedef DateTypeOptionContext = TypeOptionContext<DateTypeOption>;
-
-typedef SingleSelectTypeOptionContext
-    = TypeOptionContext<SingleSelectTypeOptionPB>;
-
-class TypeOptionContext<T extends GeneratedMessage> {
-  T? _typeOptionObject;
-  final TypeOptionDataParser<T> dataParser;
-  final TypeOptionDataController _dataController;
-
-  TypeOptionContext({
-    required this.dataParser,
-    required TypeOptionDataController dataController,
-  }) : _dataController = dataController;
-
-  String get gridId => _dataController.gridId;
-
-  Future<void> loadTypeOptionData({
-    required void Function(T) onCompleted,
-    required void Function(FlowyError) onError,
-  }) async {
-    await _dataController.loadTypeOptionData().then((result) {
-      result.fold((l) => null, (err) => onError(err));
-    });
-
-    onCompleted(typeOption);
-  }
-
-  T get typeOption {
-    if (_typeOptionObject != null) {
-      return _typeOptionObject!;
-    }
-
-    final T object = _dataController.getTypeOption(dataParser);
-    _typeOptionObject = object;
-    return object;
-  }
-
-  set typeOption(T typeOption) {
-    _dataController.typeOptionData = typeOption.writeToBuffer();
-    _typeOptionObject = typeOption;
-  }
-}
-
-abstract class TypeOptionFieldDelegate {
-  void onFieldChanged(void Function(String) callback);
-  void dispose();
-}
-
-abstract class IFieldTypeOptionLoader {
-  String get gridId;
-  Future<Either<FieldTypeOptionDataPB, FlowyError>> load();
-
-  Future<Either<FieldTypeOptionDataPB, FlowyError>> switchToField(
-      String fieldId, FieldType fieldType) {
-    final payload = EditFieldPayloadPB.create()
-      ..gridId = gridId
-      ..fieldId = fieldId
-      ..fieldType = fieldType;
-
-    return GridEventSwitchToField(payload).send();
-  }
-}
-
-class NewFieldTypeOptionLoader extends IFieldTypeOptionLoader {
-  @override
-  final String gridId;
-  NewFieldTypeOptionLoader({
-    required this.gridId,
-  });
-
-  @override
-  Future<Either<FieldTypeOptionDataPB, FlowyError>> load() {
-    final payload = CreateFieldPayloadPB.create()
-      ..gridId = gridId
-      ..fieldType = FieldType.RichText;
-
-    return GridEventCreateFieldTypeOption(payload).send();
-  }
-}
-
-class FieldTypeOptionLoader extends IFieldTypeOptionLoader {
-  @override
-  final String gridId;
-  final GridFieldPB field;
-
-  FieldTypeOptionLoader({
-    required this.gridId,
-    required this.field,
-  });
-
-  @override
-  Future<Either<FieldTypeOptionDataPB, FlowyError>> load() {
-    final payload = GridFieldTypeOptionIdPB.create()
-      ..gridId = gridId
-      ..fieldId = field.id
-      ..fieldType = field.fieldType;
-
-    return GridEventGetFieldTypeOption(payload).send();
-  }
-}
+import 'type_option_context.dart';
 
 class TypeOptionDataController {
   final String gridId;

+ 1 - 0
frontend/app_flowy/lib/plugins/grid/presentation/widgets/cell/date_cell/date_editor.dart

@@ -1,5 +1,6 @@
 import 'package:app_flowy/generated/locale_keys.g.dart';
 import 'package:app_flowy/plugins/grid/application/cell/date_cal_bloc.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flowy_infra/image.dart';
 import 'package:flowy_infra/theme.dart';

+ 1 - 1
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/field_cell.dart

@@ -1,6 +1,6 @@
 import 'package:app_flowy/plugins/grid/application/field/field_cell_bloc.dart';
 import 'package:app_flowy/plugins/grid/application/field/field_service.dart';
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:flowy_infra/image.dart';
 import 'package:flowy_infra/theme.dart';
 import 'package:flowy_infra_ui/style_widget/button.dart';

+ 1 - 1
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/field_editor.dart

@@ -1,5 +1,5 @@
 import 'package:app_flowy/plugins/grid/application/field/field_editor_bloc.dart';
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:flowy_infra_ui/flowy_infra_ui.dart';
 import 'package:flowy_infra_ui/style_widget/text.dart';

+ 1 - 1
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/grid_header.dart

@@ -1,5 +1,5 @@
 import 'package:app_flowy/plugins/grid/application/field/field_cache.dart';
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:app_flowy/startup/startup.dart';
 import 'package:app_flowy/plugins/grid/application/prelude.dart';
 import 'package:flowy_infra/image.dart';

+ 3 - 2
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/builder.dart

@@ -1,6 +1,7 @@
 import 'dart:typed_data';
 
 import 'package:app_flowy/plugins/grid/application/field/type_option/multi_select_type_option.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
 import 'package:flowy_sdk/protobuf/flowy-grid/checkbox_type_option.pb.dart';
 import 'package:flowy_sdk/protobuf/flowy-grid/date_type_option.pb.dart';
@@ -86,7 +87,7 @@ TypeOptionWidgetBuilder makeTypeOptionWidgetBuilder({
           gridId: gridId,
           fieldType: fieldType,
           dataController: dataController,
-        ) as SingleSelectTypeOptionContext,
+        ),
         overlayDelegate,
       );
     case FieldType.MultiSelect:
@@ -165,7 +166,7 @@ TypeOptionContext<T>
     case FieldType.SingleSelect:
       return SingleSelectTypeOptionContext(
         dataController: dataController,
-        dataBuilder: SingleSelectTypeOptionWidgetDataParser(),
+        dataParser: SingleSelectTypeOptionWidgetDataParser(),
       ) as TypeOptionContext<T>;
     case FieldType.MultiSelect:
       return MultiSelectTypeOptionContext(

+ 1 - 12
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/checkbox.dart

@@ -1,18 +1,7 @@
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/checkbox_type_option.pb.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:flutter/material.dart';
 import 'builder.dart';
 
-typedef CheckboxTypeOptionContext = TypeOptionContext<CheckboxTypeOption>;
-
-class CheckboxTypeOptionWidgetDataParser
-    extends TypeOptionDataParser<CheckboxTypeOption> {
-  @override
-  CheckboxTypeOption fromBuffer(List<int> buffer) {
-    return CheckboxTypeOption.fromBuffer(buffer);
-  }
-}
-
 class CheckboxTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
   CheckboxTypeOptionWidgetBuilder(CheckboxTypeOptionContext typeOptionContext);
 

+ 1 - 0
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/date.dart

@@ -1,4 +1,5 @@
 import 'package:app_flowy/plugins/grid/application/field/type_option/date_bloc.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:easy_localization/easy_localization.dart' hide DateFormat;
 import 'package:app_flowy/generated/locale_keys.g.dart';
 import 'package:flowy_infra/image.dart';

+ 1 - 0
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/number.dart

@@ -1,5 +1,6 @@
 import 'package:app_flowy/plugins/grid/application/field/type_option/number_bloc.dart';
 import 'package:app_flowy/plugins/grid/application/field/type_option/number_format_bloc.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:flowy_infra/image.dart';
 import 'package:flowy_infra/theme.dart';
 import 'package:flowy_infra_ui/flowy_infra_ui.dart';

+ 1 - 10
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/rich_text.dart

@@ -1,16 +1,7 @@
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/text_type_option.pb.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:flutter/material.dart';
 import 'builder.dart';
 
-class RichTextTypeOptionWidgetDataParser
-    extends TypeOptionDataParser<RichTextTypeOption> {
-  @override
-  RichTextTypeOption fromBuffer(List<int> buffer) {
-    return RichTextTypeOption.fromBuffer(buffer);
-  }
-}
-
 class RichTextTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
   RichTextTypeOptionWidgetBuilder(RichTextTypeOptionContext typeOptionContext);
 

+ 11 - 6
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/single_select.dart

@@ -1,4 +1,5 @@
 import 'package:app_flowy/plugins/grid/application/field/type_option/single_select_type_option.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:flutter/material.dart';
 import '../field_type_option_editor.dart';
 import 'builder.dart';
@@ -8,10 +9,14 @@ class SingleSelectTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
   final SingleSelectTypeOptionWidget _widget;
 
   SingleSelectTypeOptionWidgetBuilder(
-    SingleSelectTypeOptionContext typeOptionContext,
+    SingleSelectTypeOptionContext singleSelectTypeOption,
     TypeOptionOverlayDelegate overlayDelegate,
   ) : _widget = SingleSelectTypeOptionWidget(
-          typeOptionContext: typeOptionContext,
+          selectOptionAction: SingleSelectAction(
+            fieldId: singleSelectTypeOption.fieldId,
+            gridId: singleSelectTypeOption.gridId,
+            typeOptionContext: singleSelectTypeOption,
+          ),
           overlayDelegate: overlayDelegate,
         );
 
@@ -20,11 +25,11 @@ class SingleSelectTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
 }
 
 class SingleSelectTypeOptionWidget extends TypeOptionWidget {
-  final SingleSelectTypeOptionContext typeOptionContext;
+  final SingleSelectAction selectOptionAction;
   final TypeOptionOverlayDelegate overlayDelegate;
 
   const SingleSelectTypeOptionWidget({
-    required this.typeOptionContext,
+    required this.selectOptionAction,
     required this.overlayDelegate,
     Key? key,
   }) : super(key: key);
@@ -32,10 +37,10 @@ class SingleSelectTypeOptionWidget extends TypeOptionWidget {
   @override
   Widget build(BuildContext context) {
     return SelectOptionTypeOptionWidget(
-      options: typeOptionContext.typeOption.options,
+      options: selectOptionAction.typeOption.options,
       beginEdit: () => overlayDelegate.hideOverlay(context),
       overlayDelegate: overlayDelegate,
-      typeOptionAction: typeOptionContext,
+      typeOptionAction: selectOptionAction,
       // key: ValueKey(state.typeOption.hashCode),
     );
   }

+ 1 - 10
frontend/app_flowy/lib/plugins/grid/presentation/widgets/header/type_option/url.dart

@@ -1,16 +1,7 @@
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
-import 'package:flowy_sdk/protobuf/flowy-grid/url_type_option.pb.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:flutter/material.dart';
 import 'builder.dart';
 
-class URLTypeOptionWidgetDataParser
-    extends TypeOptionDataParser<URLTypeOption> {
-  @override
-  URLTypeOption fromBuffer(List<int> buffer) {
-    return URLTypeOption.fromBuffer(buffer);
-  }
-}
-
 class URLTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
   URLTypeOptionWidgetBuilder(URLTypeOptionContext typeOptionContext);
 

+ 1 - 1
frontend/app_flowy/lib/plugins/grid/presentation/widgets/row/row_detail.dart

@@ -1,5 +1,5 @@
 import 'package:app_flowy/plugins/grid/application/cell/cell_service/cell_service.dart';
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:app_flowy/plugins/grid/application/row/row_data_controller.dart';
 import 'package:app_flowy/plugins/grid/application/row/row_detail_bloc.dart';
 import 'package:flowy_infra/image.dart';

+ 1 - 1
frontend/app_flowy/lib/plugins/grid/presentation/widgets/toolbar/grid_property.dart

@@ -1,4 +1,4 @@
-import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_data_controller.dart';
+import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
 import 'package:app_flowy/startup/startup.dart';
 import 'package:app_flowy/plugins/grid/application/setting/property_bloc.dart';
 import 'package:app_flowy/plugins/grid/presentation/widgets/header/field_type_extension.dart';