From 6a9866b9d27830d94e9623c32ea09abd4a280386 Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Tue, 14 Nov 2023 22:33:07 +0800 Subject: [PATCH] chore: upgrade flutter to 3.13.9 (#3936) --- .github/workflows/flutter_ci.yaml | 2 +- .github/workflows/mobile_ci.yaml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/rust_coverage.yml | 2 +- frontend/appflowy_flutter/README.md | 4 +- .../integration_test/database_share_test.dart | 6 +- .../document_copy_and_paste_test.dart | 2 +- .../document_with_cover_image_test.dart | 2 +- .../util/editor_test_operations.dart | 2 +- .../integration_test/util/emoji.dart | 2 +- .../util/mock/mock_openai_repository.dart | 2 +- frontend/appflowy_flutter/ios/Podfile.lock | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../bottom_sheet_view_item_body.dart | 2 +- .../bottom_sheet_view_item_header.dart | 2 +- .../details_placeholder_page.dart | 2 +- .../favorite/mobile_favorite_folder.dart | 2 +- .../presentation/home/mobile_folders.dart | 2 +- .../home/mobile_home_page_header.dart | 6 +- .../home/mobile_home_trash_page.dart | 4 +- .../mobile_home_personal_folder.dart | 2 +- .../mobile_home_recent_views.dart | 2 +- .../page_item/mobile_view_item.dart | 2 +- .../setting/appearance_setting_group.dart | 2 +- .../edit_username_bottom_sheet.dart | 2 +- .../personal_info_setting_group.dart | 2 +- .../widgets/flowy_mobile_state_container.dart | 4 +- .../show_flowy_mobile_bottom_sheet.dart | 2 +- .../lib/plugins/base/emoji/emoji_picker.dart | 2 +- .../base/emoji/emoji_picker_header.dart | 2 +- .../plugins/base/emoji/emoji_picker_i18n.dart | 2 +- .../plugins/base/emoji/emoji_search_bar.dart | 2 +- .../plugins/base/emoji/emoji_skin_tone.dart | 2 +- .../lib/plugins/base/icon/icon_picker.dart | 2 +- .../application/cell/cell_controller.dart | 2 +- .../application/field/field_controller.dart | 2 +- .../application/row/row_list.dart | 2 +- .../application/tab_bar_bloc.dart | 9 +- .../widgets/board_column_header.dart | 2 +- .../widgets/board_hidden_groups.dart | 2 +- .../calendar/application/calendar_bloc.dart | 2 +- .../presentation/calendar_event_card.dart | 2 +- .../calendar/presentation/calendar_page.dart | 2 +- .../header/field_type_option_editor.dart | 2 +- .../header/type_option/select_option.dart | 4 +- .../grid/presentation/widgets/shortcuts.dart | 2 +- .../cells/select_option_cell/extension.dart | 2 +- .../row/cells/text_cell/text_cell.dart | 2 +- .../document/presentation/editor_page.dart | 8 +- .../actions/block_action_option_button.dart | 2 +- .../base/built_in_page_widget.dart | 2 +- .../base/insert_page_command.dart | 2 +- .../base/link_to_page_widget.dart | 18 ++-- .../editor_state_paste_node_extension.dart | 2 +- .../editor_plugins/header/cover_editor.dart | 2 +- .../header/cover_editor_bloc.dart | 2 +- .../header/custom_cover_picker.dart | 4 +- .../header/document_header_node_widget.dart | 4 +- .../image/open_ai_image_widget.dart | 2 +- .../image/stability_ai_image_widget.dart | 2 +- .../mention/slash_menu_items.dart | 2 +- .../widgets/auto_completion_node_widget.dart | 4 +- .../openai/widgets/loading.dart | 2 +- .../widgets/smart_edit_node_widget.dart | 2 +- .../document/presentation/editor_style.dart | 2 +- .../presentation/export_page_widget.dart | 2 +- .../presentation/more/more_button.dart | 2 +- .../handlers/date_reference.dart | 2 +- .../handlers/inline_page_reference.dart | 2 +- .../handlers/reminder_reference.dart | 2 +- .../widgets/inline_actions_handler.dart | 2 +- .../lib/plugins/trash/trash_page.dart | 2 +- .../appflowy_flutter/lib/startup/startup.dart | 2 +- .../auth/af_cloud_auth_service.dart | 2 +- .../auth/supabase_auth_service.dart | 4 +- .../auth/supabase_mock_auth_service.dart | 2 +- .../user/presentation/historical_user.dart | 2 +- .../presentation/screens/sign_up_screen.dart | 2 +- .../screens/workspace_error_screen.dart | 2 +- .../presentation/widgets/folder_widget.dart | 2 +- .../menu/sidebar/folder/favorite_folder.dart | 2 +- .../menu/sidebar/folder/personal_folder.dart | 4 +- .../home/menu/sidebar/sidebar.dart | 2 +- .../home/menu/view/view_item.dart | 2 +- .../settings/settings_dialog.dart | 2 +- .../widgets/emoji_picker/src/emoji_lists.dart | 32 +++---- .../emoji_picker/src/emoji_picker.dart | 2 +- .../widgets/setting_third_party_login.dart | 2 +- .../settings_appearance/color_scheme.dart | 4 +- .../direction_setting.dart | 4 +- .../font_family_setting.dart | 2 +- .../settings_customize_shortcuts_view.dart | 4 +- ...settings_file_customize_location_view.dart | 17 +++- .../settings_file_exporter_widget.dart | 41 +++++---- .../widgets/settings_file_system_view.dart | 2 +- .../widgets/settings_notifications_view.dart | 2 +- .../settings/widgets/settings_user_view.dart | 2 +- .../settings/widgets/sync_setting_view.dart | 6 +- .../presentation/widgets/dialogs.dart | 8 +- .../presentation/widgets/pop_up_action.dart | 2 +- .../macos/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../appflowy_popover/lib/src/popover.dart | 10 +- .../packages/flowy_infra/pubspec.yaml | 2 +- frontend/appflowy_flutter/pubspec.lock | 92 ++++++++++--------- frontend/appflowy_flutter/pubspec.yaml | 8 +- .../shortcuts_test/shortcuts_cubit_test.dart | 8 +- .../editor/transaction_adapter_test.dart | 2 +- frontend/rust-lib/Cargo.lock | 33 ++++++- .../freezed/generate_freezed.sh | 6 +- frontend/scripts/docker-buildfiles/Dockerfile | 2 +- .../scripts/install_dev_env/install_ios.sh | 12 +-- .../scripts/install_dev_env/install_linux.sh | 12 +-- .../scripts/install_dev_env/install_macos.sh | 12 +-- .../install_dev_env/install_windows.sh | 12 +-- 116 files changed, 312 insertions(+), 260 deletions(-) diff --git a/.github/workflows/flutter_ci.yaml b/.github/workflows/flutter_ci.yaml index aa3dd6b90980..b64a51a00e31 100644 --- a/.github/workflows/flutter_ci.yaml +++ b/.github/workflows/flutter_ci.yaml @@ -23,7 +23,7 @@ on: env: CARGO_TERM_COLOR: always - FLUTTER_VERSION: "3.10.4" + FLUTTER_VERSION: "3.13.9" RUST_TOOLCHAIN: "1.70" CARGO_MAKE_VERSION: "0.36.6" diff --git a/.github/workflows/mobile_ci.yaml b/.github/workflows/mobile_ci.yaml index 43c06aba9f83..17657eafadfd 100644 --- a/.github/workflows/mobile_ci.yaml +++ b/.github/workflows/mobile_ci.yaml @@ -18,7 +18,7 @@ on: - "!frontend/appflowy_tauri/**" env: - FLUTTER_VERSION: "3.10.1" + FLUTTER_VERSION: "3.13.9" RUST_TOOLCHAIN: "1.70" concurrency: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eea2f7edfea0..243062ac2b81 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: - "*" env: - FLUTTER_VERSION: "3.10.1" + FLUTTER_VERSION: "3.13.9" RUST_TOOLCHAIN: "1.70" jobs: diff --git a/.github/workflows/rust_coverage.yml b/.github/workflows/rust_coverage.yml index 2121fcf6ae25..7d36e625e582 100644 --- a/.github/workflows/rust_coverage.yml +++ b/.github/workflows/rust_coverage.yml @@ -11,7 +11,7 @@ on: env: CARGO_TERM_COLOR: always - FLUTTER_VERSION: "3.10.1" + FLUTTER_VERSION: "3.13.9" RUST_TOOLCHAIN: "1.70" jobs: diff --git a/frontend/appflowy_flutter/README.md b/frontend/appflowy_flutter/README.md index 8ae646031f69..116cd63f22b5 100644 --- a/frontend/appflowy_flutter/README.md +++ b/frontend/appflowy_flutter/README.md @@ -1,7 +1,7 @@

AppFlowy_Flutter

- - + +
> Documentation for Contributors diff --git a/frontend/appflowy_flutter/integration_test/database_share_test.dart b/frontend/appflowy_flutter/integration_test/database_share_test.dart index bd42847f82c1..3582a6c74625 100644 --- a/frontend/appflowy_flutter/integration_test/database_share_test.dart +++ b/frontend/appflowy_flutter/integration_test/database_share_test.dart @@ -34,7 +34,7 @@ void main() { false, false, false, - false + false, ]; for (final (index, content) in checkboxCells.indexed) { await tester.assertCheckboxCell( @@ -54,7 +54,7 @@ void main() { '10', '11', '12', - '' + '', ]; for (final (index, content) in numberCells.indexed) { await tester.assertCellContent( @@ -152,7 +152,7 @@ void main() { 'Jun 16, 2023', '', '', - '' + '', ]; for (final (index, content) in dateCells.indexed) { await tester.assertDateCellInGrid( diff --git a/frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart b/frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart index c4c34841926e..902255055c87 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart +++ b/frontend/appflowy_flutter/integration_test/document/document_copy_and_paste_test.dart @@ -219,7 +219,7 @@ void main() { expect(node.delta!.toJson(), [ { 'insert': text, - 'attributes': {'href': url} + 'attributes': {'href': url}, } ]); }, diff --git a/frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart b/frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart index b656fc116745..e92b849cd530 100644 --- a/frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart +++ b/frontend/appflowy_flutter/integration_test/document/document_with_cover_image_test.dart @@ -2,8 +2,8 @@ import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:emoji_mart/emoji_mart.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; diff --git a/frontend/appflowy_flutter/integration_test/util/editor_test_operations.dart b/frontend/appflowy_flutter/integration_test/util/editor_test_operations.dart index 7f089d518a7d..73dd494922ae 100644 --- a/frontend/appflowy_flutter/integration_test/util/editor_test_operations.dart +++ b/frontend/appflowy_flutter/integration_test/util/editor_test_operations.dart @@ -12,9 +12,9 @@ import 'package:appflowy/plugins/document/presentation/editor_plugins/header/emo import 'package:appflowy/plugins/inline_actions/widgets/inline_actions_handler.dart'; import 'package:appflowy_editor/appflowy_editor.dart' hide Log; import 'package:easy_localization/easy_localization.dart'; -import 'package:emoji_mart/emoji_mart.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; import 'package:flutter_test/flutter_test.dart'; import 'util.dart'; diff --git a/frontend/appflowy_flutter/integration_test/util/emoji.dart b/frontend/appflowy_flutter/integration_test/util/emoji.dart index f0e5c693a615..d439a9b3f7b6 100644 --- a/frontend/appflowy_flutter/integration_test/util/emoji.dart +++ b/frontend/appflowy_flutter/integration_test/util/emoji.dart @@ -1,4 +1,4 @@ -import 'package:emoji_mart/emoji_mart.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; import 'package:flutter_test/flutter_test.dart'; import 'base.dart'; diff --git a/frontend/appflowy_flutter/integration_test/util/mock/mock_openai_repository.dart b/frontend/appflowy_flutter/integration_test/util/mock/mock_openai_repository.dart index 66d63b248b21..2941bcb49b37 100644 --- a/frontend/appflowy_flutter/integration_test/util/mock/mock_openai_repository.dart +++ b/frontend/appflowy_flutter/integration_test/util/mock/mock_openai_repository.dart @@ -15,7 +15,7 @@ class MyMockClient extends Mock implements http.Client { if (requestType == 'POST' && requestUri == OpenAIRequestType.textCompletion.uri) { final responseHeaders = { - 'content-type': 'text/event-stream' + 'content-type': 'text/event-stream', }; final responseBody = Stream.fromIterable([ utf8.encode( diff --git a/frontend/appflowy_flutter/ios/Podfile.lock b/frontend/appflowy_flutter/ios/Podfile.lock index cf59c986e6b0..b358068db882 100644 --- a/frontend/appflowy_flutter/ios/Podfile.lock +++ b/frontend/appflowy_flutter/ios/Podfile.lock @@ -171,7 +171,7 @@ SPEC CHECKSUMS: device_info_plus: 7545d84d8d1b896cb16a4ff98c19f07ec4b298ea DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 - file_picker: ce3938a0df3cc1ef404671531facef740d03f920 + file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de flowy_infra_ui: 0455e1fa8c51885aa1437848e361e99419f34ebc Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c diff --git a/frontend/appflowy_flutter/ios/Runner.xcodeproj/project.pbxproj b/frontend/appflowy_flutter/ios/Runner.xcodeproj/project.pbxproj index cd5e7de15d61..50fd566bf0b0 100644 --- a/frontend/appflowy_flutter/ios/Runner.xcodeproj/project.pbxproj +++ b/frontend/appflowy_flutter/ios/Runner.xcodeproj/project.pbxproj @@ -143,7 +143,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { diff --git a/frontend/appflowy_flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/frontend/appflowy_flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6e1fb7..b52b2e698b7e 100644 --- a/frontend/appflowy_flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/frontend/appflowy_flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ { style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18), ), ), - ] + ], ], ), ); diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/favorite/mobile_favorite_folder.dart b/frontend/appflowy_flutter/lib/mobile/presentation/favorite/mobile_favorite_folder.dart index 933292f38f70..07a36f2a47a5 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/favorite/mobile_favorite_folder.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/favorite/mobile_favorite_folder.dart @@ -34,7 +34,7 @@ class MobileFavoritePageFolder extends StatelessWidget { ), BlocProvider( create: (_) => FavoriteBloc()..add(const FavoriteEvent.initial()), - ) + ), ], child: MultiBlocListener( listeners: [ diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart index d6d1c14366f1..f1d10ddc6788 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart @@ -34,7 +34,7 @@ class MobileFolders extends StatelessWidget { ), BlocProvider( create: (_) => FavoriteBloc()..add(const FavoriteEvent.initial()), - ) + ), ], child: MultiBlocListener( listeners: [ diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart index 98777385b0e0..3cc4108b453a 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart @@ -66,7 +66,7 @@ class MobileHomePageHeader extends StatelessWidget { icon: const Icon( Icons.arrow_drop_down, ), - ) + ), ], ), FlowyText.regular( @@ -76,7 +76,7 @@ class MobileHomePageHeader extends StatelessWidget { fontSize: 12, color: theme.colorScheme.onSurface, overflow: TextOverflow.ellipsis, - ) + ), ], ), ), @@ -87,7 +87,7 @@ class MobileHomePageHeader extends StatelessWidget { icon: const FlowySvg( FlowySvgs.m_setting_m, ), - ) + ), ], ), ); diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_trash_page.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_trash_page.dart index 945bdfeee86d..1870402b01c6 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_trash_page.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_trash_page.dart @@ -51,7 +51,7 @@ class MobileHomeTrashPage extends StatelessWidget { trashBloc: trashBloc, type: _TrashActionType.restoreAll, ), - ) + ), ], ), ); @@ -214,7 +214,7 @@ class _DeletedFilesListView extends StatelessWidget { gravity: ToastGravity.BOTTOM, ); }, - ) + ), ], ), ), diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/personal_folder/mobile_home_personal_folder.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/personal_folder/mobile_home_personal_folder.dart index 72a2897b31e7..c57d3b259222 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/personal_folder/mobile_home_personal_folder.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/personal_folder/mobile_home_personal_folder.dart @@ -64,7 +64,7 @@ class MobilePersonalFolder extends StatelessWidget { MobilePaneActionType.more, ]), ), - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/recent_folder/mobile_home_recent_views.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/recent_folder/mobile_home_recent_views.dart index 32156f74f19a..b4dbd0491037 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/recent_folder/mobile_home_recent_views.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/recent_folder/mobile_home_recent_views.dart @@ -48,7 +48,7 @@ class _MobileRecentFolderState extends State { // the recent views are in reverse order recentViews: recentViews, ), - const VSpace(12.0) + const VSpace(12.0), ], ); }, diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/page_item/mobile_view_item.dart b/frontend/appflowy_flutter/lib/mobile/presentation/page_item/mobile_view_item.dart index f6d9c44ef1cf..251332a7b231 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/page_item/mobile_view_item.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/page_item/mobile_view_item.dart @@ -312,7 +312,7 @@ class _SingleMobileInnerViewItemState extends State { fontSize: 18.0, overflow: TextOverflow.ellipsis, ), - ) + ), ]; // hover action diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/setting/appearance_setting_group.dart b/frontend/appflowy_flutter/lib/mobile/presentation/setting/appearance_setting_group.dart index d040f4cd27a1..d85e5fe2731f 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/setting/appearance_setting_group.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/setting/appearance_setting_group.dart @@ -40,7 +40,7 @@ class _AppearanceSettingGroupState extends State { color: theme.colorScheme.onSurface, ), ), - const Icon(Icons.chevron_right) + const Icon(Icons.chevron_right), ], ), onTap: () { diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/edit_username_bottom_sheet.dart b/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/edit_username_bottom_sheet.dart index 4a68f411f575..026fb8466c62 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/edit_username_bottom_sheet.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/edit_username_bottom_sheet.dart @@ -71,7 +71,7 @@ class _EditUsernameBottomSheetState extends State { onPressed: () { widget.context.pop(); }, - ) + ), ], ), const SizedBox( diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/personal_info_setting_group.dart b/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/personal_info_setting_group.dart index 397621248c51..a2807732a156 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/personal_info_setting_group.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/setting/personal_info/personal_info_setting_group.dart @@ -62,7 +62,7 @@ class PersonalInfoSettingGroup extends StatelessWidget { }, ); }, - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/widgets/flowy_mobile_state_container.dart b/frontend/appflowy_flutter/lib/mobile/presentation/widgets/flowy_mobile_state_container.dart index ad5aa3c894b8..383906955285 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/widgets/flowy_mobile_state_container.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/widgets/flowy_mobile_state_container.dart @@ -92,8 +92,8 @@ class FlowyMobileStateContainer extends StatelessWidget { ], ); }, - ) - ] + ), + ], ], ), ), diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/widgets/show_flowy_mobile_bottom_sheet.dart b/frontend/appflowy_flutter/lib/mobile/presentation/widgets/show_flowy_mobile_bottom_sheet.dart index b71a664eb585..78086f413fc8 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/widgets/show_flowy_mobile_bottom_sheet.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/widgets/show_flowy_mobile_bottom_sheet.dart @@ -48,7 +48,7 @@ class _BottomSheetTitle extends StatelessWidget { onPressed: () { context.pop(); }, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker.dart b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker.dart index fb9a55652fbd..4989bdb04321 100644 --- a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker.dart +++ b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker.dart @@ -1,9 +1,9 @@ import 'package:appflowy/plugins/base/emoji/emoji_picker_header.dart'; import 'package:appflowy/plugins/base/emoji/emoji_search_bar.dart'; import 'package:appflowy/plugins/base/emoji/emoji_skin_tone.dart'; -import 'package:emoji_mart/emoji_mart.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; // use a global value to store the selected emoji to prevent reloading every time. EmojiData? _cachedEmojiData; diff --git a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_header.dart b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_header.dart index 19b3ad939a82..9619f00d30dc 100644 --- a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_header.dart +++ b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_header.dart @@ -1,7 +1,7 @@ import 'package:appflowy_editor/appflowy_editor.dart'; -import 'package:emoji_mart/emoji_mart.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; class FlowyEmojiHeader extends StatelessWidget { const FlowyEmojiHeader({ diff --git a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_i18n.dart b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_i18n.dart index 0c4fb066aaf5..13ba942f4947 100644 --- a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_i18n.dart +++ b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_picker_i18n.dart @@ -1,6 +1,6 @@ import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:emoji_mart/emoji_mart.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; class FlowyEmojiPickerI18n extends EmojiPickerI18n { @override diff --git a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_search_bar.dart b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_search_bar.dart index c7cf0a094374..34e897901af3 100644 --- a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_search_bar.dart +++ b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_search_bar.dart @@ -3,10 +3,10 @@ import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/base/emoji/emoji_skin_tone.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:emoji_mart/emoji_mart.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/widget/flowy_tooltip.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; typedef EmojiKeywordChangedCallback = void Function(String keyword); typedef EmojiSkinToneChanged = void Function(EmojiSkinTone skinTone); diff --git a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_skin_tone.dart b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_skin_tone.dart index a3f934ac898a..e8da112660b4 100644 --- a/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_skin_tone.dart +++ b/frontend/appflowy_flutter/lib/plugins/base/emoji/emoji_skin_tone.dart @@ -1,10 +1,10 @@ import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:emoji_mart/emoji_mart.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/widget/flowy_tooltip.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_emoji_mart/flutter_emoji_mart.dart'; // use a temporary global value to store last selected skin tone EmojiSkinTone? lastSelectedEmojiSkinTone; diff --git a/frontend/appflowy_flutter/lib/plugins/base/icon/icon_picker.dart b/frontend/appflowy_flutter/lib/plugins/base/icon/icon_picker.dart index 6b27e5a86560..818a3bcbf706 100644 --- a/frontend/appflowy_flutter/lib/plugins/base/icon/icon_picker.dart +++ b/frontend/appflowy_flutter/lib/plugins/base/icon/icon_picker.dart @@ -111,7 +111,7 @@ class _FlowyIconPickerState extends State LocaleKeys.emoji_emojiTab.tr(), ), ), - ) + ), ], ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/application/cell/cell_controller.dart b/frontend/appflowy_flutter/lib/plugins/database_view/application/cell/cell_controller.dart index b37e990f21fa..40c644eec315 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/application/cell/cell_controller.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/application/cell/cell_controller.dart @@ -219,7 +219,7 @@ class CellController extends Equatable { @override List get props => [ _cellCache.get(_cacheKey) ?? "", - _cellContext.rowId + _cellContext.fieldInfo.id + _cellContext.rowId + _cellContext.fieldInfo.id, ]; } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/application/field/field_controller.dart b/frontend/appflowy_flutter/lib/plugins/database_view/application/field/field_controller.dart index 7556640fb9e6..4c660dc25cc5 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/application/field/field_controller.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/application/field/field_controller.dart @@ -392,7 +392,7 @@ class FieldController { } final List newFields = fieldInfos; final Map deletedFieldMap = { - for (final fieldOrder in deletedFields) fieldOrder.fieldId: fieldOrder + for (final fieldOrder in deletedFields) fieldOrder.fieldId: fieldOrder, }; newFields.retainWhere((field) => (deletedFieldMap[field.id] == null)); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/application/row/row_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/application/row/row_list.dart index 4fd489dd985f..47663f0a44c3 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/application/row/row_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/application/row/row_list.dart @@ -100,7 +100,7 @@ class RowList { final List newRows = []; final DeletedIndexs deletedIndex = []; final Map deletedRowByRowId = { - for (var rowId in rowIds) rowId: rowId + for (final rowId in rowIds) rowId: rowId, }; _rowInfos.asMap().forEach((index, RowInfo rowInfo) { diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/application/tab_bar_bloc.dart b/frontend/appflowy_flutter/lib/plugins/database_view/application/tab_bar_bloc.dart index 7b87373aea4f..91bf95f9a64d 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/application/tab_bar_bloc.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/application/tab_bar_bloc.dart @@ -1,5 +1,5 @@ -import 'package:appflowy/plugins/database_view/tab_bar/tab_bar_view.dart'; import 'package:appflowy/plugins/database_view/tab_bar/tab_bar_add_button.dart'; +import 'package:appflowy/plugins/database_view/tab_bar/tab_bar_view.dart'; import 'package:appflowy/workspace/application/view/prelude.dart'; import 'package:appflowy/workspace/application/view/view_ext.dart'; import 'package:appflowy_backend/log.dart'; @@ -65,7 +65,8 @@ class DatabaseTabBarBloc if (updatePB.createChildViews.isNotEmpty) { final allTabBars = [ ...state.tabBars, - ...updatePB.createChildViews.map((e) => DatabaseTabBar(view: e)) + ...updatePB.createChildViews + .map((e) => DatabaseTabBar(view: e)), ]; emit( state.copyWith( @@ -80,7 +81,7 @@ class DatabaseTabBarBloc if (updatePB.deleteChildViews.isNotEmpty) { final allTabBars = [...state.tabBars]; final tabBarControllerByViewId = { - ...state.tabBarControllerByViewId + ...state.tabBarControllerByViewId, }; var newSelectedIndex = state.selectedIndex; for (final viewId in updatePB.deleteChildViews) { @@ -235,7 +236,7 @@ class DatabaseTabBarState with _$DatabaseTabBarState { tabBarControllerByViewId: { view.id: DatabaseTabBarController( view: view, - ) + ), }, ); } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_column_header.dart b/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_column_header.dart index b3fe562e4817..67c01a51a3f2 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_column_header.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_column_header.dart @@ -237,7 +237,7 @@ class _BoardColumnHeaderState extends State { ), ), ), - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_hidden_groups.dart b/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_hidden_groups.dart index c40434c5605c..b5673de40074 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_hidden_groups.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/widgets/board_hidden_groups.dart @@ -431,7 +431,7 @@ class HiddenGroupPopupItemList extends StatelessWidget { }, ); }, - ) + ), ]; return ListView.separated( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/application/calendar_bloc.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/application/calendar_bloc.dart index f4a2cbdf7aa0..0a08d33a7448 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/application/calendar_bloc.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/application/calendar_bloc.dart @@ -283,7 +283,7 @@ class CalendarBloc extends Bloc { return; } fieldInfoByFieldId = { - for (var fieldInfo in fieldInfos) fieldInfo.field.id: fieldInfo + for (final fieldInfo in fieldInfos) fieldInfo.field.id: fieldInfo, }; }, onRowsCreated: (rowIds) async { diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart index 80b26e9b2ef5..b7301bc880f5 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart @@ -230,7 +230,7 @@ class _EventCardState extends State { color: Theme.of(context).hintColor, overflow: TextOverflow.ellipsis, ), - ) + ), ], ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart index 45ad2309e267..a3618aab6cee 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart @@ -435,7 +435,7 @@ class UnscheduleEventsList extends StatelessWidget { PopoverContainer.of(context).close(); }, ), - ) + ), ]; return ListView.separated( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart index e5b241883454..6ea45ce5bb2f 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart @@ -50,7 +50,7 @@ class FieldTypeOptionEditor extends StatelessWidget { final List children = [ SwitchFieldButton(popoverMutex: popoverMutex), - if (typeOptionWidget != null) typeOptionWidget + if (typeOptionWidget != null) typeOptionWidget, ]; return ListView( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart index 9dd452913993..e3399e682c51 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart @@ -48,7 +48,7 @@ class SelectOptionTypeOptionWidget extends StatelessWidget { const VSpace(10), if (state.options.isEmpty && !state.isEditingOption) const _AddOptionButton(), - _OptionList(popoverMutex: popoverMutex) + _OptionList(popoverMutex: popoverMutex), ]; return ListView.builder( @@ -77,7 +77,7 @@ class OptionTitle extends StatelessWidget { child: FlowyText.medium( LocaleKeys.grid_field_optionTitle.tr(), ), - ) + ), ]; if (state.options.isNotEmpty && !state.isEditingOption) { children.add(const Spacer()); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/shortcuts.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/shortcuts.dart index 1e38c5647d4a..d3f7e7e9c462 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/shortcuts.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/shortcuts.dart @@ -19,7 +19,7 @@ class GridShortcuts extends StatelessWidget { } Map bindKeys(List keys) { - return {for (var key in keys) LogicalKeySet(key): KeyboardKeyIdent(key)}; + return {for (final key in keys) LogicalKeySet(key): KeyboardKeyIdent(key)}; } Map> bindActions() { diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart index 7f5b508fcac0..4349616c4934 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart @@ -123,7 +123,7 @@ class SelectOptionTag extends StatelessWidget { FlowySvgs.close_s, ), ), - ] + ], ], ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/text_cell/text_cell.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/text_cell/text_cell.dart index 09a78f91fbfd..84de14129b21 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/text_cell/text_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/text_cell/text_cell.dart @@ -126,7 +126,7 @@ class _GridTextCellState extends GridEditableTextCell { isDense: true, ), ), - ) + ), ], ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart index c6d74ad1eed6..3148c5164c6a 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart @@ -265,13 +265,17 @@ class _AppFlowyEditorPageState extends State { child: MobileFloatingToolbar( editorState: editorState, editorScrollController: editorScrollController, - toolbarBuilder: (context, anchor) { + toolbarBuilder: (context, anchor, closeToolbar) { return AdaptiveTextSelectionToolbar.editable( clipboardStatus: ClipboardStatus.pasteable, - onCopy: () => copyCommand.execute(editorState), + onCopy: () { + copyCommand.execute(editorState); + closeToolbar(); + }, onCut: () => cutCommand.execute(editorState), onPaste: () => pasteCommand.execute(editorState), onSelectAll: () => selectAllCommand.execute(editorState), + onLiveTextInput: null, anchors: TextSelectionToolbarAnchors( primaryAnchor: anchor, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart index 8a262e671ccd..e4e1f954f8f3 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart @@ -79,7 +79,7 @@ class BlockOptionButton extends StatelessWidget { ), TextSpan( text: LocaleKeys.document_plugins_optionAction_toOpenMenu.tr(), - ) + ), ], ), onTap: () { diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart index c3fc935f4617..ded85f476937 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart @@ -170,7 +170,7 @@ class _BuiltInPageWidgetState extends State { } controller.close(); }, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/insert_page_command.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/insert_page_command.dart index fba3c8644ce0..759855e102d5 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/insert_page_command.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/insert_page_command.dart @@ -84,7 +84,7 @@ extension InsertDatabase on EditorState { MentionBlockKeys.mention: { MentionBlockKeys.type: MentionType.page.name, MentionBlockKeys.pageId: view.id, - } + }, }, ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart index 0a87e2e189e3..fcc971665fcf 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart @@ -44,13 +44,15 @@ void showLinkToPageMenu( await editorState.insertReferencePage(viewPB, pageType); linkToPageMenuEntry.remove(); } on FlowyError catch (e) { - Dialogs.show( - child: FlowyErrorPage.message( - e.msg, - howToFix: LocaleKeys.errorDialog_howToFixFallback.tr(), - ), - context, - ); + if (context.mounted) { + Dialogs.show( + child: FlowyErrorPage.message( + e.msg, + howToFix: LocaleKeys.errorDialog_howToFixFallback.tr(), + ), + context, + ); + } } }, ), @@ -149,7 +151,7 @@ class _LinkToPageMenuState extends State { LogicalKeyboardKey.arrowUp, LogicalKeyboardKey.arrowDown, LogicalKeyboardKey.tab, - LogicalKeyboardKey.enter + LogicalKeyboardKey.enter, ]; if (!acceptedKeys.contains(event.logicalKey)) { diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/copy_and_paste/editor_state_paste_node_extension.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/copy_and_paste/editor_state_paste_node_extension.dart index 369256eb84b9..a925182a3613 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/copy_and_paste/editor_state_paste_node_extension.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/copy_and_paste/editor_state_paste_node_extension.dart @@ -119,7 +119,7 @@ extension PasteNodes on EditorState { if (nodes.last.children.isNotEmpty) { return [ ...path, - ...calculatePath([0], nodes.last.children.toList()) + ...calculatePath([0], nodes.last.children.toList()), ]; } return path; diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart index 919451adac3f..ea3011205071 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart @@ -19,7 +19,7 @@ const String kLocalImagesKey = 'local_images'; List get builtInAssetImages => [ "assets/images/app_flowy_abstract_cover_1.jpg", - "assets/images/app_flowy_abstract_cover_2.jpg" + "assets/images/app_flowy_abstract_cover_2.jpg", ]; class ChangeCoverPopover extends StatefulWidget { diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor_bloc.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor_bloc.dart index 12a64a889c9c..c6c6fcc6e395 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor_bloc.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor_bloc.dart @@ -102,7 +102,7 @@ class ChangeCoverPopoverBloc transaction.updateNode(node, { DocumentHeaderBlockKeys.coverType: CoverType.none.toString(), DocumentHeaderBlockKeys.icon: - node.attributes[DocumentHeaderBlockKeys.icon] + node.attributes[DocumentHeaderBlockKeys.icon], }); return editorState.apply(transaction); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart index 83d39b3bef1c..3dade8ae1a99 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart @@ -148,7 +148,7 @@ class _NetworkImageUrlInputState extends State { title: LocaleKeys.document_plugins_cover_add.tr(), borderRadius: Corners.s8Border, ), - ) + ), ], ); } @@ -322,7 +322,7 @@ class _CoverImagePreviewWidgetState extends State { (l) => _buildImageDeleteButton(context), (r) => Container(), ) - : Container() + : Container(), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart index 2905a3271523..e18e74de6bbc 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart @@ -173,7 +173,7 @@ class _DocumentHeaderNodeWidgetState extends State { DocumentHeaderBlockKeys.coverDetails: widget.node.attributes[DocumentHeaderBlockKeys.coverDetails], DocumentHeaderBlockKeys.icon: - widget.node.attributes[DocumentHeaderBlockKeys.icon] + widget.node.attributes[DocumentHeaderBlockKeys.icon], }; if (cover != null) { attributes[DocumentHeaderBlockKeys.coverType] = cover.$1.toString(); @@ -398,7 +398,7 @@ class DocumentCoverState extends State { width: double.infinity, child: _buildCoverImage(), ), - if (!isOverlayButtonsHidden) _buildCoverOverlayButtons(context) + if (!isOverlayButtonsHidden) _buildCoverOverlayButtons(context), ], ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/open_ai_image_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/open_ai_image_widget.dart index 2c1ec6f1f826..37a2a0694649 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/open_ai_image_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/open_ai_image_widget.dart @@ -88,7 +88,7 @@ class _OpenAIImageWidgetState extends State { ); }, ), - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/stability_ai_image_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/stability_ai_image_widget.dart index 7488fb09055b..d0d589d206f7 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/stability_ai_image_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/stability_ai_image_widget.dart @@ -104,7 +104,7 @@ class _StabilityAIImageWidgetState extends State { ); }, ), - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/slash_menu_items.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/slash_menu_items.dart index c2e8bf0769f0..75b418e3e92b 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/slash_menu_items.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/slash_menu_items.dart @@ -37,7 +37,7 @@ Future _insertDateReference(EditorState editorState) async { MentionBlockKeys.mention: { MentionBlockKeys.type: MentionType.date.name, MentionBlockKeys.date: DateTime.now().toIso8601String(), - } + }, }, ); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart index 121cb0776d91..e9d87a9d34e2 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart @@ -157,7 +157,7 @@ class _AutoCompletionBlockComponentState onKeep: _onExit, onRewrite: _onRewrite, onDiscard: _onDiscard, - ) + ), ], ], ), @@ -477,7 +477,7 @@ class AutoCompletionHeader extends StatelessWidget { onTap: () async { await openLearnMorePage(); }, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/loading.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/loading.dart index 820c2db84c1f..34c53d4ebcc1 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/loading.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/loading.dart @@ -18,7 +18,7 @@ class Loading { children: [ Center( child: CircularProgressIndicator(), - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/smart_edit_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/smart_edit_node_widget.dart index 51b0292d9eaf..7381489ff019 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/smart_edit_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/smart_edit_node_widget.dart @@ -254,7 +254,7 @@ class _SmartEditInputWidgetState extends State { onTap: () async { await openLearnMorePage(); }, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart index eab6c10fe3d5..8a4d16b53dd2 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart @@ -132,7 +132,7 @@ class EditorStyleCustomizer { fontSize + 8, fontSize + 4, fontSize + 2, - fontSize + fontSize, ]; return TextStyle( fontSize: fontSizes.elementAtOrNull(level - 1) ?? fontSize, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/export_page_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/export_page_widget.dart index 1da2e9da9927..c8609c114e1b 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/export_page_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/export_page_widget.dart @@ -31,7 +31,7 @@ class ExportPageWidget extends StatelessWidget { width: 100, height: 30, onPressed: onTap, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart index 202e820bb515..53d79ed67924 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart @@ -35,7 +35,7 @@ class DocumentMoreButton extends StatelessWidget { BlocProvider.value( value: context.read(), child: const FontSizeSwitcher(), - ) + ), ], ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/date_reference.dart b/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/date_reference.dart index 9f84abec9ad6..75ac0ead2893 100644 --- a/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/date_reference.dart +++ b/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/date_reference.dart @@ -124,7 +124,7 @@ class DateReferenceService { MentionBlockKeys.mention: { MentionBlockKeys.type: MentionType.date.name, MentionBlockKeys.date: date.toIso8601String(), - } + }, }, ); diff --git a/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/inline_page_reference.dart b/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/inline_page_reference.dart index 4657f4d46f00..0904105dbae0 100644 --- a/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/inline_page_reference.dart +++ b/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/inline_page_reference.dart @@ -109,7 +109,7 @@ class InlinePageReferenceService { MentionBlockKeys.mention: { MentionBlockKeys.type: MentionType.page.name, MentionBlockKeys.pageId: view.id, - } + }, }, ); diff --git a/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/reminder_reference.dart b/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/reminder_reference.dart index efbe880a8cbe..6b5f29af99f6 100644 --- a/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/reminder_reference.dart +++ b/frontend/appflowy_flutter/lib/plugins/inline_actions/handlers/reminder_reference.dart @@ -150,7 +150,7 @@ class ReminderReferenceService { MentionBlockKeys.type: MentionType.reminder.name, MentionBlockKeys.date: date.toIso8601String(), MentionBlockKeys.uid: reminder.id, - } + }, }, ); diff --git a/frontend/appflowy_flutter/lib/plugins/inline_actions/widgets/inline_actions_handler.dart b/frontend/appflowy_flutter/lib/plugins/inline_actions/widgets/inline_actions_handler.dart index af58ea17cc47..4d8a64e6dac4 100644 --- a/frontend/appflowy_flutter/lib/plugins/inline_actions/widgets/inline_actions_handler.dart +++ b/frontend/appflowy_flutter/lib/plugins/inline_actions/widgets/inline_actions_handler.dart @@ -226,7 +226,7 @@ class _InlineActionsHandlerState extends State { ![ ...moveKeys, LogicalKeyboardKey.arrowLeft, - LogicalKeyboardKey.arrowRight + LogicalKeyboardKey.arrowRight, ].contains(event.logicalKey)) { /// Prevents dismissal of context menu by notifying the parent /// that the selection change occurred from the handler. diff --git a/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart b/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart index 9b0631b9b035..2af389562dcf 100644 --- a/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart @@ -110,7 +110,7 @@ class _TrashPageState extends State { onTap: () => context.read().add(const TrashEvent.deleteAll()), ), - ) + ), ], ), ); diff --git a/frontend/appflowy_flutter/lib/startup/startup.dart b/frontend/appflowy_flutter/lib/startup/startup.dart index 37a6fa6bcb54..c6a939890c69 100644 --- a/frontend/appflowy_flutter/lib/startup/startup.dart +++ b/frontend/appflowy_flutter/lib/startup/startup.dart @@ -75,7 +75,7 @@ class FlowyRunner { InitSupabaseTask(), InitAppFlowyCloudTask(), const InitAppWidgetTask(), - const InitPlatformServiceTask() + const InitPlatformServiceTask(), ], ], ); diff --git a/frontend/appflowy_flutter/lib/user/application/auth/af_cloud_auth_service.dart b/frontend/appflowy_flutter/lib/user/application/auth/af_cloud_auth_service.dart index 6f1988e67f19..9e08959e6da6 100644 --- a/frontend/appflowy_flutter/lib/user/application/auth/af_cloud_auth_service.dart +++ b/frontend/appflowy_flutter/lib/user/application/auth/af_cloud_auth_service.dart @@ -100,7 +100,7 @@ class AFCloudAuthService implements AuthService { authType: AuthTypePB.AFCloud, map: { AuthServiceMapKeys.signInURL: uri.toString(), - AuthServiceMapKeys.deviceId: deviceId + AuthServiceMapKeys.deviceId: deviceId, }, ); final result = await UserEventOauthSignIn(payload) diff --git a/frontend/appflowy_flutter/lib/user/application/auth/supabase_auth_service.dart b/frontend/appflowy_flutter/lib/user/application/auth/supabase_auth_service.dart index ad6021aef279..0263f7bcaffe 100644 --- a/frontend/appflowy_flutter/lib/user/application/auth/supabase_auth_service.dart +++ b/frontend/appflowy_flutter/lib/user/application/auth/supabase_auth_service.dart @@ -97,7 +97,7 @@ class SupabaseAuthService implements AuthService { map: { AuthServiceMapKeys.uuid: userId, AuthServiceMapKeys.email: userEmail, - AuthServiceMapKeys.deviceId: await getDeviceId() + AuthServiceMapKeys.deviceId: await getDeviceId(), }, ); }, @@ -140,7 +140,7 @@ class SupabaseAuthService implements AuthService { map: { AuthServiceMapKeys.uuid: userId, AuthServiceMapKeys.email: userEmail, - AuthServiceMapKeys.deviceId: await getDeviceId() + AuthServiceMapKeys.deviceId: await getDeviceId(), }, ); }, diff --git a/frontend/appflowy_flutter/lib/user/application/auth/supabase_mock_auth_service.dart b/frontend/appflowy_flutter/lib/user/application/auth/supabase_mock_auth_service.dart index 20509f346e31..5457cfc5a4a1 100644 --- a/frontend/appflowy_flutter/lib/user/application/auth/supabase_mock_auth_service.dart +++ b/frontend/appflowy_flutter/lib/user/application/auth/supabase_mock_auth_service.dart @@ -61,7 +61,7 @@ class MockAuthService implements AuthService { map: { AuthServiceMapKeys.uuid: uuid, AuthServiceMapKeys.email: email, - AuthServiceMapKeys.deviceId: 'MockDeviceId' + AuthServiceMapKeys.deviceId: 'MockDeviceId', }, ); diff --git a/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart b/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart index 9e74e2c0ae1a..52f2d498615b 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart @@ -48,7 +48,7 @@ class HistoricalUserList extends StatelessWidget { }, itemCount: state.historicalUsers.length, ), - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/user/presentation/screens/sign_up_screen.dart b/frontend/appflowy_flutter/lib/user/presentation/screens/sign_up_screen.dart index 97b66e6d2faf..3995af40c0b9 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/screens/sign_up_screen.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/screens/sign_up_screen.dart @@ -81,7 +81,7 @@ class SignUpForm extends StatelessWidget { if (context.read().state.isSubmitting) ...[ const SizedBox(height: 8), const LinearProgressIndicator(value: null), - ] + ], ], ), ); diff --git a/frontend/appflowy_flutter/lib/user/presentation/screens/workspace_error_screen.dart b/frontend/appflowy_flutter/lib/user/presentation/screens/workspace_error_screen.dart index 7c3219ded919..948914867ad5 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/screens/workspace_error_screen.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/screens/workspace_error_screen.dart @@ -129,7 +129,7 @@ class WorkspaceErrorDescription extends StatelessWidget { "Error code: ${state.initialError.code.value.toString()}", fontSize: 12, maxLines: 1, - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/user/presentation/widgets/folder_widget.dart b/frontend/appflowy_flutter/lib/user/presentation/widgets/folder_widget.dart index 0945c2f69cf9..4896e63c5afa 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/widgets/folder_widget.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/widgets/folder_widget.dart @@ -185,7 +185,7 @@ class CreateFolderWidgetState extends State { } }, ), - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/favorite_folder.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/favorite_folder.dart index a064f567004c..5e99051cce6b 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/favorite_folder.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/favorite_folder.dart @@ -63,7 +63,7 @@ class FavoriteFolder extends StatelessWidget { onTertiarySelected: (view) => context.read().openTab(view), ), - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart index 0b07ceb12b73..b272c0557ede 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart @@ -62,7 +62,7 @@ class PersonalFolder extends StatelessWidget { onTertiarySelected: (view) => context.read().openTab(view), ), - ) + ), ], ); }, @@ -136,7 +136,7 @@ class _PersonalFolderHeaderState extends State { ); }, ), - ] + ], ], ), ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar.dart index 55c491a120c3..d4064f19082d 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar.dart @@ -51,7 +51,7 @@ class HomeSideBar extends StatelessWidget { ), BlocProvider( create: (_) => FavoriteBloc()..add(const FavoriteEvent.initial()), - ) + ), ], child: MultiBlocListener( listeners: [ diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart index 6a49b6a5bdd7..91fce938ebf0 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart @@ -324,7 +324,7 @@ class _SingleInnerViewItemState extends State { widget.view.name, overflow: TextOverflow.ellipsis, ), - ) + ), ]; // hover action diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/settings_dialog.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/settings_dialog.dart index 82f096347f90..7fec6a28b3bf 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/settings_dialog.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/settings_dialog.dart @@ -76,7 +76,7 @@ class SettingsDialog extends StatelessWidget { context.read().state.page, context.read().state.userProfile, ), - ) + ), ], ), ), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_lists.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_lists.dart index 6cb3681206cd..6cf6f234864f 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_lists.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_lists.dart @@ -373,7 +373,7 @@ final Map smileys = Map.fromIterables([ 'Rescue Worker’s Helmet', 'Lipstick', 'Ring', - 'Briefcase' + 'Briefcase', ], [ 'πŸ˜€', 'πŸ˜ƒ', @@ -734,7 +734,7 @@ final Map smileys = Map.fromIterables([ 'β›‘', 'πŸ’„', 'πŸ’', - 'πŸ’Ό' + 'πŸ’Ό', ]); /// Map of all possible emojis along with their names in [Category.ANIMALS] @@ -919,7 +919,7 @@ final Map animals = Map.fromIterables([ 'Christmas Tree', 'Sparkles', 'Tanabata Tree', - 'Pine Decoration' + 'Pine Decoration', ], [ '🐢', '🐱', @@ -1101,7 +1101,7 @@ final Map animals = Map.fromIterables([ 'πŸŽ„', '✨', 'πŸŽ‹', - '🎍' + '🎍', ]); /// Map of all possible emojis along with their names in [Category.FOODS] @@ -1210,7 +1210,7 @@ final Map foods = Map.fromIterables([ 'Chopsticks', 'Fork and Knife With Plate', 'Fork and Knife', - 'Spoon' + 'Spoon', ], [ 'πŸ‡', '🍈', @@ -1316,7 +1316,7 @@ final Map foods = Map.fromIterables([ 'πŸ₯’', '🍽', '🍴', - 'πŸ₯„' + 'πŸ₯„', ]); /// Map of all possible emojis along with their names in [Category.TRAVEL] @@ -1445,7 +1445,7 @@ final Map travel = Map.fromIterables([ 'Passport Control', 'Customs', 'Baggage Claim', - 'Left Luggage' + 'Left Luggage', ], [ '🚣', 'πŸ—Ύ', @@ -1571,7 +1571,7 @@ final Map travel = Map.fromIterables([ 'πŸ›‚', 'πŸ›ƒ', 'πŸ›„', - 'πŸ›…' + 'πŸ›…', ]); /// Map of all possible emojis along with their names in [Category.ACTIVITIES] @@ -1667,7 +1667,7 @@ final Map activities = Map.fromIterables([ 'Violin', 'Drum', 'Clapper Board', - 'Bow and Arrow' + 'Bow and Arrow', ], [ 'πŸ•΄', 'πŸ§—', @@ -1760,7 +1760,7 @@ final Map activities = Map.fromIterables([ '🎻', 'πŸ₯', '🎬', - '🏹' + '🏹', ]); /// Map of all possible emojis along with their names in [Category.OBJECTS] @@ -1962,7 +1962,7 @@ final Map objects = Map.fromIterables([ 'Coffin', 'Funeral Urn', 'Moai', - 'Potable Water' + 'Potable Water', ], [ 'πŸ’Œ', 'πŸ•³', @@ -2161,7 +2161,7 @@ final Map objects = Map.fromIterables([ '⚰', '⚱', 'πŸ—Ώ', - '🚰' + '🚰', ]); /// Map of all possible emojis along with their names in [Category.SYMBOLS] @@ -2424,7 +2424,7 @@ final Map symbols = Map.fromIterables([ 'Red Triangle Pointed Down', 'Diamond With a Dot', 'White Square Button', - 'Black Square Button' + 'Black Square Button', ], [ 'πŸ’˜', 'πŸ’', @@ -2684,7 +2684,7 @@ final Map symbols = Map.fromIterables([ 'πŸ”»', 'πŸ’ ', 'πŸ”³', - 'πŸ”²' + 'πŸ”²', ]); /// Map of all possible emojis along with their names in [Category.FLAGS] @@ -2953,7 +2953,7 @@ final Map flags = Map.fromIterables([ 'Flag: Mayotte', 'Flag: South Africa', 'Flag: Zambia', - 'Flag: Zimbabwe' + 'Flag: Zimbabwe', ], [ '🏁', '🚩', @@ -3219,5 +3219,5 @@ final Map flags = Map.fromIterables([ 'πŸ‡ΎπŸ‡Ή', 'πŸ‡ΏπŸ‡¦', 'πŸ‡ΏπŸ‡²', - 'πŸ‡ΏπŸ‡Ό' + 'πŸ‡ΏπŸ‡Ό', ]); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_picker.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_picker.dart index a1e4d6007190..0dd72ad54733 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_picker.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/emoji_picker/src/emoji_picker.dart @@ -226,7 +226,7 @@ class EmojiPickerState extends State { EmojiCategoryGroup( EmojiCategory.FLAGS, await _getAvailableEmojis(emoji_list.flags, title: 'flags'), - ) + ), ]); } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/setting_third_party_login.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/setting_third_party_login.dart index b00cac5e618a..e823fa755054 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/setting_third_party_login.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/setting_third_party_login.dart @@ -49,7 +49,7 @@ class SettingThirdPartyLogin extends StatelessWidget { fontSize: 16, ), const HSpace(6), - indicator + indicator, ], ), const VSpace(6), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/color_scheme.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/color_scheme.dart index 88b3792f5a65..20d0a12727c9 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/color_scheme.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/color_scheme.dart @@ -122,7 +122,7 @@ class ColorSchemeUploadPopover extends StatelessWidget { false, ), ) - .toList() + .toList(), ], ], ), @@ -168,7 +168,7 @@ class ColorSchemeUploadPopover extends StatelessWidget { width: 20, onPressed: () => bloc.add(DynamicPluginEvent.removePlugin(name: theme)), - ) + ), ], ), ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/direction_setting.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/direction_setting.dart index 134af35e2e1b..561b6dc5553e 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/direction_setting.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/direction_setting.dart @@ -34,7 +34,7 @@ class LayoutDirectionSetting extends StatelessWidget { _layoutDirectionItemButton(context, LayoutDirection.rtlLayout), ], ), - ) + ), ], ); } @@ -98,7 +98,7 @@ class TextDirectionSetting extends StatelessWidget { _textDirectionItemButton(context, AppFlowyTextDirection.auto), ], ), - ) + ), ], ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/font_family_setting.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/font_family_setting.dart index fa098069716c..dadafe51d4f7 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/font_family_setting.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance/font_family_setting.dart @@ -45,7 +45,7 @@ class _ThemeFontFamilySettingState extends State { trailing: [ FontFamilyDropDown( currentFontFamily: widget.currentFontFamily, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_customize_shortcuts_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_customize_shortcuts_view.dart index 7938c75bc8d9..84da378a2ec5 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_customize_shortcuts_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_customize_shortcuts_view.dart @@ -127,12 +127,12 @@ class ShortcutsListTile extends StatelessWidget { onPressed: () { showKeyListenerDialog(context); }, - ) + ), ], ), Divider( color: Theme.of(context).dividerColor, - ) + ), ], ); } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart index 976f813a5115..5200b7062362 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart @@ -2,18 +2,19 @@ import 'dart:io'; import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/entry_point.dart'; -import 'package:flowy_infra/file_picker/file_picker_service.dart'; import 'package:appflowy/workspace/application/settings/settings_location_cubit.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flowy_infra/file_picker/file_picker_service.dart'; +import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flowy_infra_ui/widget/buttons/secondary_button.dart'; import 'package:flowy_infra_ui/widget/flowy_tooltip.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:styled_widget/styled_widget.dart'; import 'package:url_launcher/url_launcher.dart'; + import '../../../../generated/locale_keys.g.dart'; import '../../../../startup/launch_configuration.dart'; import '../../../../startup/startup.dart'; @@ -172,7 +173,10 @@ class _ChangeStoragePathButtonState extends State<_ChangeStoragePathButton> { onPressed: () async { // pick the new directory and reload app final path = await getIt().getDirectoryPath(); - if (path == null || !mounted || widget.usingPath == path) { + if (path == null || widget.usingPath == path) { + return; + } + if (!mounted) { return; } await context.read().setCustomPath(path); @@ -245,7 +249,10 @@ class _RecoverDefaultStorageButtonState // reset to the default directory and reload app final directory = await appFlowyApplicationDataDirectory(); final path = directory.path; - if (!mounted || widget.usingPath == path) { + if (widget.usingPath == path) { + return; + } + if (!mounted) { return; } await context diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_exporter_widget.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_exporter_widget.dart index ee4a88d1c6e9..6dd5eb259607 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_exporter_widget.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_exporter_widget.dart @@ -2,21 +2,22 @@ import 'dart:io'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/workspace/application/export/document_exporter.dart'; -import 'package:appflowy/workspace/presentation/home/toast.dart'; -import 'package:appflowy_backend/dispatch/dispatch.dart'; -import 'package:flowy_infra/file_picker/file_picker_service.dart'; import 'package:appflowy/workspace/application/settings/settings_file_exporter_cubit.dart'; import 'package:appflowy/workspace/application/settings/share/export_service.dart'; +import 'package:appflowy/workspace/presentation/home/toast.dart'; +import 'package:appflowy_backend/dispatch/dispatch.dart'; import 'package:appflowy_backend/log.dart'; +import 'package:appflowy_backend/protobuf/flowy-error/errors.pbserver.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; +import 'package:appflowy_backend/protobuf/flowy-folder2/workspace.pb.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:easy_localization/easy_localization.dart'; +import 'package:flowy_infra/file_picker/file_picker_service.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart' hide WidgetBuilder; -import 'package:appflowy_backend/protobuf/flowy-error/errors.pbserver.dart'; -import 'package:appflowy_backend/protobuf/flowy-folder2/workspace.pb.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:path/path.dart' as p; + import '../../../../generated/locale_keys.g.dart'; class FileExporterWidget extends StatefulWidget { @@ -69,13 +70,13 @@ class _FileExporterWidgetState extends State { .selectOrDeselectAllItems(); }, ), - ) + ), ], ), const VSpace(8), const Expanded(child: _ExpandedList()), const VSpace(8), - _buildButtons() + _buildButtons(), ], ), ); @@ -107,18 +108,20 @@ class _FileExporterWidgetState extends State { final views = cubit!.state.selectedViews; final result = await _AppFlowyFileExporter.exportToPath(exportPath, views); - if (result.$1 && mounted) { - // success - showSnackBarMessage( - context, - LocaleKeys.settings_files_exportFileSuccess.tr(), - ); - } else { - showSnackBarMessage( - context, - LocaleKeys.settings_files_exportFileFail.tr() + - result.$2.join('\n'), - ); + if (mounted) { + if (result.$1) { + // success + showSnackBarMessage( + context, + LocaleKeys.settings_files_exportFileSuccess.tr(), + ); + } else { + showSnackBarMessage( + context, + LocaleKeys.settings_files_exportFileFail.tr() + + result.$2.join('\n'), + ); + } } } else { showSnackBarMessage( diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_system_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_system_view.dart index fe13da536065..4adac5da0fcc 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_system_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_system_view.dart @@ -16,7 +16,7 @@ class _SettingsFileSystemViewState extends State { late final _items = [ const SettingsFileLocationCustomizer(), // disable export data for v0.2.0 in release mode. - if (kDebugMode) const SettingsExportFileWidget() + if (kDebugMode) const SettingsExportFileWidget(), ]; @override diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_notifications_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_notifications_view.dart index 3b9a40478e72..0d74175f1a45 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_notifications_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_notifications_view.dart @@ -33,7 +33,7 @@ class SettingsNotificationsView extends StatelessWidget { .read() .toggleNotificationsEnabled(); }, - ) + ), ], ), ], diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart index ee15bfbc318e..cf045d41b77f 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart @@ -56,7 +56,7 @@ class SettingsUserView extends StatelessWidget { _buildUserIconSetting(context), if (isCloudEnabled && user.authType != AuthTypePB.Local) ...[ const VSpace(12), - UserEmailInput(user.email) + UserEmailInput(user.email), ], const VSpace(12), _renderCurrentOpenaiKey(context), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/sync_setting_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/sync_setting_view.dart index 18bac66a11a9..f362a8e515ec 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/sync_setting_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/sync_setting_view.dart @@ -87,7 +87,7 @@ class EnableEncrypt extends StatelessWidget { .add(CloudSettingEvent.enableEncrypt(value)); }, value: state.config.enableEncrypt, - ) + ), ], ), Column( @@ -128,7 +128,7 @@ class EnableEncrypt extends StatelessWidget { ), ), ], - ) + ), ], ); }, @@ -154,7 +154,7 @@ class EnableSync extends StatelessWidget { ); }, value: state.config.enableSync, - ) + ), ], ); }, diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/dialogs.dart b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/dialogs.dart index 4a41460942d8..fc4778fe9f68 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/dialogs.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/dialogs.dart @@ -88,7 +88,7 @@ class _NavigatorTextFieldDialogState extends State { } Navigator.of(context).pop(); }, - ) + ), ], ), ); @@ -149,8 +149,8 @@ class _CreateFlowyAlertDialog extends State { widget.cancel?.call(); Navigator.of(context).pop(); }, - ) - ] + ), + ], ], ), ); @@ -209,7 +209,7 @@ class NavigatorOkCancelDialog extends StatelessWidget { }, okTitle: okTitle?.toUpperCase(), cancelTitle: cancelTitle?.toUpperCase(), - ) + ), ], ), ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/pop_up_action.dart b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/pop_up_action.dart index 6fc14bda6472..182cab88f172 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/pop_up_action.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/pop_up_action.dart @@ -235,7 +235,7 @@ class HoverButton extends StatelessWidget { children: [ if (leftIcon != null) ...[ leftIcon!, - HSpace(ActionListSizes.itemHPadding) + HSpace(ActionListSizes.itemHPadding), ], Expanded( child: FlowyText.medium( diff --git a/frontend/appflowy_flutter/macos/Runner.xcodeproj/project.pbxproj b/frontend/appflowy_flutter/macos/Runner.xcodeproj/project.pbxproj index e34603ede3cf..0357a297b3e9 100644 --- a/frontend/appflowy_flutter/macos/Runner.xcodeproj/project.pbxproj +++ b/frontend/appflowy_flutter/macos/Runner.xcodeproj/project.pbxproj @@ -206,7 +206,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { diff --git a/frontend/appflowy_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/frontend/appflowy_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 656a4d8b2a81..10d57fd28e3a 100644 --- a/frontend/appflowy_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/frontend/appflowy_flutter/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ { _rootEntry.addEntry(context, this, newEntry, widget.asBarrier); } - void close() { + void close({ + bool notify = true, + }) { if (_rootEntry.contains(this)) { _rootEntry.removeEntry(this); - widget.onClose?.call(); + if (notify) { + widget.onClose?.call(); + } } } @@ -193,7 +197,7 @@ class PopoverState extends State { @override void deactivate() { - close(); + close(notify: false); super.deactivate(); } diff --git a/frontend/appflowy_flutter/packages/flowy_infra/pubspec.yaml b/frontend/appflowy_flutter/packages/flowy_infra/pubspec.yaml index 59de25ceb1c5..c812fcde8312 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra/pubspec.yaml +++ b/frontend/appflowy_flutter/packages/flowy_infra/pubspec.yaml @@ -19,7 +19,7 @@ dependencies: uuid: ">=2.2.2" bloc: ^8.1.2 freezed_annotation: ^2.1.0 - file_picker: ^5.3.1 + file_picker: ^6.1.1 file: ^6.1.4 dev_dependencies: diff --git a/frontend/appflowy_flutter/pubspec.lock b/frontend/appflowy_flutter/pubspec.lock index 3ae7a7b31887..05d56cb48732 100644 --- a/frontend/appflowy_flutter/pubspec.lock +++ b/frontend/appflowy_flutter/pubspec.lock @@ -54,11 +54,11 @@ packages: dependency: "direct main" description: path: "." - ref: "009115d" - resolved-ref: "009115da836616e9fb2d0abd327753809a78b983" + ref: "4f073f3" + resolved-ref: "4f073f3381a05a2379144f282c6f65462c4ce9c6" url: "https://github.com/AppFlowy-IO/appflowy-editor.git" source: git - version: "1.5.2" + version: "2.0.0-beta.1" appflowy_popover: dependency: "direct main" description: @@ -262,10 +262,10 @@ packages: dependency: "direct main" description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" connectivity_plus: dependency: "direct main" description: @@ -402,15 +402,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.0.2" - emoji_mart: - dependency: "direct main" - description: - path: "." - ref: "067f718" - resolved-ref: "067f7188965c8fcb7be02ce174ce2b6757f288ee" - url: "https://github.com/LucasXu0/emoji_mart.git" - source: git - version: "0.0.1" envied: dependency: "direct main" description: @@ -471,10 +462,10 @@ packages: dependency: transitive description: name: file_picker - sha256: "9d6e95ec73abbd31ec54d0e0df8a961017e165aba1395e462e5b31ea0c165daf" + sha256: "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6" url: "https://pub.dev" source: hosted - version: "5.3.1" + version: "6.1.1" file_selector_linux: dependency: transitive description: @@ -584,6 +575,15 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_emoji_mart: + dependency: "direct main" + description: + path: "." + ref: "140b530" + resolved-ref: "140b53091ce7ad971e97c1d5a53fe0875596326d" + url: "https://github.com/LucasXu0/emoji_mart.git" + source: git + version: "1.0.2" flutter_lints: dependency: "direct dev" description: @@ -894,10 +894,10 @@ packages: dependency: "direct main" description: name: intl - sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 + sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" url: "https://pub.dev" source: hosted - version: "0.18.0" + version: "0.18.1" intl_utils: dependency: transitive description: @@ -1038,18 +1038,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -1214,10 +1214,10 @@ packages: dependency: transitive description: name: path_provider_windows - sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6 + sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.7" percent_indicator: dependency: "direct main" description: @@ -1406,10 +1406,10 @@ packages: dependency: transitive description: name: rich_clipboard_windows - sha256: fa2a28e75ce4bcc9efc6d5d0e9788b76716cdaf3b7063c141fe8af12a315f414 + sha256: "633198bcd74642bb03c4a628c7e350ee18bb391cd8c6132152f7c97ab250e901" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.0.3" run_with_network_images: dependency: "direct dev" description: @@ -1611,10 +1611,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" sqflite: dependency: transitive description: @@ -1756,26 +1756,26 @@ packages: dependency: transitive description: name: test - sha256: "3dac9aecf2c3991d09b9cdde4f98ded7b30804a88a0d7e4e7e1678e78d6b97f4" + sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46" url: "https://pub.dev" source: hosted - version: "1.24.1" + version: "1.24.3" test_api: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" test_core: dependency: transitive description: name: test_core - sha256: "5138dbffb77b2289ecb12b81c11ba46036590b72a64a7a90d6ffb880f1a29e93" + sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.5.3" textfield_tags: dependency: "direct main" description: @@ -1989,10 +1989,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6deed8ed625c52864792459709183da231ebf66ff0cf09e69b573227c377efe + sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f url: "https://pub.dev" source: hosted - version: "11.3.0" + version: "11.7.1" watcher: dependency: transitive description: @@ -2001,6 +2001,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -2061,18 +2069,18 @@ packages: dependency: transitive description: name: win32 - sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c" + sha256: f2add6fa510d3ae152903412227bda57d0d5a8da61d2c39c1fb022c9429a41c0 url: "https://pub.dev" source: hosted - version: "4.1.4" + version: "5.0.6" win32_registry: dependency: transitive description: name: win32_registry - sha256: "1c52f994bdccb77103a6231ad4ea331a244dbcef5d1f37d8462f713143b0bfae" + sha256: e4506d60b7244251bc59df15656a3093501c37fb5af02105a944d73eb95be4c9 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" window_manager: dependency: "direct main" description: @@ -2114,5 +2122,5 @@ packages: source: hosted version: "1.1.1" sdks: - dart: ">=3.0.0 <4.0.0" - flutter: ">=3.10.1" + dart: ">=3.1.5 <4.0.0" + flutter: ">=3.13.0" diff --git a/frontend/appflowy_flutter/pubspec.yaml b/frontend/appflowy_flutter/pubspec.yaml index 3c86e546f3b6..b15ccd5c0444 100644 --- a/frontend/appflowy_flutter/pubspec.yaml +++ b/frontend/appflowy_flutter/pubspec.yaml @@ -18,7 +18,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 0.3.8 environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ">=3.1.5 <4.0.0" # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -47,7 +47,7 @@ dependencies: appflowy_editor: git: url: https://github.com/AppFlowy-IO/appflowy-editor.git - ref: 009115d + ref: 4f073f3 appflowy_popover: path: packages/appflowy_popover @@ -111,10 +111,10 @@ dependencies: go_router: ^10.1.2 string_validator: ^1.0.0 unsplash_client: ^2.1.1 - emoji_mart: + flutter_emoji_mart: git: url: https://github.com/LucasXu0/emoji_mart.git - ref: "067f718" + ref: "140b530" # Notifications # TODO: Consider implementing custom package diff --git a/frontend/appflowy_flutter/test/bloc_test/shortcuts_test/shortcuts_cubit_test.dart b/frontend/appflowy_flutter/test/bloc_test/shortcuts_test/shortcuts_cubit_test.dart index 3d88d5fbe503..1b896cbd3dd3 100644 --- a/frontend/appflowy_flutter/test/bloc_test/shortcuts_test/shortcuts_cubit_test.dart +++ b/frontend/appflowy_flutter/test/bloc_test/shortcuts_test/shortcuts_cubit_test.dart @@ -58,7 +58,7 @@ void main() { expect: () => [ const ShortcutsState(status: ShortcutsStatus.updating), isA() - .having((w) => w.status, 'status', ShortcutsStatus.failure) + .having((w) => w.status, 'status', ShortcutsStatus.failure), ], ); @@ -101,7 +101,7 @@ void main() { expect: () => [ const ShortcutsState(status: ShortcutsStatus.updating), isA() - .having((w) => w.status, 'status', ShortcutsStatus.failure) + .having((w) => w.status, 'status', ShortcutsStatus.failure), ], ); @@ -112,7 +112,7 @@ void main() { expect: () => [ const ShortcutsState(status: ShortcutsStatus.updating), isA() - .having((w) => w.status, 'status', ShortcutsStatus.success) + .having((w) => w.status, 'status', ShortcutsStatus.success), ], ); }); @@ -140,7 +140,7 @@ void main() { expect: () => [ const ShortcutsState(status: ShortcutsStatus.updating), isA() - .having((w) => w.status, 'status', ShortcutsStatus.failure) + .having((w) => w.status, 'status', ShortcutsStatus.failure), ], ); diff --git a/frontend/appflowy_flutter/test/unit_test/editor/transaction_adapter_test.dart b/frontend/appflowy_flutter/test/unit_test/editor/transaction_adapter_test.dart index 3649a3b6139c..7f25a55353c9 100644 --- a/frontend/appflowy_flutter/test/unit_test/editor/transaction_adapter_test.dart +++ b/frontend/appflowy_flutter/test/unit_test/editor/transaction_adapter_test.dart @@ -108,7 +108,7 @@ void main() { root: Node( type: 'page', children: [ - paragraphNode(children: [paragraphNode(text: '1')]) + paragraphNode(children: [paragraphNode(text: '1')]), ], ), ); diff --git a/frontend/rust-lib/Cargo.lock b/frontend/rust-lib/Cargo.lock index b3d42fb21c83..7770891ec326 100644 --- a/frontend/rust-lib/Cargo.lock +++ b/frontend/rust-lib/Cargo.lock @@ -467,7 +467,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" dependencies = [ "borsh-derive", - "hashbrown 0.12.3", + "hashbrown 0.13.2", ] [[package]] @@ -1150,7 +1150,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.8.0", + "phf 0.11.2", "smallvec", ] @@ -2522,6 +2522,15 @@ dependencies = [ "ahash 0.7.6", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] + [[package]] name = "hashbrown" version = "0.14.0" @@ -3648,7 +3657,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" dependencies = [ - "phf_macros", + "phf_macros 0.8.0", "phf_shared 0.8.0", "proc-macro-hack", ] @@ -3668,6 +3677,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ + "phf_macros 0.11.2", "phf_shared 0.11.2", ] @@ -3735,6 +3745,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.31", +] + [[package]] name = "phf_shared" version = "0.8.0" @@ -3938,7 +3961,7 @@ checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac" dependencies = [ "bytes", "heck 0.4.1", - "itertools 0.10.5", + "itertools 0.11.0", "log", "multimap", "once_cell", @@ -3959,7 +3982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.11.0", "proc-macro2", "quote", "syn 2.0.31", diff --git a/frontend/scripts/code_generation/freezed/generate_freezed.sh b/frontend/scripts/code_generation/freezed/generate_freezed.sh index 24e4e55fa3bc..1cf5f0fe497e 100755 --- a/frontend/scripts/code_generation/freezed/generate_freezed.sh +++ b/frontend/scripts/code_generation/freezed/generate_freezed.sh @@ -4,7 +4,7 @@ no_pub_get=false while getopts 's' flag; do case "${flag}" in - s) no_pub_get=true ;; + s) no_pub_get=true ;; esac done @@ -23,7 +23,7 @@ if [ "$no_pub_get" = false ]; then flutter packages pub get >/dev/null 2>&1 fi -dart run build_runner clean && dart run build_runner build -d +dart run build_runner build -d echo "Done generating files for appflowy_flutter" echo "Generating files for packages" @@ -39,7 +39,7 @@ for d in */; do if [ "$no_pub_get" = false ]; then flutter packages pub get >/dev/null 2>&1 fi - dart run build_runner clean && dart run build_runner build -d + dart run build_runner build -d echo "Done running build command in $d" else echo "No pubspec.yaml found in $d, it can\'t be a Dart project. Skipping." diff --git a/frontend/scripts/docker-buildfiles/Dockerfile b/frontend/scripts/docker-buildfiles/Dockerfile index eecf5fd48596..15a4d2bd58b7 100644 --- a/frontend/scripts/docker-buildfiles/Dockerfile +++ b/frontend/scripts/docker-buildfiles/Dockerfile @@ -39,7 +39,7 @@ RUN source ~/.cargo/env && \ RUN sudo pacman -S --noconfirm git tar gtk3 RUN curl -sSfL \ --output flutter.tar.xz \ - https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.10.1-stable.tar.xz && \ + https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.13.9-stable.tar.xz && \ tar -xf flutter.tar.xz && \ rm flutter.tar.xz RUN flutter config --enable-linux-desktop diff --git a/frontend/scripts/install_dev_env/install_ios.sh b/frontend/scripts/install_dev_env/install_ios.sh index bffa905a76e3..5fc820d5b91a 100644 --- a/frontend/scripts/install_dev_env/install_ios.sh +++ b/frontend/scripts/install_dev_env/install_ios.sh @@ -44,9 +44,9 @@ printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oE 'Flutter [^ ]+' | grep -oE '[^ ]+$') -# Check if the current version is 3.10.1 -if [ "$FLUTTER_VERSION" = "3.10.1" ]; then - echo "Flutter version is already 3.10.1" +# Check if the current version is 3.13.9 +if [ "$FLUTTER_VERSION" = "3.13.9" ]; then + echo "Flutter version is already 3.13.9" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -55,12 +55,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.10.1 of Flutter - git checkout 3.10.1 + # Use git to checkout version 3.13.9 of Flutter + git checkout 3.13.9 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.10.1" + echo "Switched to Flutter version 3.13.9" fi # Enable linux desktop diff --git a/frontend/scripts/install_dev_env/install_linux.sh b/frontend/scripts/install_dev_env/install_linux.sh index ae874e6bb8fc..b7de2dbd64f1 100755 --- a/frontend/scripts/install_dev_env/install_linux.sh +++ b/frontend/scripts/install_dev_env/install_linux.sh @@ -38,9 +38,9 @@ fi printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oP 'Flutter \K\S+') -# Check if the current version is 3.10.1 -if [ "$FLUTTER_VERSION" = "3.10.1" ]; then - echo "Flutter version is already 3.10.1" +# Check if the current version is 3.13.9 +if [ "$FLUTTER_VERSION" = "3.13.9" ]; then + echo "Flutter version is already 3.13.9" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -49,12 +49,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.10.1 of Flutter - git checkout 3.10.1 + # Use git to checkout version 3.13.9 of Flutter + git checkout 3.13.9 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.10.1" + echo "Switched to Flutter version 3.13.9" fi # Enable linux desktop diff --git a/frontend/scripts/install_dev_env/install_macos.sh b/frontend/scripts/install_dev_env/install_macos.sh index c9cf2c6ccec2..32cb6c1af47b 100755 --- a/frontend/scripts/install_dev_env/install_macos.sh +++ b/frontend/scripts/install_dev_env/install_macos.sh @@ -41,9 +41,9 @@ printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oE 'Flutter [^ ]+' | grep -oE '[^ ]+$') -# Check if the current version is 3.10.1 -if [ "$FLUTTER_VERSION" = "3.10.1" ]; then - echo "Flutter version is already 3.10.1" +# Check if the current version is 3.13.9 +if [ "$FLUTTER_VERSION" = "3.13.9" ]; then + echo "Flutter version is already 3.13.9" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -52,12 +52,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.10.1 of Flutter - git checkout 3.10.1 + # Use git to checkout version 3.13.9 of Flutter + git checkout 3.13.9 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.10.1" + echo "Switched to Flutter version 3.13.9" fi # Enable linux desktop diff --git a/frontend/scripts/install_dev_env/install_windows.sh b/frontend/scripts/install_dev_env/install_windows.sh index cda76f9af04d..b04eeb7a78aa 100644 --- a/frontend/scripts/install_dev_env/install_windows.sh +++ b/frontend/scripts/install_dev_env/install_windows.sh @@ -48,9 +48,9 @@ fi printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oP 'Flutter \K\S+') -# Check if the current version is 3.10.1 -if [ "$FLUTTER_VERSION" = "3.10.1" ]; then - echo "Flutter version is already 3.10.1" +# Check if the current version is 3.13.9 +if [ "$FLUTTER_VERSION" = "3.13.9" ]; then + echo "Flutter version is already 3.13.9" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -59,12 +59,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.10.1 of Flutter - git checkout 3.10.1 + # Use git to checkout version 3.13.9 of Flutter + git checkout 3.13.9 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.10.1" + echo "Switched to Flutter version 3.13.9" fi # Add pub cache and cargo to PATH