mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: upgrade to flutter 3.19.0 (#4677)
* chore: upgrade to flutter 3.19.0 * chore: adjust to the latest flutter convention * chore: update CI flutter version * fix: flutter analyze * fix: flutter analyze * fix: flutter analyze * chore: fix docker build
This commit is contained in:
parent
b2e55c4e2e
commit
252699d249
12
.github/workflows/flutter_ci.yaml
vendored
12
.github/workflows/flutter_ci.yaml
vendored
@ -23,7 +23,7 @@ on:
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
FLUTTER_VERSION: "3.18.0-0.2.pre"
|
||||
FLUTTER_VERSION: "3.19.0"
|
||||
RUST_TOOLCHAIN: "1.75"
|
||||
CARGO_MAKE_VERSION: "0.36.6"
|
||||
|
||||
@ -76,7 +76,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
@ -157,7 +157,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
@ -260,7 +260,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
@ -334,7 +334,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
@ -425,7 +425,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
|
4
.github/workflows/mobile_ci.yaml
vendored
4
.github/workflows/mobile_ci.yaml
vendored
@ -18,7 +18,7 @@ on:
|
||||
- "!frontend/appflowy_tauri/**"
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.18.0-0.2.pre"
|
||||
FLUTTER_VERSION: "3.19.0"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
@ -57,7 +57,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
|
10
.github/workflows/release.yml
vendored
10
.github/workflows/release.yml
vendored
@ -6,7 +6,7 @@ on:
|
||||
- "*"
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.18.0-0.2.pre"
|
||||
FLUTTER_VERSION: "3.19.0"
|
||||
RUST_TOOLCHAIN: "1.75"
|
||||
|
||||
jobs:
|
||||
@ -57,7 +57,7 @@ jobs:
|
||||
- name: Install flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Install Rust toolchain
|
||||
@ -143,7 +143,7 @@ jobs:
|
||||
- name: Install flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Install Rust toolchain
|
||||
@ -243,7 +243,7 @@ jobs:
|
||||
- name: Install flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Install Rust toolchain
|
||||
@ -348,7 +348,7 @@ jobs:
|
||||
- name: Install flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Install Rust toolchain
|
||||
|
4
.github/workflows/rust_coverage.yml
vendored
4
.github/workflows/rust_coverage.yml
vendored
@ -10,7 +10,7 @@ on:
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
FLUTTER_VERSION: "3.18.0-0.2.pre"
|
||||
FLUTTER_VERSION: "3.19.0"
|
||||
RUST_TOOLCHAIN: "1.75"
|
||||
|
||||
jobs:
|
||||
@ -33,7 +33,7 @@ jobs:
|
||||
id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "beta"
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
|
@ -21,6 +21,6 @@
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>11.0</string>
|
||||
<string>12.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Uncomment this line to define a global platform for your project
|
||||
# platform :ios, '11.0'
|
||||
# platform :ios, '12.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
@ -169,8 +169,8 @@ SPEC CHECKSUMS:
|
||||
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
||||
file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de
|
||||
flowy_infra_ui: 0455e1fa8c51885aa1437848e361e99419f34ebc
|
||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||
fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c
|
||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||
fluttertoast: 31b00dabfa7fb7bacd9e7dbee580d7a2ff4bf265
|
||||
image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb
|
||||
image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425
|
||||
integration_test: 13825b8a9334a850581300559b8839134b124670
|
||||
@ -189,6 +189,6 @@ SPEC CHECKSUMS:
|
||||
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
|
||||
url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812
|
||||
|
||||
PODFILE CHECKSUM: 8c681999c7764593c94846b2a64b44d86f7a27ac
|
||||
PODFILE CHECKSUM: d94f9be27d1db182e9bc77d10f065555d518f127
|
||||
|
||||
COCOAPODS: 1.12.1
|
||||
COCOAPODS: 1.15.2
|
||||
|
@ -143,7 +143,7 @@
|
||||
97C146E61CF9000F007C117D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1430;
|
||||
LastUpgradeCheck = 1510;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
@ -330,7 +330,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@ -419,7 +419,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@ -468,7 +468,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1430"
|
||||
LastUpgradeVersion = "1510"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,19 +0,0 @@
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
extension RawKeyboardExtension on RawKeyboard {
|
||||
bool get isAltPressed => keysPressed.any(
|
||||
(key) => [
|
||||
LogicalKeyboardKey.alt,
|
||||
LogicalKeyboardKey.altLeft,
|
||||
LogicalKeyboardKey.altRight,
|
||||
].contains(key),
|
||||
);
|
||||
|
||||
bool get isControlPressed => keysPressed.any(
|
||||
(key) => [
|
||||
LogicalKeyboardKey.control,
|
||||
LogicalKeyboardKey.controlLeft,
|
||||
LogicalKeyboardKey.controlRight,
|
||||
].contains(key),
|
||||
);
|
||||
}
|
@ -113,7 +113,7 @@ class _QuickEditFieldState extends State<QuickEditField> {
|
||||
controller.text = fieldOptionValues.name;
|
||||
});
|
||||
} else {
|
||||
if (mounted) {
|
||||
if (context.mounted) {
|
||||
context.pop();
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ class _LanguageSettingGroupState extends State<LanguageSettingGroup> {
|
||||
final newLocale =
|
||||
await context.push<Locale>(LanguagePickerScreen.routeName);
|
||||
if (newLocale != null && newLocale != locale) {
|
||||
if (mounted) {
|
||||
if (context.mounted) {
|
||||
context
|
||||
.read<AppearanceSettingsCubit>()
|
||||
.setLocale(context, newLocale);
|
||||
|
@ -138,11 +138,10 @@ class _BoardColumnHeaderState extends State<BoardColumnHeader> {
|
||||
|
||||
Widget _buildTextField(BuildContext context) {
|
||||
return Expanded(
|
||||
child: RawKeyboardListener(
|
||||
child: KeyboardListener(
|
||||
focusNode: FocusNode(),
|
||||
onKey: (event) {
|
||||
if (event is RawKeyDownEvent &&
|
||||
[LogicalKeyboardKey.enter, LogicalKeyboardKey.escape]
|
||||
onKeyEvent: (event) {
|
||||
if ([LogicalKeyboardKey.enter, LogicalKeyboardKey.escape]
|
||||
.contains(event.logicalKey)) {
|
||||
_saveEdit();
|
||||
}
|
||||
|
@ -34,9 +34,8 @@ class _GridChecklistCellState extends State<ChecklistCellEditor> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
newTaskFocusNode = FocusNode(
|
||||
onKey: (node, event) {
|
||||
if (event is RawKeyDownEvent &&
|
||||
event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
onKeyEvent: (node, event) {
|
||||
if (event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
node.unfocus();
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
@ -170,9 +169,8 @@ class _ChecklistItemState extends State<ChecklistItem> {
|
||||
super.initState();
|
||||
_textController = TextEditingController(text: widget.task.data.name);
|
||||
_focusNode = FocusNode(
|
||||
onKey: (node, event) {
|
||||
if (event is RawKeyDownEvent &&
|
||||
event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
onKeyEvent: (node, event) {
|
||||
if (event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
node.unfocus();
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:appflowy/core/raw_keyboard_extension.dart';
|
||||
import 'package:appflowy/generated/flowy_svgs.g.dart';
|
||||
import 'package:appflowy/generated/locale_keys.g.dart';
|
||||
import 'package:appflowy/plugins/document/presentation/editor_plugins/actions/block_action_button.dart';
|
||||
@ -46,7 +45,7 @@ class BlockAddButton extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
onTap: () {
|
||||
final isAltPressed = RawKeyboard.instance.isAltPressed;
|
||||
final isAltPressed = HardwareKeyboard.instance.isAltPressed;
|
||||
|
||||
final transaction = editorState.transaction;
|
||||
|
||||
|
@ -79,7 +79,10 @@ Future<bool> inlinePageReferenceCommandHandler(
|
||||
}
|
||||
}
|
||||
|
||||
// ignore: use_build_context_synchronously
|
||||
if (!context.mounted) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final service = InlineActionsService(
|
||||
context: context,
|
||||
handlers: [
|
||||
|
@ -199,7 +199,7 @@ class ImagePlaceholderState extends State<ImagePlaceholder> {
|
||||
imageType = CustomImageType.internal;
|
||||
}
|
||||
|
||||
if (path == null && context.mounted) {
|
||||
if (mounted && path == null) {
|
||||
showSnackBarMessage(
|
||||
context,
|
||||
LocaleKeys.document_imageBlock_error_invalidImage.tr(),
|
||||
|
@ -196,12 +196,11 @@ class MathEquationBlockComponentWidgetState
|
||||
title: Text(
|
||||
LocaleKeys.document_plugins_mathEquation_editMathEquation.tr(),
|
||||
),
|
||||
content: RawKeyboardListener(
|
||||
content: KeyboardListener(
|
||||
focusNode: FocusNode(),
|
||||
onKey: (key) {
|
||||
if (key is! RawKeyDownEvent) return;
|
||||
onKeyEvent: (key) {
|
||||
if (key.logicalKey == LogicalKeyboardKey.enter &&
|
||||
!key.isShiftPressed) {
|
||||
!HardwareKeyboard.instance.isShiftPressed) {
|
||||
updateMathEquation(controller.text, context);
|
||||
} else if (key.logicalKey == LogicalKeyboardKey.escape) {
|
||||
dismiss(context);
|
||||
|
@ -1,6 +1,3 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'package:appflowy/generated/locale_keys.g.dart';
|
||||
import 'package:appflowy/plugins/inline_actions/inline_actions_menu.dart';
|
||||
import 'package:appflowy/plugins/inline_actions/inline_actions_result.dart';
|
||||
@ -10,6 +7,8 @@ import 'package:appflowy_editor/appflowy_editor.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flowy_infra_ui/style_widget/text.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
/// All heights are in physical pixels
|
||||
const double _groupTextHeight = 14; // 12 height + 2 bottom spacing
|
||||
@ -145,7 +144,7 @@ class _InlineActionsHandlerState extends State<InlineActionsHandler> {
|
||||
Widget build(BuildContext context) {
|
||||
return Focus(
|
||||
focusNode: _focusNode,
|
||||
onKey: onKey,
|
||||
onKeyEvent: onKeyEvent,
|
||||
child: Container(
|
||||
constraints: BoxConstraints.loose(const Size(200, _menuHeight)),
|
||||
decoration: BoxDecoration(
|
||||
@ -208,11 +207,7 @@ class _InlineActionsHandlerState extends State<InlineActionsHandler> {
|
||||
InlineActionsMenuItem handlerOf(int groupIndex, int handlerIndex) =>
|
||||
results[groupIndex].results[handlerIndex];
|
||||
|
||||
KeyEventResult onKey(focus, event) {
|
||||
if (event is! RawKeyDownEvent) {
|
||||
return KeyEventResult.ignored;
|
||||
}
|
||||
|
||||
KeyEventResult onKeyEvent(focus, KeyEvent event) {
|
||||
const moveKeys = [
|
||||
LogicalKeyboardKey.arrowUp,
|
||||
LogicalKeyboardKey.arrowDown,
|
||||
@ -348,7 +343,7 @@ class _InlineActionsHandlerState extends State<InlineActionsHandler> {
|
||||
|
||||
if (key == LogicalKeyboardKey.arrowUp ||
|
||||
(key == LogicalKeyboardKey.tab &&
|
||||
RawKeyboard.instance.isShiftPressed)) {
|
||||
HardwareKeyboard.instance.isShiftPressed)) {
|
||||
if (_selectedIndex == 0 && _selectedGroup > 0) {
|
||||
_selectedGroup -= 1;
|
||||
_selectedIndex = lengthOfGroup(_selectedGroup) - 1;
|
||||
|
@ -34,7 +34,7 @@ class MemoryLeakDetectorTask extends LaunchTask {
|
||||
),
|
||||
);
|
||||
|
||||
MemoryAllocations.instance.addListener((p0) {
|
||||
FlutterMemoryAllocations.instance.addListener((p0) {
|
||||
LeakTracking.dispatchObjectEvent(p0.toMap());
|
||||
});
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import 'package:appflowy/core/raw_keyboard_extension.dart';
|
||||
import 'package:appflowy/generated/locale_keys.g.dart';
|
||||
import 'package:appflowy/workspace/application/sidebar/folder/folder_bloc.dart';
|
||||
import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart';
|
||||
@ -54,7 +53,7 @@ class FavoriteFolder extends StatelessWidget {
|
||||
view: view,
|
||||
level: 0,
|
||||
onSelected: (view) {
|
||||
if (RawKeyboard.instance.isControlPressed) {
|
||||
if (HardwareKeyboard.instance.isControlPressed) {
|
||||
context.read<TabsBloc>().openTab(view);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import 'package:appflowy/core/raw_keyboard_extension.dart';
|
||||
import 'package:appflowy/generated/flowy_svgs.g.dart';
|
||||
import 'package:appflowy/generated/locale_keys.g.dart';
|
||||
import 'package:appflowy/workspace/application/menu/menu_bloc.dart';
|
||||
@ -53,7 +52,7 @@ class PersonalFolder extends StatelessWidget {
|
||||
leftPadding: 16,
|
||||
isFeedback: false,
|
||||
onSelected: (view) {
|
||||
if (RawKeyboard.instance.isControlPressed) {
|
||||
if (HardwareKeyboard.instance.isControlPressed) {
|
||||
context.read<TabsBloc>().openTab(view);
|
||||
}
|
||||
|
||||
|
@ -139,7 +139,7 @@ class _ImportAppFlowyDataButtonState extends State<ImportAppFlowyDataButton> {
|
||||
onTap: () async {
|
||||
final path =
|
||||
await getIt<FilePickerService>().getDirectoryPath();
|
||||
if (path == null || !mounted) {
|
||||
if (path == null || !context.mounted) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -145,12 +145,11 @@ class ShortcutsListTile extends StatelessWidget {
|
||||
final formKey = GlobalKey<FormState>();
|
||||
return AlertDialog(
|
||||
title: Text(LocaleKeys.settings_shortcuts_updateShortcutStep.tr()),
|
||||
content: RawKeyboardListener(
|
||||
content: KeyboardListener(
|
||||
focusNode: FocusNode(),
|
||||
onKey: (key) {
|
||||
if (key is! RawKeyDownEvent) return;
|
||||
onKeyEvent: (key) {
|
||||
if (key.logicalKey == LogicalKeyboardKey.enter &&
|
||||
!key.isShiftPressed) {
|
||||
!HardwareKeyboard.instance.isShiftPressed) {
|
||||
if (controller.text == shortcutEvent.command) {
|
||||
_dismiss(builderContext);
|
||||
}
|
||||
@ -161,7 +160,7 @@ class ShortcutsListTile extends StatelessWidget {
|
||||
} else if (key.logicalKey == LogicalKeyboardKey.escape) {
|
||||
_dismiss(builderContext);
|
||||
} else {
|
||||
//extract the keybinding command from the rawkeyevent.
|
||||
//extract the keybinding command from the key event.
|
||||
controller.text = key.convertToCommand;
|
||||
}
|
||||
},
|
||||
@ -207,19 +206,19 @@ class ShortcutsListTile extends StatelessWidget {
|
||||
void _dismiss(BuildContext context) => Navigator.of(context).pop();
|
||||
}
|
||||
|
||||
extension on RawKeyEvent {
|
||||
extension on KeyEvent {
|
||||
String get convertToCommand {
|
||||
String command = '';
|
||||
if (isAltPressed) {
|
||||
if (HardwareKeyboard.instance.isAltPressed) {
|
||||
command += 'alt+';
|
||||
}
|
||||
if (isControlPressed) {
|
||||
if (HardwareKeyboard.instance.isControlPressed) {
|
||||
command += 'ctrl+';
|
||||
}
|
||||
if (isShiftPressed) {
|
||||
if (HardwareKeyboard.instance.isShiftPressed) {
|
||||
command += 'shift+';
|
||||
}
|
||||
if (isMetaPressed) {
|
||||
if (HardwareKeyboard.instance.isMetaPressed) {
|
||||
command += 'meta+';
|
||||
}
|
||||
|
||||
|
@ -202,12 +202,12 @@ class _ChangeStoragePathButtonState extends State<_ChangeStoragePathButton> {
|
||||
if (path == null || widget.usingPath == path) {
|
||||
return;
|
||||
}
|
||||
if (!mounted) {
|
||||
if (!context.mounted) {
|
||||
return;
|
||||
}
|
||||
await context.read<SettingsLocationCubit>().setCustomPath(path);
|
||||
await runAppFlowy(isAnon: true);
|
||||
if (mounted) {
|
||||
if (context.mounted) {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
@ -272,14 +272,14 @@ class _RecoverDefaultStorageButtonState
|
||||
if (widget.usingPath == path) {
|
||||
return;
|
||||
}
|
||||
if (!mounted) {
|
||||
if (!context.mounted) {
|
||||
return;
|
||||
}
|
||||
await context
|
||||
.read<SettingsLocationCubit>()
|
||||
.resetDataStoragePathToApplicationDefault();
|
||||
await runAppFlowy(isAnon: true);
|
||||
if (mounted) {
|
||||
if (context.mounted) {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
|
@ -1,6 +1,3 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'package:appflowy/workspace/presentation/widgets/date_picker/appflowy_date_picker.dart';
|
||||
import 'package:appflowy/workspace/presentation/widgets/date_picker/utils/date_time_format_ext.dart';
|
||||
import 'package:appflowy/workspace/presentation/widgets/date_picker/utils/user_time_format_ext.dart';
|
||||
@ -9,6 +6,8 @@ import 'package:appflowy_backend/protobuf/flowy-user/date_time.pbenum.dart';
|
||||
import 'package:appflowy_editor/appflowy_editor.dart';
|
||||
import 'package:appflowy_popover/appflowy_popover.dart';
|
||||
import 'package:flowy_infra_ui/style_widget/decoration.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
/// Provides arguemnts for [AppFlowyDatePicker] when showing
|
||||
/// a [DatePickerMenu]
|
||||
@ -118,11 +117,10 @@ class DatePickerMenu extends DatePickerService {
|
||||
child: SizedBox(
|
||||
height: editorSize.height,
|
||||
width: editorSize.width,
|
||||
child: RawKeyboardListener(
|
||||
child: KeyboardListener(
|
||||
focusNode: FocusNode()..requestFocus(),
|
||||
onKey: (event) {
|
||||
if (event is RawKeyDownEvent &&
|
||||
event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
onKeyEvent: (event) {
|
||||
if (event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
dismiss();
|
||||
}
|
||||
},
|
||||
|
@ -1,86 +0,0 @@
|
||||
import 'package:appflowy/workspace/application/view/view_listener.dart';
|
||||
import 'package:appflowy/workspace/application/view/view_service.dart';
|
||||
import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
// TODO: Remove this file after the migration is done.
|
||||
class ViewLeftBarItem extends StatefulWidget {
|
||||
ViewLeftBarItem({
|
||||
required this.view,
|
||||
}) : super(key: ValueKey(view.id));
|
||||
|
||||
final ViewPB view;
|
||||
|
||||
@override
|
||||
State<ViewLeftBarItem> createState() => _ViewLeftBarItemState();
|
||||
}
|
||||
|
||||
class _ViewLeftBarItemState extends State<ViewLeftBarItem> {
|
||||
final _controller = TextEditingController();
|
||||
final _focusNode = FocusNode();
|
||||
late final ViewListener _viewListener;
|
||||
late ViewPB view;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
view = widget.view;
|
||||
_focusNode.addListener(_handleFocusChanged);
|
||||
_viewListener = ViewListener(viewId: widget.view.id);
|
||||
_viewListener.start(
|
||||
onViewUpdated: (updatedView) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
view = updatedView;
|
||||
_controller.text = view.name;
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
_controller.text = view.name;
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_controller.dispose();
|
||||
_focusNode.removeListener(_handleFocusChanged);
|
||||
_focusNode.dispose();
|
||||
_viewListener.stop();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
key: ValueKey(_controller.text),
|
||||
onDoubleTap: () {
|
||||
_controller.selection = TextSelection(
|
||||
baseOffset: 0,
|
||||
extentOffset: _controller.text.length,
|
||||
);
|
||||
},
|
||||
child: TextField(
|
||||
controller: _controller,
|
||||
focusNode: _focusNode,
|
||||
scrollPadding: EdgeInsets.zero,
|
||||
decoration: const InputDecoration(
|
||||
contentPadding: EdgeInsets.symmetric(vertical: 4.0),
|
||||
border: InputBorder.none,
|
||||
isDense: true,
|
||||
),
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _handleFocusChanged() {
|
||||
if (_controller.text.isEmpty) {
|
||||
_controller.text = view.name;
|
||||
return;
|
||||
}
|
||||
|
||||
if (_controller.text != view.name) {
|
||||
ViewBackendService.updateView(viewId: view.id, name: _controller.text);
|
||||
}
|
||||
}
|
||||
}
|
@ -206,7 +206,7 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0920;
|
||||
LastUpgradeCheck = 1430;
|
||||
LastUpgradeCheck = 1510;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
33CC10EC2044A3C60003C045 = {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1430"
|
||||
LastUpgradeVersion = "1510"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -29,7 +29,7 @@ dev_dependencies:
|
||||
sdk: flutter
|
||||
integration_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
@ -25,7 +25,7 @@ dev_dependencies:
|
||||
sdk: flutter
|
||||
build_runner:
|
||||
freezed:
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.1
|
||||
json_serializable: ^6.6.2
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:appflowy_popover/appflowy_popover.dart';
|
||||
|
||||
class PopoverMenu extends StatefulWidget {
|
||||
const PopoverMenu({Key? key}) : super(key: key);
|
||||
const PopoverMenu({super.key});
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() => _PopoverMenuState();
|
||||
@ -77,11 +77,11 @@ class ExampleButton extends StatelessWidget {
|
||||
final PopoverDirection? direction;
|
||||
|
||||
const ExampleButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.label,
|
||||
this.direction,
|
||||
this.offset = Offset.zero,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -7,7 +7,7 @@ void main() {
|
||||
}
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({Key? key}) : super(key: key);
|
||||
const MyApp({super.key});
|
||||
|
||||
// This widget is the root of your application.
|
||||
@override
|
||||
@ -32,7 +32,7 @@ class MyApp extends StatelessWidget {
|
||||
}
|
||||
|
||||
class MyHomePage extends StatefulWidget {
|
||||
const MyHomePage({Key? key, required this.title}) : super(key: key);
|
||||
const MyHomePage({super.key, required this.title});
|
||||
|
||||
// This widget is the home page of your application. It is stateful, meaning
|
||||
// that it has a State object (defined below) that contains fields that affect
|
||||
|
@ -45,7 +45,7 @@ dev_dependencies:
|
||||
# activated in the `analysis_options.yaml` file located at the root of your
|
||||
# package. See that file for information about deactivating specific lint
|
||||
# rules and activating additional ones.
|
||||
flutter_lints: ^2.0.0
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
@ -70,8 +70,7 @@ class PopoverMask extends StatelessWidget {
|
||||
final void Function() onTap;
|
||||
final Decoration? decoration;
|
||||
|
||||
const PopoverMask({Key? key, required this.onTap, this.decoration})
|
||||
: super(key: key);
|
||||
const PopoverMask({super.key, required this.onTap, this.decoration});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -163,8 +163,7 @@ class PopoverState extends State<Popover> {
|
||||
|
||||
return FocusScope(
|
||||
onKey: (node, event) {
|
||||
if (event is RawKeyDownEvent &&
|
||||
event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
if (event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
_removeRootOverlay();
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
@ -265,7 +264,7 @@ class PopoverContainer extends StatefulWidget {
|
||||
final void Function() onCloseAll;
|
||||
|
||||
const PopoverContainer({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.popupBuilder,
|
||||
required this.direction,
|
||||
required this.popoverLink,
|
||||
@ -273,7 +272,7 @@ class PopoverContainer extends StatefulWidget {
|
||||
required this.windowPadding,
|
||||
required this.onClose,
|
||||
required this.onCloseAll,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() => PopoverContainerState();
|
||||
|
@ -14,7 +14,7 @@ dependencies:
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.0
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
@ -13,6 +13,7 @@
|
||||
///
|
||||
///
|
||||
///
|
||||
library;
|
||||
// ignore_for_file: constant_identifier_names
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
@ -26,8 +26,8 @@ dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
build_runner: ^2.2.0
|
||||
flutter_lints: ^2.0.1
|
||||
freezed: 2.2.0
|
||||
flutter_lints: ^3.0.1
|
||||
freezed: ^2.4.7
|
||||
json_serializable: ^6.5.4
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
|
@ -5,7 +5,7 @@ import '../keyboard/keyboard_screen.dart';
|
||||
import 'demo_item.dart';
|
||||
|
||||
class HomeScreen extends StatelessWidget {
|
||||
const HomeScreen({Key? key}) : super(key: key);
|
||||
const HomeScreen({super.key});
|
||||
|
||||
static List<ListItem> items = [
|
||||
SectionHeaderItem('Widget Demos'),
|
||||
|
@ -19,7 +19,7 @@ class KeyboardItem extends DemoItem {
|
||||
}
|
||||
|
||||
class KeyboardScreen extends StatefulWidget {
|
||||
const KeyboardScreen({Key? key}) : super(key: key);
|
||||
const KeyboardScreen({super.key});
|
||||
|
||||
@override
|
||||
State<KeyboardScreen> createState() => _KeyboardScreenState();
|
||||
|
@ -9,7 +9,7 @@ void main() {
|
||||
}
|
||||
|
||||
class ExampleApp extends StatelessWidget {
|
||||
const ExampleApp({Key? key}) : super(key: key);
|
||||
const ExampleApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -44,7 +44,7 @@ class OverlayDemoConfiguration extends ChangeNotifier {
|
||||
}
|
||||
|
||||
class OverlayScreen extends StatelessWidget {
|
||||
const OverlayScreen({Key? key}) : super(key: key);
|
||||
const OverlayScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -4,7 +4,8 @@ description: Demonstrates how to use the flowy_infra_ui plugin.
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
|
||||
environment:
|
||||
sdk: ">=2.12.0 <3.0.0"
|
||||
flutter: ">=3.19.0"
|
||||
sdk: ">=3.1.5 <4.0.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
@ -20,7 +21,7 @@ dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
|
@ -16,6 +16,6 @@ dependencies:
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
flutter:
|
@ -18,7 +18,7 @@ dependencies:
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
flutter:
|
||||
plugin:
|
||||
|
@ -78,7 +78,7 @@ abstract mixin class FlowyOverlayDelegate {
|
||||
}
|
||||
|
||||
class FlowyOverlay extends StatefulWidget {
|
||||
const FlowyOverlay({Key? key, required this.child}) : super(key: key);
|
||||
const FlowyOverlay({super.key, required this.child});
|
||||
|
||||
final Widget child;
|
||||
|
||||
|
@ -17,13 +17,13 @@ class ListOverlayFooter {
|
||||
|
||||
class ListOverlay extends StatelessWidget {
|
||||
const ListOverlay({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.itemBuilder,
|
||||
this.itemCount = 0,
|
||||
this.controller,
|
||||
this.constraints = const BoxConstraints(),
|
||||
this.footer,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
final IndexedWidgetBuilder itemBuilder;
|
||||
final int itemCount;
|
||||
@ -117,8 +117,8 @@ class OverlayContainer extends StatelessWidget {
|
||||
required this.child,
|
||||
this.constraints,
|
||||
this.padding = overlayContainerPadding,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -10,11 +10,11 @@ class OptionItem {
|
||||
|
||||
class OptionOverlay<T> extends StatelessWidget {
|
||||
const OptionOverlay({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.items,
|
||||
this.onHover,
|
||||
this.onTap,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
final List<T> items;
|
||||
final IndexedValueCallback<T>? onHover;
|
||||
@ -69,8 +69,8 @@ class OptionOverlay<T> extends StatelessWidget {
|
||||
class _OptionListItem<T> extends StatelessWidget {
|
||||
const _OptionListItem(
|
||||
this.value, {
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
final T value;
|
||||
|
||||
|
@ -2,9 +2,9 @@ import 'package:flutter/material.dart';
|
||||
|
||||
class AutoUnfocus extends StatelessWidget {
|
||||
const AutoUnfocus({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
final Widget child;
|
||||
|
||||
|
@ -5,10 +5,10 @@ import 'package:flutter/material.dart';
|
||||
|
||||
class KeyboardVisibilityDetector extends StatefulWidget {
|
||||
const KeyboardVisibilityDetector({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
this.onKeyboardVisibilityChange,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
final Widget child;
|
||||
final void Function(bool)? onKeyboardVisibilityChange;
|
||||
@ -57,10 +57,9 @@ class _KeyboardVisibilityDetectorState
|
||||
|
||||
class _KeyboardVisibilityDetectorInheritedWidget extends InheritedWidget {
|
||||
const _KeyboardVisibilityDetectorInheritedWidget({
|
||||
Key? key,
|
||||
required this.isKeyboardVisible,
|
||||
required Widget child,
|
||||
}) : super(key: key, child: child);
|
||||
required super.child,
|
||||
});
|
||||
|
||||
final bool isKeyboardVisible;
|
||||
|
||||
|
@ -4,9 +4,9 @@ class FlowyBarTitle extends StatelessWidget {
|
||||
final String title;
|
||||
|
||||
const FlowyBarTitle({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.title,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -31,7 +31,7 @@ class FlowyButton extends StatelessWidget {
|
||||
final bool expand;
|
||||
|
||||
const FlowyButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.text,
|
||||
this.onTap,
|
||||
this.onSecondaryTap,
|
||||
@ -52,7 +52,7 @@ class FlowyButton extends StatelessWidget {
|
||||
this.showDefaultBoxDecorationOnMobile = false,
|
||||
this.iconPadding = 6,
|
||||
this.expand = false,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -168,7 +168,7 @@ class FlowyTextButton extends StatelessWidget {
|
||||
// final HoverDisplayConfig? hoverDisplay;
|
||||
const FlowyTextButton(
|
||||
this.text, {
|
||||
Key? key,
|
||||
super.key,
|
||||
this.onPressed,
|
||||
this.fontSize,
|
||||
this.fontColor,
|
||||
@ -184,7 +184,7 @@ class FlowyTextButton extends StatelessWidget {
|
||||
this.constraints = const BoxConstraints(minWidth: 0.0, minHeight: 0.0),
|
||||
this.decoration,
|
||||
this.fontFamily,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -260,7 +260,7 @@ class FlowyRichTextButton extends StatelessWidget {
|
||||
// final HoverDisplayConfig? hoverDisplay;
|
||||
const FlowyRichTextButton(
|
||||
this.text, {
|
||||
Key? key,
|
||||
super.key,
|
||||
this.onPressed,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.padding = const EdgeInsets.symmetric(horizontal: 8, vertical: 6),
|
||||
@ -272,7 +272,7 @@ class FlowyRichTextButton extends StatelessWidget {
|
||||
this.tooltip,
|
||||
this.constraints = const BoxConstraints(minWidth: 58.0, minHeight: 30.0),
|
||||
this.decoration,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -4,9 +4,9 @@ class FlowyCloseButton extends StatelessWidget {
|
||||
final VoidCallback? onPressed;
|
||||
|
||||
const FlowyCloseButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.onPressed,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -24,7 +24,7 @@ class FlowyColorPicker extends StatelessWidget {
|
||||
final Border? border;
|
||||
|
||||
const FlowyColorPicker({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.colors,
|
||||
this.selected,
|
||||
this.onTap,
|
||||
@ -32,7 +32,7 @@ class FlowyColorPicker extends StatelessWidget {
|
||||
this.iconSize = 16,
|
||||
this.itemHeight = 32,
|
||||
this.border,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -14,7 +14,7 @@ class FlowyContainer extends StatelessWidget {
|
||||
final BoxBorder? border;
|
||||
|
||||
const FlowyContainer(this.color,
|
||||
{Key? key,
|
||||
{super.key,
|
||||
this.borderRadius,
|
||||
this.shadows,
|
||||
this.child,
|
||||
@ -23,8 +23,7 @@ class FlowyContainer extends StatelessWidget {
|
||||
this.align,
|
||||
this.margin,
|
||||
this.duration,
|
||||
this.border})
|
||||
: super(key: key);
|
||||
this.border});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -24,7 +24,7 @@ class FlowyHover extends StatefulWidget {
|
||||
final bool Function()? buildWhenOnHover;
|
||||
|
||||
const FlowyHover({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.builder,
|
||||
this.child,
|
||||
this.style,
|
||||
@ -33,7 +33,7 @@ class FlowyHover extends StatefulWidget {
|
||||
this.cursor,
|
||||
this.resetHoverOnRebuild = true,
|
||||
this.buildWhenOnHover,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<FlowyHover> createState() => _FlowyHoverState();
|
||||
@ -136,10 +136,10 @@ class FlowyHoverContainer extends StatelessWidget {
|
||||
final Widget child;
|
||||
|
||||
const FlowyHoverContainer({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
required this.style,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -23,7 +23,7 @@ class FlowyIconButton extends StatelessWidget {
|
||||
final bool? isSelected;
|
||||
|
||||
const FlowyIconButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.width = 30,
|
||||
this.height,
|
||||
this.onPressed,
|
||||
@ -40,8 +40,7 @@ class FlowyIconButton extends StatelessWidget {
|
||||
required this.icon,
|
||||
}) : assert((richTooltipText != null && tooltipText == null) ||
|
||||
(richTooltipText == null && tooltipText != null) ||
|
||||
(richTooltipText == null && tooltipText == null)),
|
||||
super(key: key);
|
||||
(richTooltipText == null && tooltipText == null));
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -6,8 +6,7 @@ class FlowyImageIcon extends StatelessWidget {
|
||||
final Color? color;
|
||||
final double? size;
|
||||
|
||||
const FlowyImageIcon(this.image, {Key? key, this.color, this.size})
|
||||
: super(key: key);
|
||||
const FlowyImageIcon(this.image, {super.key, this.color, this.size});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -13,7 +13,7 @@ List<Color> _kDefaultRainbowColors = const [
|
||||
|
||||
// CircularProgressIndicator()
|
||||
class FlowyProgressIndicator extends StatelessWidget {
|
||||
const FlowyProgressIndicator({Key? key}) : super(key: key);
|
||||
const FlowyProgressIndicator({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -18,7 +18,7 @@ class StyledListView extends StatefulWidget {
|
||||
final IndexedWidgetBuilder itemBuilder;
|
||||
|
||||
StyledListView({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.itemBuilder,
|
||||
required this.itemCount,
|
||||
this.itemExtent,
|
||||
@ -26,7 +26,7 @@ class StyledListView extends StatefulWidget {
|
||||
this.padding,
|
||||
this.barSize,
|
||||
this.scrollbarPadding,
|
||||
}) : super(key: key) {
|
||||
}) {
|
||||
assert(itemExtent != 0, 'Item extent should never be 0, null is ok.');
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ class StyledScrollbar extends StatefulWidget {
|
||||
final double? contentSize;
|
||||
|
||||
const StyledScrollbar(
|
||||
{Key? key,
|
||||
{super.key,
|
||||
this.size,
|
||||
required this.axis,
|
||||
required this.controller,
|
||||
@ -32,8 +32,7 @@ class StyledScrollbar extends StatefulWidget {
|
||||
this.showTrack = false,
|
||||
this.autoHideScrollbar = true,
|
||||
this.handleColor,
|
||||
this.trackColor})
|
||||
: super(key: key);
|
||||
this.trackColor});
|
||||
|
||||
@override
|
||||
ScrollbarState createState() => ScrollbarState();
|
||||
|
@ -16,7 +16,7 @@ class StyledSingleChildScrollView extends StatefulWidget {
|
||||
final Widget? child;
|
||||
|
||||
const StyledSingleChildScrollView({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
this.contentSize,
|
||||
this.axis = Axis.vertical,
|
||||
@ -26,7 +26,7 @@ class StyledSingleChildScrollView extends StatefulWidget {
|
||||
this.scrollbarPadding,
|
||||
this.barSize = 8,
|
||||
this.autoHideScrollbar = true,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<StyledSingleChildScrollView> createState() =>
|
||||
@ -89,14 +89,14 @@ class StyledCustomScrollView extends StatefulWidget {
|
||||
final double barSize;
|
||||
|
||||
const StyledCustomScrollView({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.axis = Axis.vertical,
|
||||
this.trackColor,
|
||||
this.handleColor,
|
||||
this.verticalController,
|
||||
this.slivers = const <Widget>[],
|
||||
this.barSize = 8,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
StyledCustomScrollViewState createState() => StyledCustomScrollViewState();
|
||||
|
@ -166,14 +166,11 @@ class StyledSearchTextInputState extends State<StyledSearchTextInput> {
|
||||
widget.controller ?? TextEditingController(text: widget.initialValue);
|
||||
_focusNode = FocusNode(
|
||||
debugLabel: widget.label ?? '',
|
||||
onKey: (FocusNode node, RawKeyEvent evt) {
|
||||
if (evt is RawKeyDownEvent) {
|
||||
if (evt.logicalKey == LogicalKeyboardKey.escape) {
|
||||
onKeyEvent: (node, event) {
|
||||
if (event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
widget.onEditingCancel?.call();
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
}
|
||||
|
||||
return KeyEventResult.ignored;
|
||||
},
|
||||
canRequestFocus: true,
|
||||
@ -273,12 +270,12 @@ class ThinUnderlineBorder extends InputBorder {
|
||||
/// and right corners have a circular radius of 4.0. The [borderRadius]
|
||||
/// parameter must not be null.
|
||||
const ThinUnderlineBorder({
|
||||
BorderSide borderSide = const BorderSide(),
|
||||
super.borderSide = const BorderSide(),
|
||||
this.borderRadius = const BorderRadius.only(
|
||||
topLeft: Radius.circular(4.0),
|
||||
topRight: Radius.circular(4.0),
|
||||
),
|
||||
}) : super(borderSide: borderSide);
|
||||
});
|
||||
|
||||
/// The radii of the border's rounded rectangle corners.
|
||||
///
|
||||
|
@ -22,7 +22,7 @@ class BaseStyledButton extends StatefulWidget {
|
||||
final Color outlineColor;
|
||||
|
||||
const BaseStyledButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
this.onPressed,
|
||||
this.onFocusChanged,
|
||||
@ -39,7 +39,7 @@ class BaseStyledButton extends StatefulWidget {
|
||||
this.useBtnText = true,
|
||||
this.autoFocus = false,
|
||||
this.outlineColor = Colors.transparent,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<BaseStyledButton> createState() => BaseStyledBtnState();
|
||||
|
@ -9,8 +9,7 @@ class PrimaryTextButton extends StatelessWidget {
|
||||
final TextButtonMode mode;
|
||||
|
||||
const PrimaryTextButton(this.label,
|
||||
{Key? key, this.onPressed, this.mode = TextButtonMode.big})
|
||||
: super(key: key);
|
||||
{super.key, this.onPressed, this.mode = TextButtonMode.big});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -31,11 +30,10 @@ class PrimaryButton extends StatelessWidget {
|
||||
final TextButtonMode mode;
|
||||
|
||||
const PrimaryButton(
|
||||
{Key? key,
|
||||
{super.key,
|
||||
required this.child,
|
||||
this.onPressed,
|
||||
this.mode = TextButtonMode.big})
|
||||
: super(key: key);
|
||||
this.mode = TextButtonMode.big});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -7,11 +7,10 @@ class ConstrainedFlexView extends StatelessWidget {
|
||||
final EdgeInsets scrollPadding;
|
||||
|
||||
const ConstrainedFlexView(this.minSize,
|
||||
{Key? key,
|
||||
{super.key,
|
||||
required this.child,
|
||||
this.axis = Axis.horizontal,
|
||||
this.scrollPadding = EdgeInsets.zero})
|
||||
: super(key: key);
|
||||
this.scrollPadding = EdgeInsets.zero});
|
||||
|
||||
bool get isHz => axis == Axis.horizontal;
|
||||
|
||||
|
@ -10,10 +10,10 @@ extension IntoDialog on Widget {
|
||||
Future<dynamic> show(BuildContext context) async {
|
||||
FocusNode dialogFocusNode = FocusNode();
|
||||
await Dialogs.show(
|
||||
child: RawKeyboardListener(
|
||||
child: KeyboardListener(
|
||||
focusNode: dialogFocusNode,
|
||||
onKey: (value) {
|
||||
if (value.isKeyPressed(LogicalKeyboardKey.escape)) {
|
||||
onKeyEvent: (event) {
|
||||
if (event.logicalKey == LogicalKeyboardKey.escape) {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
},
|
||||
@ -36,7 +36,7 @@ class StyledDialog extends StatelessWidget {
|
||||
final bool shrinkWrap;
|
||||
|
||||
const StyledDialog({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
this.maxWidth,
|
||||
this.maxHeight,
|
||||
@ -45,7 +45,7 @@ class StyledDialog extends StatelessWidget {
|
||||
this.bgColor,
|
||||
this.borderRadius = const BorderRadius.all(Radius.circular(6)),
|
||||
this.shrinkWrap = true,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -126,11 +126,11 @@ class StyledDialogRoute<T> extends PopupRoute<T> {
|
||||
required this.barrier,
|
||||
Duration transitionDuration = const Duration(milliseconds: 300),
|
||||
RouteTransitionsBuilder? transitionBuilder,
|
||||
RouteSettings? settings,
|
||||
super.settings,
|
||||
}) : _pageBuilder = pageBuilder,
|
||||
_transitionDuration = transitionDuration,
|
||||
_transitionBuilder = transitionBuilder,
|
||||
super(settings: settings, filter: barrier.filter);
|
||||
super(filter: barrier.filter);
|
||||
|
||||
@override
|
||||
bool get barrierDismissible {
|
||||
|
@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
|
||||
|
||||
class IgnoreParentGestureWidget extends StatelessWidget {
|
||||
const IgnoreParentGestureWidget({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.child,
|
||||
this.onPress,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
final Widget child;
|
||||
final VoidCallback? onPress;
|
||||
|
@ -6,8 +6,7 @@ class MouseHoverBuilder extends StatefulWidget {
|
||||
final bool isClickable;
|
||||
|
||||
const MouseHoverBuilder(
|
||||
{Key? key, required this.builder, this.isClickable = false})
|
||||
: super(key: key);
|
||||
{super.key, required this.builder, this.isClickable = false});
|
||||
|
||||
final HoverBuilder builder;
|
||||
|
||||
|
@ -15,7 +15,7 @@ class RoundedTextButton extends StatelessWidget {
|
||||
final double? fontSize;
|
||||
|
||||
const RoundedTextButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.onPressed,
|
||||
this.title,
|
||||
this.width,
|
||||
@ -26,7 +26,7 @@ class RoundedTextButton extends StatelessWidget {
|
||||
this.hoverColor,
|
||||
this.textColor,
|
||||
this.fontSize,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -63,14 +63,14 @@ class RoundedImageButton extends StatelessWidget {
|
||||
final Widget child;
|
||||
|
||||
const RoundedImageButton({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.press,
|
||||
required this.size,
|
||||
this.borderRadius = BorderRadius.zero,
|
||||
this.borderColor = Colors.transparent,
|
||||
this.color = Colors.transparent,
|
||||
required this.child,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -29,7 +29,7 @@ class RoundedInputField extends StatefulWidget {
|
||||
final Function(String)? onFieldSubmitted;
|
||||
|
||||
const RoundedInputField({
|
||||
Key? key,
|
||||
super.key,
|
||||
this.hintText,
|
||||
this.errorText = "",
|
||||
this.initialValue,
|
||||
@ -52,7 +52,7 @@ class RoundedInputField extends StatefulWidget {
|
||||
this.autoFocus = false,
|
||||
this.maxLength,
|
||||
this.onFieldSubmitted,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<RoundedInputField> createState() => _RoundedInputFieldState();
|
||||
|
@ -4,7 +4,7 @@ class Space extends StatelessWidget {
|
||||
final double width;
|
||||
final double height;
|
||||
|
||||
const Space(this.width, this.height, {Key? key}) : super(key: key);
|
||||
const Space(this.width, this.height, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => SizedBox(width: width, height: height);
|
||||
|
@ -37,7 +37,7 @@ dependencies:
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.1
|
||||
|
||||
flutter:
|
||||
plugin:
|
||||
|
@ -1,3 +1,3 @@
|
||||
include: package:very_good_analysis/analysis_options.5.0.0.yaml
|
||||
include: package:very_good_analysis/analysis_options.yaml
|
||||
|
||||
linter:
|
||||
|
@ -5,18 +5,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
sha256: "0f7b1783ddb1e4600580b8c00d0ddae5b06ae7f0382bd4fcce5db4df97b618e1"
|
||||
sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "66.0.0"
|
||||
version: "67.0.0"
|
||||
analyzer:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: analyzer
|
||||
sha256: "5e8bdcda061d91da6b034d64d8e4026f355bcb8c3e7a0ac2da1523205a91a737"
|
||||
sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.4.0"
|
||||
version: "6.4.1"
|
||||
animations:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -53,11 +53,11 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: e80edfc
|
||||
resolved-ref: e80edfcaaa402c606a642bf9bd1abf523ed15c80
|
||||
ref: f38328d
|
||||
resolved-ref: f38328d9e52be89b8036ae0ad3460ce9d6cc5be7
|
||||
url: "https://github.com/AppFlowy-IO/appflowy-editor.git"
|
||||
source: git
|
||||
version: "2.3.1"
|
||||
version: "2.3.2"
|
||||
appflowy_editor_plugins:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -102,18 +102,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: bloc
|
||||
sha256: "3820f15f502372d979121de1f6b97bfcf1630ebff8fe1d52fb2b0bfa49be5b49"
|
||||
sha256: f53a110e3b48dcd78136c10daa5d51512443cea5e1348c9d80a320095fa2db9e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.2"
|
||||
version: "8.1.3"
|
||||
bloc_test:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: bloc_test
|
||||
sha256: "02f04270be5abae8df171143e61a0058a7acbce5dcac887612e89bb40cca4c33"
|
||||
sha256: "55a48f69e0d480717067c5377c8485a3fcd41f1701a820deef72fa0f4ee7215f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.1.5"
|
||||
version: "9.1.6"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -166,10 +166,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_runner_core
|
||||
sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185
|
||||
sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.2.11"
|
||||
version: "7.3.0"
|
||||
built_collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -359,10 +359,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6"
|
||||
sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.1.1"
|
||||
version: "9.1.2"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -399,10 +399,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: easy_localization
|
||||
sha256: de63e3b422adfc97f256cbb3f8cf12739b6a4993d390f3cadb3f51837afaefe5
|
||||
sha256: "9c86754b22aaa3e74e471635b25b33729f958dd6fb83df0ad6612948a7b231af"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
version: "3.0.4"
|
||||
easy_logger:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -455,10 +455,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
|
||||
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "2.1.2"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -559,10 +559,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_bloc
|
||||
sha256: e74efb89ee6945bcbce74a5b3a5a3376b088e5f21f55c263fc38cbdc6237faae
|
||||
sha256: "87325da1ac757fcc4813e6b34ed5dd61169973871fdf181d6c2109dd6935ece1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.3"
|
||||
version: "8.1.4"
|
||||
flutter_cache_manager:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -692,10 +692,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: freezed
|
||||
sha256: "6c5031daae12c7072b3a87eff98983076434b4889ef2a44384d0cae3f82372ba"
|
||||
sha256: "57247f692f35f068cae297549a46a9a097100685c6780fe67177503eea5ed4e5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.6"
|
||||
version: "2.4.7"
|
||||
freezed_annotation:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -745,10 +745,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: go_router
|
||||
sha256: "07ee2436909f749d606f53521dc1725dd738dc5196e5ff815bc254253c594075"
|
||||
sha256: "170c46e237d6eb0e6e9f0e8b3f56101e14fb64f787016e42edd74c39cf8b176a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "13.1.0"
|
||||
version: "13.2.0"
|
||||
google_fonts:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -761,10 +761,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: gotrue
|
||||
sha256: "879ac3e981bf5f9b3af156e421688b53823b7af17de7af0d2a37894a8e5f6532"
|
||||
sha256: f40610bacf1074723354b0856a4f586508ffb075b799f72466f34e843133deb9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.1"
|
||||
version: "2.5.0"
|
||||
graphs:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -950,18 +950,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: irondash_engine_context
|
||||
sha256: "294a0e21c4358ff17264e6b811c615b664cebb33b49ad2ddb54f8110e7714510"
|
||||
sha256: "4f5e2629296430cce08cdff42e47cef07b8f74a64fdbdfb0525d147bc1a969a2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
version: "0.5.2"
|
||||
irondash_message_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: irondash_message_channel
|
||||
sha256: "131d64d97a3612bc3617aefc878f3e3a8e23e0ce18b3bba8e78cb1930befcec1"
|
||||
sha256: dd581214215dca054bd9873209d690ec3609288c28774cb509dbd86b21180cf8
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.0"
|
||||
version: "0.6.0"
|
||||
isolates:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1014,18 +1014,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "04be76c4a4bb50f14904e64749237e541e7c7bcf7ec0b196907322ab5d2fc739"
|
||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.0.16"
|
||||
version: "10.0.0"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: b06739349ec2477e943055aea30172c5c7000225f79dad4702e2ec0eda79a6ff
|
||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
version: "2.0.1"
|
||||
linked_scroll_controller:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1102,10 +1110,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16"
|
||||
version: "0.12.16+1"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1222,10 +1230,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path
|
||||
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.3"
|
||||
version: "1.9.0"
|
||||
path_drawing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1310,18 +1318,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pixel_snap
|
||||
sha256: d31591a4f4aa8ed5dc6fc00b8d027338a5614dfbf5ca658b69d1faa7aba80af7
|
||||
sha256: "677410ea37b07cd37ecb6d5e6c0d8d7615a7cf3bd92ba406fd1ac57e937d1fb0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.4"
|
||||
version: "0.1.5"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: platform
|
||||
sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59"
|
||||
sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
version: "3.1.4"
|
||||
plugin_platform_interface:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
@ -1358,10 +1366,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: process
|
||||
sha256: "266ca5be5820feefc777793d0a583acfc8c40834893c87c00c6c09e2cf58ea42"
|
||||
sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.1"
|
||||
version: "5.0.2"
|
||||
protobuf:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1526,10 +1534,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: share_plus
|
||||
sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd
|
||||
sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.2.1"
|
||||
version: "7.2.2"
|
||||
share_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1630,10 +1638,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: simple_gesture_detector
|
||||
sha256: "86d08f85f1f58583b7b4b941d989f48ea6ce08c1724a1d10954a277c2ec36592"
|
||||
sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
version: "0.2.1"
|
||||
sized_context:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1731,10 +1739,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: storage_client
|
||||
sha256: b49ff2e1e6738c0ef445546d6ec77040829947f0c7ef0b115acb125656127c83
|
||||
sha256: bf5589d5de61a2451edb1b8960a0e673d4bb5c42ecc4dddf7c051a93789ced34
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.0.1"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1779,10 +1787,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: supabase
|
||||
sha256: f299614f6f44ee26ff1bd293869272fab79a7b087320c3b40572792b32ded06c
|
||||
sha256: "4bce9c49f264f4cd44b4ffc895647af2dca0c40125c169045be9f708fd2a2a40"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.6"
|
||||
version: "2.0.7"
|
||||
supabase_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1796,18 +1804,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: super_clipboard
|
||||
sha256: "77f044320934386e0b7a3911e05312426d7f33deb6e8cdb28886663430b0e5b0"
|
||||
sha256: "15d25eb88df8e904e0c2ef77378c6010cc57bbfc0b6f91f2416d08fad5fcca92"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.4"
|
||||
version: "0.8.5"
|
||||
super_native_extensions:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: super_native_extensions
|
||||
sha256: "4699f5b00320290475953c914f823a8b44e10ed8c1e38ce5c8e8426336d11c15"
|
||||
sha256: f96db6b137a0b135e43034289bb55ca6447b65225076036e81f97ebb6381ffeb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.4"
|
||||
version: "0.8.5"
|
||||
sync_http:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1948,10 +1956,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f"
|
||||
sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.2"
|
||||
version: "6.3.0"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1980,10 +1988,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: url_launcher_platform_interface
|
||||
sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f
|
||||
sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
version: "2.3.2"
|
||||
url_launcher_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2029,26 +2037,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics
|
||||
sha256: "18f6690295af52d081f6808f2f7c69f0eed6d7e23a71539d75f4aeb8f0062172"
|
||||
sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9+2"
|
||||
version: "1.1.10+1"
|
||||
vector_graphics_codec:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_codec
|
||||
sha256: "531d20465c10dfac7f5cd90b60bbe4dd9921f1ec4ca54c83ebb176dbacb7bb2d"
|
||||
sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9+2"
|
||||
version: "1.1.10+1"
|
||||
vector_graphics_compiler:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_compiler
|
||||
sha256: "03012b0a33775c5530576b70240308080e1d5050f0faf000118c20e6463bc0ad"
|
||||
sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9+2"
|
||||
version: "1.1.10+1"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2085,10 +2093,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: edc8a9573dd8c5a83a183dae1af2b6fd4131377404706ca4e5420474784906fa
|
||||
sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.0"
|
||||
version: "0.4.2"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2170,5 +2178,5 @@ packages:
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
sdks:
|
||||
dart: ">=3.2.0 <4.0.0"
|
||||
flutter: ">=3.18.0-0.2.pre"
|
||||
dart: ">=3.3.0-279.1.beta <4.0.0"
|
||||
flutter: ">=3.19.0"
|
||||
|
@ -18,7 +18,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||
version: 0.4.9
|
||||
|
||||
environment:
|
||||
flutter: ">=3.18.0-0.2.pre"
|
||||
flutter: ">=3.19.0"
|
||||
sdk: ">=3.1.5 <4.0.0"
|
||||
|
||||
# Dependencies specify other packages that your package needs in order to work.
|
||||
@ -124,7 +124,7 @@ dependencies:
|
||||
image_picker: ^1.0.4
|
||||
image_gallery_saver: ^2.0.3
|
||||
cached_network_image: ^3.3.0
|
||||
leak_tracker: ^9.0.6
|
||||
leak_tracker: ^10.0.0
|
||||
keyboard_height_plugin: ^0.0.5
|
||||
scrollable_positioned_list: ^0.3.8
|
||||
flutter_cache_manager: ^3.3.1
|
||||
@ -139,7 +139,7 @@ dev_dependencies:
|
||||
integration_test:
|
||||
sdk: flutter
|
||||
build_runner: ^2.4.4
|
||||
freezed: ^2.3.4
|
||||
freezed: ^2.4.7
|
||||
bloc_test: ^9.1.2
|
||||
json_serializable: ^6.7.0
|
||||
envied_generator: ^0.5.2
|
||||
@ -165,7 +165,7 @@ dependency_overrides:
|
||||
appflowy_editor:
|
||||
git:
|
||||
url: https://github.com/AppFlowy-IO/appflowy-editor.git
|
||||
ref: "e80edfc"
|
||||
ref: "f38328d"
|
||||
|
||||
uuid: ^4.1.0
|
||||
|
||||
|
@ -66,7 +66,7 @@ void main() {
|
||||
await widgetTester.pumpAndSettle();
|
||||
|
||||
expect(find.byType(AlertDialog), findsOneWidget);
|
||||
expect(find.byType(RawKeyboardListener), findsOneWidget);
|
||||
expect(find.byType(KeyboardListener), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets("updates the text with new key event",
|
||||
@ -83,7 +83,7 @@ void main() {
|
||||
await widgetTester.pumpAndSettle();
|
||||
|
||||
expect(find.byType(AlertDialog), findsOneWidget);
|
||||
expect(find.byType(RawKeyboardListener), findsOneWidget);
|
||||
expect(find.byType(KeyboardListener), findsOneWidget);
|
||||
|
||||
await widgetTester.sendKeyEvent(LogicalKeyboardKey.keyC);
|
||||
|
||||
|
@ -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/beta/linux/flutter_linux_3.18.0-0.2.pre-beta.tar.xz && \
|
||||
https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.19.0-stable.tar.xz && \
|
||||
tar -xf flutter.tar.xz && \
|
||||
rm flutter.tar.xz
|
||||
RUN flutter config --enable-linux-desktop
|
||||
|
@ -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.18.0-0.2.pre2
|
||||
if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then
|
||||
echo "Flutter version is already 3.18.0-0.2.pre2"
|
||||
# Check if the current version is 3.19.0
|
||||
if [ "$FLUTTER_VERSION" = "3.19.0" ]; then
|
||||
echo "Flutter version is already 3.19.0"
|
||||
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.18.0-0.2.pre2 of Flutter
|
||||
git checkout 3.18.0-0.2.pre2
|
||||
# Use git to checkout version 3.19.0 of Flutter
|
||||
git checkout 3.19.0
|
||||
# Get back to current working directory
|
||||
cd "$current_dir"
|
||||
|
||||
echo "Switched to Flutter version 3.18.0-0.2.pre2"
|
||||
echo "Switched to Flutter version 3.19.0"
|
||||
fi
|
||||
|
||||
# Enable linux desktop
|
||||
|
@ -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.18.0-0.2.pre2
|
||||
if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then
|
||||
echo "Flutter version is already 3.18.0-0.2.pre2"
|
||||
# Check if the current version is 3.19.0
|
||||
if [ "$FLUTTER_VERSION" = "3.19.0" ]; then
|
||||
echo "Flutter version is already 3.19.0"
|
||||
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.18.0-0.2.pre2 of Flutter
|
||||
git checkout 3.18.0-0.2.pre2
|
||||
# Use git to checkout version 3.19.0 of Flutter
|
||||
git checkout 3.19.0
|
||||
# Get back to current working directory
|
||||
cd "$current_dir"
|
||||
|
||||
echo "Switched to Flutter version 3.18.0-0.2.pre2"
|
||||
echo "Switched to Flutter version 3.19.0"
|
||||
fi
|
||||
|
||||
# Enable linux desktop
|
||||
|
@ -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.18.0-0.2.pre2
|
||||
if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then
|
||||
echo "Flutter version is already 3.18.0-0.2.pre2"
|
||||
# Check if the current version is 3.19.0
|
||||
if [ "$FLUTTER_VERSION" = "3.19.0" ]; then
|
||||
echo "Flutter version is already 3.19.0"
|
||||
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.18.0-0.2.pre2 of Flutter
|
||||
git checkout 3.18.0-0.2.pre2
|
||||
# Use git to checkout version 3.19.0 of Flutter
|
||||
git checkout 3.19.0
|
||||
# Get back to current working directory
|
||||
cd "$current_dir"
|
||||
|
||||
echo "Switched to Flutter version 3.18.0-0.2.pre2"
|
||||
echo "Switched to Flutter version 3.19.0"
|
||||
fi
|
||||
|
||||
# Enable linux desktop
|
||||
|
@ -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.18.0-0.2.pre2
|
||||
if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then
|
||||
echo "Flutter version is already 3.18.0-0.2.pre2"
|
||||
# Check if the current version is 3.19.0
|
||||
if [ "$FLUTTER_VERSION" = "3.19.0" ]; then
|
||||
echo "Flutter version is already 3.19.0"
|
||||
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.18.0-0.2.pre2 of Flutter
|
||||
git checkout 3.18.0-0.2.pre2
|
||||
# Use git to checkout version 3.19.0 of Flutter
|
||||
git checkout 3.19.0
|
||||
# Get back to current working directory
|
||||
cd "$current_dir"
|
||||
|
||||
echo "Switched to Flutter version 3.18.0-0.2.pre2"
|
||||
echo "Switched to Flutter version 3.19.0"
|
||||
fi
|
||||
|
||||
# Add pub cache and cargo to PATH
|
||||
|
Loading…
Reference in New Issue
Block a user