|
@@ -1,9 +1,7 @@
|
|
|
import 'dart:collection';
|
|
|
-import 'package:app_flowy/workspace/application/grid/cell/cell_service/cell_service.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/select_option_editor.dart';
|
|
|
-import 'package:app_flowy/workspace/presentation/plugins/grid/src/widgets/common/text_field.dart';
|
|
|
+import 'package:app_flowy/plugins/grid/application/cell/cell_service/cell_service.dart';
|
|
|
+import 'package:app_flowy/plugins/grid/application/cell/select_option_editor_bloc.dart';
|
|
|
+
|
|
|
import 'package:flowy_infra/image.dart';
|
|
|
import 'package:flowy_infra/theme.dart';
|
|
|
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
|
|
@@ -18,6 +16,9 @@ import 'package:easy_localization/easy_localization.dart';
|
|
|
import 'package:app_flowy/generated/locale_keys.g.dart';
|
|
|
import 'package:textfield_tags/textfield_tags.dart';
|
|
|
|
|
|
+import '../../../layout/sizes.dart';
|
|
|
+import '../../common/text_field.dart';
|
|
|
+import '../../header/type_option/select_option_editor.dart';
|
|
|
import 'extension.dart';
|
|
|
import 'text_field.dart';
|
|
|
|
|
@@ -105,7 +106,8 @@ class _OptionList extends StatelessWidget {
|
|
|
builder: (context, state) {
|
|
|
List<Widget> cells = [];
|
|
|
cells.addAll(state.options.map((option) {
|
|
|
- return _SelectOptionCell(option, state.selectedOptions.contains(option));
|
|
|
+ return _SelectOptionCell(
|
|
|
+ option, state.selectedOptions.contains(option));
|
|
|
}).toList());
|
|
|
|
|
|
state.createOption.fold(
|
|
@@ -146,8 +148,10 @@ class _TextField extends StatelessWidget {
|
|
|
Widget build(BuildContext context) {
|
|
|
return BlocBuilder<SelectOptionCellEditorBloc, SelectOptionEditorState>(
|
|
|
builder: (context, state) {
|
|
|
- final optionMap = LinkedHashMap<String, SelectOptionPB>.fromIterable(state.selectedOptions,
|
|
|
- key: (option) => option.name, value: (option) => option);
|
|
|
+ final optionMap = LinkedHashMap<String, SelectOptionPB>.fromIterable(
|
|
|
+ state.selectedOptions,
|
|
|
+ key: (option) => option.name,
|
|
|
+ value: (option) => option);
|
|
|
|
|
|
return SizedBox(
|
|
|
height: 42,
|
|
@@ -156,12 +160,17 @@ class _TextField extends StatelessWidget {
|
|
|
selectedOptionMap: optionMap,
|
|
|
distanceToText: _editorPannelWidth * 0.7,
|
|
|
tagController: _tagController,
|
|
|
- onClick: () => FlowyOverlay.of(context).remove(SelectOptionTypeOptionEditor.identifier),
|
|
|
+ onClick: () => FlowyOverlay.of(context)
|
|
|
+ .remove(SelectOptionTypeOptionEditor.identifier),
|
|
|
newText: (text) {
|
|
|
- context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.filterOption(text));
|
|
|
+ context
|
|
|
+ .read<SelectOptionCellEditorBloc>()
|
|
|
+ .add(SelectOptionEditorEvent.filterOption(text));
|
|
|
},
|
|
|
onNewTag: (tagName) {
|
|
|
- context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.newOption(tagName));
|
|
|
+ context
|
|
|
+ .read<SelectOptionCellEditorBloc>()
|
|
|
+ .add(SelectOptionEditorEvent.newOption(tagName));
|
|
|
},
|
|
|
),
|
|
|
);
|
|
@@ -208,7 +217,9 @@ class _CreateOptionCell extends StatelessWidget {
|
|
|
SelectOptionTag(
|
|
|
name: name,
|
|
|
color: theme.shader6,
|
|
|
- onSelected: () => context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.newOption(name)),
|
|
|
+ onSelected: () => context
|
|
|
+ .read<SelectOptionCellEditorBloc>()
|
|
|
+ .add(SelectOptionEditorEvent.newOption(name)),
|
|
|
),
|
|
|
],
|
|
|
);
|
|
@@ -218,7 +229,8 @@ class _CreateOptionCell extends StatelessWidget {
|
|
|
class _SelectOptionCell extends StatelessWidget {
|
|
|
final SelectOptionPB option;
|
|
|
final bool isSelected;
|
|
|
- const _SelectOptionCell(this.option, this.isSelected, {Key? key}) : super(key: key);
|
|
|
+ const _SelectOptionCell(this.option, this.isSelected, {Key? key})
|
|
|
+ : super(key: key);
|
|
|
|
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
@@ -232,7 +244,9 @@ class _SelectOptionCell extends StatelessWidget {
|
|
|
child: SelectOptionTagCell(
|
|
|
option: option,
|
|
|
onSelected: (option) {
|
|
|
- context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.selectOption(option.id));
|
|
|
+ context
|
|
|
+ .read<SelectOptionCellEditorBloc>()
|
|
|
+ .add(SelectOptionEditorEvent.selectOption(option.id));
|
|
|
},
|
|
|
children: [
|
|
|
if (isSelected)
|
|
@@ -258,12 +272,17 @@ class _SelectOptionCell extends StatelessWidget {
|
|
|
final pannel = SelectOptionTypeOptionEditor(
|
|
|
option: option,
|
|
|
onDeleted: () {
|
|
|
- context.read<SelectOptionCellEditorBloc>().add(SelectOptionEditorEvent.deleteOption(option));
|
|
|
+ context
|
|
|
+ .read<SelectOptionCellEditorBloc>()
|
|
|
+ .add(SelectOptionEditorEvent.deleteOption(option));
|
|
|
},
|
|
|
onUpdated: (updatedOption) {
|
|
|
- context.read<SelectOptionCellEditorBloc>().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.
|
|
|
+ key: ValueKey(option
|
|
|
+ .id), // Use ValueKey to refresh the UI, otherwise, it will remain the old value.
|
|
|
);
|
|
|
final overlayIdentifier = (SelectOptionTypeOptionEditor).toString();
|
|
|
|