AppFlowy-IO / AppFlowy-IO/appflowy-editor

[Bug] iOS scroll to cursor issue

Ouverte
#644 3 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
p1
Langage dominant
Dart
Étoiles
684
Forks
329
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### Bug Description

I need to implement AppflowyEditor with dynamic height.
It worked correctly in 1.4.4 version, but version 2.1.0 breaks flow

### How to Reproduce

```dart
class HomeSamplePage extends StatefulWidget {
static const String route = '/sample';

const HomeSamplePage({Key? key}) : super(key: key);

@override
State createState() => _HomeSamplePageState();
}

class _HomeSamplePageState extends State {
final _descriptionScroll = ScrollController();
final _descriptionFocusNode = FocusNode();
late EditorState editorState;

@override
void initState() {
editorState = EditorState(
document: Document.blank(withInitialText: true),
);
_descriptionFocusNode.addListener(() {
setState(() {
//do refresh UI to show RichText buttons
});
});
super.initState();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Sample')),
body: SafeArea(
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
TextFormField(
decoration: const InputDecoration(hintText: 'Title'),
),
const Divider(),
IntrinsicHeight(
child: AppFlowyEditor(
editorStyle:
AppflowyEditorStyles.getDescriptionStyles(
context),
editorState: editorState,
editorScrollController: EditorScrollController(
editorState: editorState,
scrollController: _descriptionScroll,
shrinkWrap: true,
),
focusNode: _descriptionFocusNode,
blockComponentBuilders:
AppflowyEditorStyles.getBuilders(
context, editorState),
),
),
const Divider(),
const Text('Some text under description'),
],
),
),
),
const Divider(),
Row(
children: [
OutlinedButton(
child: const Text('switch'),
onPressed: () async {
//some action, imitate real ui
},
),
],
),
const Divider(),
if (_descriptionFocusNode.hasFocus) ...[
const SizedBox(
height: 2,
),
//custom toolbar
RichTextToolbar(editorState: editorState),
const SizedBox(
height: 2,
),
],
],
),
),
),
);
}
}
```

### Expected Behavior

cursor is always visible

### Operating System

iOS

### AppFlowy Editor Version(s)

2.1.0

### Screenshots

2.1.0
https://github.com/AppFlowy-IO/appflowy-editor/assets/142427747/5e8c4f36-4cf9-45b3-8a2a-5191e7ef995b

1.4.4

https://github.com/AppFlowy-IO/appflowy-editor/assets/142427747/c680a6eb-fbc2-4f70-9fa9-7925a84853cc

### Additional Context

I observe next logs with 2.1.0 version
flutter: App: \^[[38;5;196m┌───────────────────────────────────────────────────────────────────────────────<…>
flutter: App: \^[[38;5;196m│ 'package:appflowy_editor/src/flutter/scrollable_helpers.dart': Failed assertion: line 236 pos 7: 'globalRect.size.width >= _dragTargetRelatedToScrollOrigin.size.width &&<…>
flutter: App: \^[[38;5;196m│ globalRect.size.height >=<…>
flutter: App: \^[[38;5;196m│ _dragTargetRelatedToScrollOrigin.size.height': Drag target size is larger than scrollable size, which may cause bouncing<…>
flutter: App: \^[[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄<…>
flutter: App: \^[[38;5;196m│ #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)<…>
flutter: App: \^[[38;5;196m│ #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)<…>
flutter: App: \^[[38;5;196m│ #2 EdgeDraggingAutoScroller._scroll (package:appflowy_editor/src/flutter/scrollable_helpers.dart:236:7)<…>
flutter: App: \^[[38;5;196m│ #3 EdgeDraggingAutoScroller.startAutoScrollIfNecessary (package:appflowy_editor/src/flutter/scrollable_helpers.dart:215:5)<…>
flutter: App: \^[[38;5;196m│ #4 AutoScroller.startAutoScroll (package:appflowy_editor/src/editor/editor_component/service/scroll/auto_scroller.dart:48:5)<…>
flutter: App: \^[[38;5;196m│ #5 _MobileScrollServiceState.startAutoScroll (package:appflowy_editor/src/editor/editor_component/service/scroll/mobile_scroll_service.dart:103:19)<…>
flutter: App: \^[[38;5;196m│ #6 _ScrollServiceWidgetState.startAutoScroll (package:appflowy_editor/src/editor/editor_component/service/scroll_service_widget.dart:167:13)<…>
flutter: App: \^[[38;5;196m│ #7 _ScrollServiceWidgetState._onSelectionChanged.. (package:appflowy_editor/src/editor/editor_component/service/scroll_service_widget.dart:104:11)<…>
flutter: App: \^[[38;5;196m│ #8 new Future.delayed. (dart:async/future.dart:427:39)<…>
flutter: App: \^[[38;5;196m│ #9 _rootRun (dart:async/zone.dart:1391:47)<…>
flutter: App: \^[[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄<…>
flutter: App: \^[[38;5;196m│ ⛔ CRASH: <…>
flutter: App: \^[[38;5;196m└───────────────────────────────────────────────────────────────────────────────<…>

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.