Browse Source

refactor: rename files

appflowy 3 years ago
parent
commit
467e0093b2
16 changed files with 101 additions and 104 deletions
  1. 2 2
      frontend/app_flowy/lib/startup/deps_resolver.dart
  2. 14 14
      frontend/app_flowy/lib/workspace/application/grid/cell/select_option_cell_bloc.dart
  3. 3 3
      frontend/app_flowy/lib/workspace/application/grid/cell/select_option_editor_bloc.dart
  4. 1 1
      frontend/app_flowy/lib/workspace/application/grid/prelude.dart
  5. 1 1
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/cell_builder.dart
  6. 2 2
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/date_cell/date_cell.dart
  7. 6 15
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/date_cell/date_editor.dart
  8. 1 1
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/prelude.dart
  9. 0 0
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/extension.dart
  10. 7 7
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/select_option_cell.dart
  11. 13 13
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/select_option_editor.dart
  12. 0 0
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/text_field.dart
  13. 5 5
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/multi_select.dart
  14. 38 32
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/select_option.dart
  15. 3 3
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/select_option_editor.dart
  16. 5 5
      frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/single_select.dart

+ 2 - 2
frontend/app_flowy/lib/startup/deps_resolver.dart

@@ -170,8 +170,8 @@ void _resolveGridDeps(GetIt getIt) {
     ),
   );
 
-  getIt.registerFactoryParam<SelectionCellBloc, GridSelectOptionCellContext, void>(
-    (context, _) => SelectionCellBloc(
+  getIt.registerFactoryParam<SelectOptionCellBloc, GridSelectOptionCellContext, void>(
+    (context, _) => SelectOptionCellBloc(
       cellContext: context,
     ),
   );

+ 14 - 14
frontend/app_flowy/lib/workspace/application/grid/cell/selection_cell_bloc.dart → frontend/app_flowy/lib/workspace/application/grid/cell/select_option_cell_bloc.dart

@@ -4,16 +4,16 @@ import 'package:flutter_bloc/flutter_bloc.dart';
 import 'package:freezed_annotation/freezed_annotation.dart';
 import 'package:app_flowy/workspace/application/grid/cell/cell_service/cell_service.dart';
 
-part 'selection_cell_bloc.freezed.dart';
+part 'select_option_cell_bloc.freezed.dart';
 
-class SelectionCellBloc extends Bloc<SelectionCellEvent, SelectionCellState> {
+class SelectOptionCellBloc extends Bloc<SelectOptionCellEvent, SelectOptionCellState> {
   final GridSelectOptionCellContext cellContext;
   void Function()? _onCellChangedFn;
 
-  SelectionCellBloc({
+  SelectOptionCellBloc({
     required this.cellContext,
-  }) : super(SelectionCellState.initial(cellContext)) {
-    on<SelectionCellEvent>(
+  }) : super(SelectOptionCellState.initial(cellContext)) {
+    on<SelectOptionCellEvent>(
       (event, emit) async {
         await event.map(
           initial: (_InitialCell value) async {
@@ -44,7 +44,7 @@ class SelectionCellBloc extends Bloc<SelectionCellEvent, SelectionCellState> {
     _onCellChangedFn = cellContext.startListening(
       onCellChanged: ((selectOptionContext) {
         if (!isClosed) {
-          add(SelectionCellEvent.didReceiveOptions(
+          add(SelectOptionCellEvent.didReceiveOptions(
             selectOptionContext.options,
             selectOptionContext.selectOptions,
           ));
@@ -55,25 +55,25 @@ class SelectionCellBloc extends Bloc<SelectionCellEvent, SelectionCellState> {
 }
 
 @freezed
-class SelectionCellEvent with _$SelectionCellEvent {
-  const factory SelectionCellEvent.initial() = _InitialCell;
-  const factory SelectionCellEvent.didReceiveOptions(
+class SelectOptionCellEvent with _$SelectOptionCellEvent {
+  const factory SelectOptionCellEvent.initial() = _InitialCell;
+  const factory SelectOptionCellEvent.didReceiveOptions(
     List<SelectOption> options,
     List<SelectOption> selectedOptions,
   ) = _DidReceiveOptions;
 }
 
 @freezed
-class SelectionCellState with _$SelectionCellState {
-  const factory SelectionCellState({
+class SelectOptionCellState with _$SelectOptionCellState {
+  const factory SelectOptionCellState({
     required List<SelectOption> options,
     required List<SelectOption> selectedOptions,
-  }) = _SelectionCellState;
+  }) = _SelectOptionCellState;
 
-  factory SelectionCellState.initial(GridSelectOptionCellContext context) {
+  factory SelectOptionCellState.initial(GridSelectOptionCellContext context) {
     final data = context.getCellData();
 
-    return SelectionCellState(
+    return SelectOptionCellState(
       options: data?.options ?? [],
       selectedOptions: data?.selectOptions ?? [],
     );

+ 3 - 3
frontend/app_flowy/lib/workspace/application/grid/cell/selection_editor_bloc.dart → frontend/app_flowy/lib/workspace/application/grid/cell/select_option_editor_bloc.dart

@@ -7,14 +7,14 @@ import 'package:freezed_annotation/freezed_annotation.dart';
 import 'package:app_flowy/workspace/application/grid/cell/cell_service/cell_service.dart';
 import 'select_option_service.dart';
 
-part 'selection_editor_bloc.freezed.dart';
+part 'select_option_editor_bloc.freezed.dart';
 
-class SelectOptionEditorBloc extends Bloc<SelectOptionEditorEvent, SelectOptionEditorState> {
+class SelectOptionCellEditorBloc extends Bloc<SelectOptionEditorEvent, SelectOptionEditorState> {
   final SelectOptionService _selectOptionService;
   final GridSelectOptionCellContext cellContext;
   void Function()? _onCellChangedFn;
 
-  SelectOptionEditorBloc({
+  SelectOptionCellEditorBloc({
     required this.cellContext,
   })  : _selectOptionService = SelectOptionService(gridCell: cellContext.gridCell),
         super(SelectOptionEditorState.initial(cellContext)) {

+ 1 - 1
frontend/app_flowy/lib/workspace/application/grid/prelude.dart

@@ -18,7 +18,7 @@ export 'field/type_option/single_select_bloc.dart';
 // Cell
 export 'cell/text_cell_bloc.dart';
 export 'cell/number_cell_bloc.dart';
-export 'cell/selection_cell_bloc.dart';
+export 'cell/select_option_cell_bloc.dart';
 export 'cell/date_cell_bloc.dart';
 export 'cell/checkbox_cell_bloc.dart';
 export 'cell/cell_service/cell_service.dart';

+ 1 - 1
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/cell_builder.dart

@@ -11,7 +11,7 @@ import 'package:styled_widget/styled_widget.dart';
 import 'checkbox_cell.dart';
 import 'date_cell/date_cell.dart';
 import 'number_cell.dart';
-import 'selection_cell/selection_cell.dart';
+import 'select_option_cell/select_option_cell.dart';
 import 'text_cell.dart';
 
 GridCellWidget buildGridCellWidget(GridCell gridCell, GridCellCache cellCache, {GridCellStyle? style}) {

+ 2 - 2
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/date_cell/date_cell.dart

@@ -5,7 +5,7 @@ import 'package:app_flowy/startup/startup.dart';
 import 'package:app_flowy/workspace/application/grid/prelude.dart';
 
 import '../cell_builder.dart';
-import 'calendar.dart';
+import 'date_editor.dart';
 
 class DateCellStyle extends GridCellStyle {
   Alignment alignment;
@@ -77,7 +77,7 @@ class _DateCellState extends State<DateCell> {
   void _showCalendar(BuildContext context) {
     final bloc = context.read<DateCellBloc>();
     widget.onFocus.value = true;
-    final calendar = CellCalendar(onDismissed: () => widget.onFocus.value = false);
+    final calendar = DateCellEditor(onDismissed: () => widget.onFocus.value = false);
     calendar.show(
       context,
       cellContext: bloc.cellContext.clone(),

+ 6 - 15
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/date_cell/calendar.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/date_cell/date_editor.dart

@@ -22,10 +22,10 @@ final kFirstDay = DateTime(kToday.year, kToday.month - 3, kToday.day);
 final kLastDay = DateTime(kToday.year, kToday.month + 3, kToday.day);
 const kMargin = EdgeInsets.symmetric(horizontal: 6, vertical: 10);
 
-class CellCalendar with FlowyOverlayDelegate {
+class DateCellEditor with FlowyOverlayDelegate {
   final VoidCallback onDismissed;
 
-  const CellCalendar({
+  const DateCellEditor({
     required this.onDismissed,
   });
 
@@ -33,23 +33,14 @@ class CellCalendar with FlowyOverlayDelegate {
     BuildContext context, {
     required GridDateCellContext cellContext,
   }) async {
-    CellCalendar.remove(context);
+    DateCellEditor.remove(context);
 
     final result = await cellContext.getTypeOptionData();
     result.fold(
       (data) {
-        final typeOptionData = DateTypeOption.fromBuffer(data);
-        // DateTime? selectedDay;
-        // final cellData = cellContext.getCellData();
-
-        // if (cellData != null) {
-        //   final timestamp = $fixnum.Int64.parseInt(cellData).toInt();
-        //   selectedDay = DateTime.fromMillisecondsSinceEpoch(timestamp * 1000);
-        // }
-
         final calendar = _CellCalendarWidget(
           cellContext: cellContext,
-          dateTypeOption: typeOptionData,
+          dateTypeOption: DateTypeOption.fromBuffer(data),
         );
 
         FlowyOverlay.of(context).insertWithAnchor(
@@ -57,7 +48,7 @@ class CellCalendar with FlowyOverlayDelegate {
             child: calendar,
             constraints: BoxConstraints.loose(const Size(320, 500)),
           ),
-          identifier: CellCalendar.identifier(),
+          identifier: DateCellEditor.identifier(),
           anchorContext: context,
           anchorDirection: AnchorDirection.leftWithCenterAligned,
           style: FlowyOverlayStyle(blur: false),
@@ -73,7 +64,7 @@ class CellCalendar with FlowyOverlayDelegate {
   }
 
   static String identifier() {
-    return (CellCalendar).toString();
+    return (DateCellEditor).toString();
   }
 
   @override

+ 1 - 1
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/prelude.dart

@@ -3,4 +3,4 @@ export 'text_cell.dart';
 export 'number_cell.dart';
 export 'date_cell/date_cell.dart';
 export 'checkbox_cell.dart';
-export 'selection_cell/selection_cell.dart';
+export 'select_option_cell/select_option_cell.dart';

+ 0 - 0
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/selection_cell/extension.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/extension.dart


+ 7 - 7
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/selection_cell/selection_cell.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/select_option_cell.dart

@@ -10,7 +10,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 
 import 'extension.dart';
-import 'selection_editor.dart';
+import 'select_option_editor.dart';
 
 class SelectOptionCellStyle extends GridCellStyle {
   String placeholder;
@@ -41,12 +41,12 @@ class SingleSelectCell extends GridCellWidget {
 }
 
 class _SingleSelectCellState extends State<SingleSelectCell> {
-  late SelectionCellBloc _cellBloc;
+  late SelectOptionCellBloc _cellBloc;
 
   @override
   void initState() {
     final cellContext = widget.cellContextBuilder.build() as GridSelectOptionCellContext;
-    _cellBloc = getIt<SelectionCellBloc>(param1: cellContext)..add(const SelectionCellEvent.initial());
+    _cellBloc = getIt<SelectOptionCellBloc>(param1: cellContext)..add(const SelectOptionCellEvent.initial());
     super.initState();
   }
 
@@ -54,7 +54,7 @@ class _SingleSelectCellState extends State<SingleSelectCell> {
   Widget build(BuildContext context) {
     return BlocProvider.value(
       value: _cellBloc,
-      child: BlocBuilder<SelectionCellBloc, SelectionCellState>(
+      child: BlocBuilder<SelectOptionCellBloc, SelectOptionCellState>(
         builder: (context, state) {
           return _SelectOptionCell(
               selectOptions: state.selectedOptions,
@@ -95,12 +95,12 @@ class MultiSelectCell extends GridCellWidget {
 }
 
 class _MultiSelectCellState extends State<MultiSelectCell> {
-  late SelectionCellBloc _cellBloc;
+  late SelectOptionCellBloc _cellBloc;
 
   @override
   void initState() {
     final cellContext = widget.cellContextBuilder.build() as GridSelectOptionCellContext;
-    _cellBloc = getIt<SelectionCellBloc>(param1: cellContext)..add(const SelectionCellEvent.initial());
+    _cellBloc = getIt<SelectOptionCellBloc>(param1: cellContext)..add(const SelectOptionCellEvent.initial());
     super.initState();
   }
 
@@ -108,7 +108,7 @@ class _MultiSelectCellState extends State<MultiSelectCell> {
   Widget build(BuildContext context) {
     return BlocProvider.value(
       value: _cellBloc,
-      child: BlocBuilder<SelectionCellBloc, SelectionCellState>(
+      child: BlocBuilder<SelectOptionCellBloc, SelectOptionCellState>(
         builder: (context, state) {
           return _SelectOptionCell(
               selectOptions: state.selectedOptions,

+ 13 - 13
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/selection_cell/selection_editor.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/select_option_editor.dart

@@ -1,8 +1,8 @@
 import 'dart:collection';
 import 'package:app_flowy/workspace/application/grid/cell/cell_service/cell_service.dart';
-import 'package:app_flowy/workspace/application/grid/cell/selection_editor_bloc.dart';
+import 'package:app_flowy/workspace/application/grid/cell/select_option_editor_bloc.dart';
 import 'package:app_flowy/workspace/presentation/plugins/grid/src/layout/sizes.dart';
-import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/header/type_option/edit_option_pannel.dart';
+import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/header/type_option/select_option_editor.dart';
 import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/common/text_field.dart';
 import 'package:flowy_infra/image.dart';
 import 'package:flowy_infra/theme.dart';
@@ -37,10 +37,10 @@ class SelectOptionCellEditor extends StatelessWidget with FlowyOverlayDelegate {
   @override
   Widget build(BuildContext context) {
     return BlocProvider(
-      create: (context) => SelectOptionEditorBloc(
+      create: (context) => SelectOptionCellEditorBloc(
         cellContext: cellContext,
       )..add(const SelectOptionEditorEvent.initial()),
-      child: BlocBuilder<SelectOptionEditorBloc, SelectOptionEditorState>(
+      child: BlocBuilder<SelectOptionCellEditorBloc, SelectOptionEditorState>(
         builder: (context, state) {
           return CustomScrollView(
             shrinkWrap: true,
@@ -102,7 +102,7 @@ class _OptionList extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    return BlocBuilder<SelectOptionEditorBloc, SelectOptionEditorState>(
+    return BlocBuilder<SelectOptionCellEditorBloc, SelectOptionEditorState>(
       builder: (context, state) {
         List<Widget> cells = [];
         cells.addAll(state.options.map((option) {
@@ -145,7 +145,7 @@ class _TextField extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    return BlocBuilder<SelectOptionEditorBloc, SelectOptionEditorState>(
+    return BlocBuilder<SelectOptionCellEditorBloc, SelectOptionEditorState>(
       builder: (context, state) {
         final optionMap = LinkedHashMap<String, SelectOption>.fromIterable(state.selectedOptions,
             key: (option) => option.name, value: (option) => option);
@@ -158,10 +158,10 @@ class _TextField extends StatelessWidget {
             distanceToText: _editorPannelWidth * 0.7,
             tagController: _tagController,
             newText: (text) {
-              context.read<SelectOptionEditorBloc>().add(SelectOptionEditorEvent.filterOption(text));
+              context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.filterOption(text));
             },
             onNewTag: (tagName) {
-              context.read<SelectOptionEditorBloc>().add(SelectOptionEditorEvent.newOption(tagName));
+              context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.newOption(tagName));
             },
           ),
         );
@@ -230,7 +230,7 @@ class _SelectOptionCell extends StatelessWidget {
           _body(theme, context),
           InkWell(
             onTap: () {
-              context.read<SelectOptionEditorBloc>().add(SelectOptionEditorEvent.selectOption(option.id));
+              context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.selectOption(option.id));
             },
           ),
         ],
@@ -270,17 +270,17 @@ class _SelectOptionCell extends StatelessWidget {
   }
 
   void _showEditPannel(BuildContext context) {
-    final pannel = EditSelectOptionPannel(
+    final pannel = SelectOptionTypeOptionEditor(
       option: option,
       onDeleted: () {
-        context.read<SelectOptionEditorBloc>().add(SelectOptionEditorEvent.deleteOption(option));
+        context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.deleteOption(option));
       },
       onUpdated: (updatedOption) {
-        context.read<SelectOptionEditorBloc>().add(SelectOptionEditorEvent.updateOption(updatedOption));
+        context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.updateOption(updatedOption));
       },
       key: ValueKey(option.id), // Use ValueKey to refresh the UI, otherwise, it will remain the old value.
     );
-    final overlayIdentifier = (EditSelectOptionPannel).toString();
+    final overlayIdentifier = (SelectOptionTypeOptionEditor).toString();
 
     FlowyOverlay.of(context).remove(overlayIdentifier);
     FlowyOverlay.of(context).insertWithAnchor(

+ 0 - 0
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/selection_cell/text_field.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/text_field.dart


+ 5 - 5
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/multi_select.dart

@@ -4,7 +4,7 @@ import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/header
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
 
-import 'field_option_pannel.dart';
+import 'select_option.dart';
 
 class MultiSelectTypeOptionBuilder extends TypeOptionBuilder {
   final MultiSelectTypeOptionWidget _widget;
@@ -43,18 +43,18 @@ class MultiSelectTypeOptionWidget extends TypeOptionWidget {
           dataDelegate.didUpdateTypeOptionData(state.typeOption.writeToBuffer());
         },
         builder: (context, state) {
-          return FieldSelectOptionPannel(
+          return SelectOptionTypeOptionWidget(
             options: state.typeOption.options,
             beginEdit: () {
               overlayDelegate.hideOverlay(context);
             },
-            createOptionCallback: (name) {
+            createSelectOptionCallback: (name) {
               context.read<MultiSelectTypeOptionBloc>().add(MultiSelectTypeOptionEvent.createOption(name));
             },
-            updateOptionCallback: (updateOption) {
+            updateSelectOptionCallback: (updateOption) {
               context.read<MultiSelectTypeOptionBloc>().add(MultiSelectTypeOptionEvent.updateOption(updateOption));
             },
-            deleteOptionCallback: (deleteOption) {
+            deleteSelectOptionCallback: (deleteOption) {
               context.read<MultiSelectTypeOptionBloc>().add(MultiSelectTypeOptionEvent.deleteOption(deleteOption));
             },
             overlayDelegate: overlayDelegate,

+ 38 - 32
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/field_option_pannel.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/select_option.dart

@@ -13,22 +13,22 @@ import 'package:flutter_bloc/flutter_bloc.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:app_flowy/generated/locale_keys.g.dart';
 
-import 'edit_option_pannel.dart';
+import 'select_option_editor.dart';
 
-class FieldSelectOptionPannel extends StatelessWidget {
+class SelectOptionTypeOptionWidget extends StatelessWidget {
   final List<SelectOption> options;
   final VoidCallback beginEdit;
-  final Function(String optionName) createOptionCallback;
-  final Function(SelectOption) updateOptionCallback;
-  final Function(SelectOption) deleteOptionCallback;
+  final Function(String optionName) createSelectOptionCallback;
+  final Function(SelectOption) updateSelectOptionCallback;
+  final Function(SelectOption) deleteSelectOptionCallback;
   final TypeOptionOverlayDelegate overlayDelegate;
 
-  const FieldSelectOptionPannel({
+  const SelectOptionTypeOptionWidget({
     required this.options,
     required this.beginEdit,
-    required this.createOptionCallback,
-    required this.updateOptionCallback,
-    required this.deleteOptionCallback,
+    required this.createSelectOptionCallback,
+    required this.updateSelectOptionCallback,
+    required this.deleteSelectOptionCallback,
     required this.overlayDelegate,
     Key? key,
   }) : super(key: key);
@@ -44,17 +44,17 @@ class FieldSelectOptionPannel extends StatelessWidget {
           }
           state.newOptionName.fold(
             () => null,
-            (optionName) => createOptionCallback(optionName),
+            (optionName) => createSelectOptionCallback(optionName),
           );
 
           state.updateOption.fold(
             () => null,
-            (updateOption) => updateOptionCallback(updateOption),
+            (updateOption) => updateSelectOptionCallback(updateOption),
           );
 
           state.deleteOption.fold(
             () => null,
-            (deleteOption) => deleteOptionCallback(deleteOption),
+            (deleteOption) => deleteSelectOptionCallback(deleteOption),
           );
         },
         builder: (context, state) {
@@ -86,30 +86,12 @@ class OptionTitle extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    final theme = context.watch<AppTheme>();
-
     return BlocBuilder<FieldOptionPannelBloc, FieldOptionPannelState>(
       builder: (context, state) {
         List<Widget> children = [FlowyText.medium(LocaleKeys.grid_field_optionTitle.tr(), fontSize: 12)];
         if (state.options.isNotEmpty) {
           children.add(const Spacer());
-          children.add(
-            SizedBox(
-              width: 100,
-              height: 26,
-              child: FlowyButton(
-                text: FlowyText.medium(
-                  LocaleKeys.grid_field_addOption.tr(),
-                  fontSize: 12,
-                  textAlign: TextAlign.center,
-                ),
-                hoverColor: theme.hover,
-                onTap: () {
-                  context.read<FieldOptionPannelBloc>().add(const FieldOptionPannelEvent.beginAddingOption());
-                },
-              ),
-            ),
-          );
+          children.add(const _OptionTitleAddOptionButton());
         }
 
         return SizedBox(
@@ -121,6 +103,30 @@ class OptionTitle extends StatelessWidget {
   }
 }
 
+class _OptionTitleAddOptionButton extends StatelessWidget {
+  const _OptionTitleAddOptionButton({Key? key}) : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    final theme = context.watch<AppTheme>();
+    return SizedBox(
+      width: 100,
+      height: 26,
+      child: FlowyButton(
+        text: FlowyText.medium(
+          LocaleKeys.grid_field_addOption.tr(),
+          fontSize: 12,
+          textAlign: TextAlign.center,
+        ),
+        hoverColor: theme.hover,
+        onTap: () {
+          context.read<FieldOptionPannelBloc>().add(const FieldOptionPannelEvent.beginAddingOption());
+        },
+      ),
+    );
+  }
+}
+
 class _OptionList extends StatelessWidget {
   final TypeOptionOverlayDelegate delegate;
   const _OptionList(this.delegate, {Key? key}) : super(key: key);
@@ -155,7 +161,7 @@ class _OptionList extends StatelessWidget {
     return _OptionCell(
       option: option,
       onEdited: (option) {
-        final pannel = EditSelectOptionPannel(
+        final pannel = SelectOptionTypeOptionEditor(
           option: option,
           onDeleted: () {
             delegate.hideOverlay(context);

+ 3 - 3
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/edit_option_pannel.dart → frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/select_option_editor.dart

@@ -1,6 +1,6 @@
 import 'package:app_flowy/workspace/application/grid/field/type_option/edit_select_option_bloc.dart';
 import 'package:app_flowy/workspace/presentation/plugins/grid/src/layout/sizes.dart';
-import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/cell/selection_cell/extension.dart';
+import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/cell/select_option_cell/extension.dart';
 import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/common/text_field.dart';
 import 'package:flowy_infra/image.dart';
 import 'package:flowy_infra/theme.dart';
@@ -14,11 +14,11 @@ import 'package:flutter_bloc/flutter_bloc.dart';
 import 'package:easy_localization/easy_localization.dart';
 import 'package:app_flowy/generated/locale_keys.g.dart';
 
-class EditSelectOptionPannel extends StatelessWidget {
+class SelectOptionTypeOptionEditor extends StatelessWidget {
   final SelectOption option;
   final VoidCallback onDeleted;
   final Function(SelectOption) onUpdated;
-  const EditSelectOptionPannel({
+  const SelectOptionTypeOptionEditor({
     required this.option,
     required this.onDeleted,
     required this.onUpdated,

+ 5 - 5
frontend/app_flowy/lib/workspace/presentation/plugins/grid/src/widgets/header/type_option/single_select.dart

@@ -3,7 +3,7 @@ import 'package:app_flowy/workspace/application/grid/field/type_option/type_opti
 import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/header/field_editor_pannel.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
-import 'field_option_pannel.dart';
+import 'select_option.dart';
 
 class SingleSelectTypeOptionBuilder extends TypeOptionBuilder {
   final SingleSelectTypeOptionWidget _widget;
@@ -42,18 +42,18 @@ class SingleSelectTypeOptionWidget extends TypeOptionWidget {
           dataDelegate.didUpdateTypeOptionData(state.typeOption.writeToBuffer());
         },
         builder: (context, state) {
-          return FieldSelectOptionPannel(
+          return SelectOptionTypeOptionWidget(
             options: state.typeOption.options,
             beginEdit: () {
               overlayDelegate.hideOverlay(context);
             },
-            createOptionCallback: (name) {
+            createSelectOptionCallback: (name) {
               context.read<SingleSelectTypeOptionBloc>().add(SingleSelectTypeOptionEvent.createOption(name));
             },
-            updateOptionCallback: (updateOption) {
+            updateSelectOptionCallback: (updateOption) {
               context.read<SingleSelectTypeOptionBloc>().add(SingleSelectTypeOptionEvent.updateOption(updateOption));
             },
-            deleteOptionCallback: (deleteOption) {
+            deleteSelectOptionCallback: (deleteOption) {
               context.read<SingleSelectTypeOptionBloc>().add(SingleSelectTypeOptionEvent.deleteOption(deleteOption));
             },
             overlayDelegate: overlayDelegate,