From 1eec97c761e75774123f6f995e3c44f2d89fe1ce Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Wed, 10 Aug 2022 15:56:52 +0800 Subject: [PATCH] chore: refactor the service type --- .../app_flowy/packages/flowy_editor/lib/flowy_editor.dart | 4 ++++ .../packages/flowy_editor/lib/src/service/input_service.dart | 5 ++--- .../flowy_editor/lib/src/service/keyboard_service.dart | 4 ++-- .../flowy_editor/lib/src/service/scroll_service.dart | 5 +++-- .../flowy_editor/lib/src/service/selection_service.dart | 5 +++-- .../flowy_editor/lib/src/service/toolbar_service.dart | 5 +++-- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/frontend/app_flowy/packages/flowy_editor/lib/flowy_editor.dart b/frontend/app_flowy/packages/flowy_editor/lib/flowy_editor.dart index 9e75790ea3..418b4d7ce0 100644 --- a/frontend/app_flowy/packages/flowy_editor/lib/flowy_editor.dart +++ b/frontend/app_flowy/packages/flowy_editor/lib/flowy_editor.dart @@ -14,3 +14,7 @@ export 'src/render/selection/selectable.dart'; export 'src/service/editor_service.dart'; export 'src/service/render_plugin_service.dart'; export 'src/service/service.dart'; +export 'src/service/selection_service.dart'; +export 'src/service/scroll_service.dart'; +export 'src/service/keyboard_service.dart'; +export 'src/service/input_service.dart'; diff --git a/frontend/app_flowy/packages/flowy_editor/lib/src/service/input_service.dart b/frontend/app_flowy/packages/flowy_editor/lib/src/service/input_service.dart index c52a411905..da755ab346 100644 --- a/frontend/app_flowy/packages/flowy_editor/lib/src/service/input_service.dart +++ b/frontend/app_flowy/packages/flowy_editor/lib/src/service/input_service.dart @@ -7,7 +7,7 @@ import 'package:flowy_editor/src/editor_state.dart'; import 'package:flowy_editor/src/extensions/node_extensions.dart'; import 'package:flowy_editor/src/operation/transaction_builder.dart'; -mixin FlowyInputService { +abstract class FlowyInputService { void attach(TextEditingValue textEditingValue); void apply(List deltas); void close(); @@ -29,8 +29,7 @@ class FlowyInput extends StatefulWidget { } class _FlowyInputState extends State - with FlowyInputService - implements DeltaTextInputClient { + implements FlowyInputService, DeltaTextInputClient { TextInputConnection? _textInputConnection; TextRange? _composingTextRange; diff --git a/frontend/app_flowy/packages/flowy_editor/lib/src/service/keyboard_service.dart b/frontend/app_flowy/packages/flowy_editor/lib/src/service/keyboard_service.dart index 81ce8348a4..ef8165049b 100644 --- a/frontend/app_flowy/packages/flowy_editor/lib/src/service/keyboard_service.dart +++ b/frontend/app_flowy/packages/flowy_editor/lib/src/service/keyboard_service.dart @@ -3,7 +3,7 @@ import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; -mixin FlowyKeyboardService on State { +abstract class FlowyKeyboardService { void enable(); void disable(); } @@ -31,7 +31,7 @@ class FlowyKeyboard extends StatefulWidget { } class _FlowyKeyboardState extends State - with FlowyKeyboardService { + implements FlowyKeyboardService { final FocusNode _focusNode = FocusNode(debugLabel: 'flowy_keyboard_service'); bool isFocus = true; diff --git a/frontend/app_flowy/packages/flowy_editor/lib/src/service/scroll_service.dart b/frontend/app_flowy/packages/flowy_editor/lib/src/service/scroll_service.dart index af48a78c49..5201a18942 100644 --- a/frontend/app_flowy/packages/flowy_editor/lib/src/service/scroll_service.dart +++ b/frontend/app_flowy/packages/flowy_editor/lib/src/service/scroll_service.dart @@ -1,7 +1,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -mixin FlowyScrollService on State { +abstract class FlowyScrollService { double get dy; void scrollTo(double dy); @@ -22,7 +22,8 @@ class FlowyScroll extends StatefulWidget { State createState() => _FlowyScrollState(); } -class _FlowyScrollState extends State with FlowyScrollService { +class _FlowyScrollState extends State + implements FlowyScrollService { final _scrollController = ScrollController(); final _scrollViewKey = GlobalKey(); diff --git a/frontend/app_flowy/packages/flowy_editor/lib/src/service/selection_service.dart b/frontend/app_flowy/packages/flowy_editor/lib/src/service/selection_service.dart index 368bac9c92..56bcb07cd1 100644 --- a/frontend/app_flowy/packages/flowy_editor/lib/src/service/selection_service.dart +++ b/frontend/app_flowy/packages/flowy_editor/lib/src/service/selection_service.dart @@ -29,7 +29,7 @@ import 'package:flowy_editor/src/render/selection/selection_widget.dart'; /// final nodes = selectionService.currentSelectedNodes; /// ``` /// -mixin FlowySelectionService on State { +abstract class FlowySelectionService { /// The current [Selection] in editor. /// /// The value is null if there is no nodes are selected. @@ -90,7 +90,8 @@ class FlowySelection extends StatefulWidget { } class _FlowySelectionState extends State - with FlowySelectionService, WidgetsBindingObserver { + with WidgetsBindingObserver + implements FlowySelectionService { final _cursorKey = GlobalKey(debugLabel: 'cursor'); final List _selectionOverlays = []; diff --git a/frontend/app_flowy/packages/flowy_editor/lib/src/service/toolbar_service.dart b/frontend/app_flowy/packages/flowy_editor/lib/src/service/toolbar_service.dart index a45fe8b778..aaf52bc20c 100644 --- a/frontend/app_flowy/packages/flowy_editor/lib/src/service/toolbar_service.dart +++ b/frontend/app_flowy/packages/flowy_editor/lib/src/service/toolbar_service.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flowy_editor/flowy_editor.dart'; import 'package:flowy_editor/src/render/selection/toolbar_widget.dart'; -mixin FlowyToolbarService { +abstract class FlowyToolbarService { /// Show the toolbar widget beside the offset. void showInOffset(Offset offset, LayerLink layerLink); @@ -25,7 +25,8 @@ class FlowyToolbar extends StatefulWidget { State createState() => _FlowyToolbarState(); } -class _FlowyToolbarState extends State with FlowyToolbarService { +class _FlowyToolbarState extends State + implements FlowyToolbarService { OverlayEntry? _toolbarOverlay; @override