From 32c06cf1bfe87dc3f400150a90d69894986dc6b2 Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Tue, 26 Sep 2023 15:20:52 +0800 Subject: [PATCH] fix: clear selection when editing inline database view --- .../document/document_with_database_test.dart | 13 +++++++++++++ .../database/database_view_block_component.dart | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart b/frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart index 6a044ebf8e..f102e00dab 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart +++ b/frontend/appflowy_flutter/integration_test/document/document_with_database_test.dart @@ -2,6 +2,7 @@ import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/board/presentation/board_page.dart'; import 'package:appflowy/plugins/database_view/calendar/presentation/calendar_page.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/grid_page.dart'; +import 'package:appflowy/plugins/database_view/widgets/row/cells/text_cell/text_cell.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart'; import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/protobuf.dart'; @@ -31,6 +32,18 @@ void main() { ), findsOneWidget, ); + + // https://github.com/AppFlowy-IO/AppFlowy/issues/3533 + // test: the selection of editor should be clear when editing the grid + await tester.editor.updateSelection( + Selection.collapsed( + Position(path: [1]), + ), + ); + final gridTextCell = find.byType(GridTextCell).first; + await tester.tapButton(gridTextCell); + + expect(tester.editor.getCurrentEditorState().selection, isNull); }); testWidgets('insert a referenced board', (tester) async { diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/database_view_block_component.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/database_view_block_component.dart index b7ad4528a5..32357b79fb 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/database_view_block_component.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/database_view_block_component.dart @@ -82,7 +82,15 @@ class _DatabaseBlockComponentWidgetState child = Padding( padding: padding, - child: child, + child: FocusScope( + skipTraversal: true, + onFocusChange: (value) { + if (value) { + context.read().selection = null; + } + }, + child: child, + ), ); if (widget.showActions && widget.actionBuilder != null) {