editor_widget.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'dart:io';
  2. import 'package:app_flowy/workspace/domain/i_doc.dart';
  3. import 'package:flowy_editor/flowy_editor.dart';
  4. import 'package:flutter/material.dart';
  5. class EditorWdiget extends StatelessWidget {
  6. final FocusNode _focusNode = FocusNode();
  7. final Doc doc;
  8. EditorWdiget({Key? key, required this.doc}) : super(key: key);
  9. @override
  10. Widget build(BuildContext context) {
  11. final controller = EditorController(
  12. document: doc.data,
  13. selection: const TextSelection.collapsed(offset: 0),
  14. );
  15. return Column(
  16. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  17. children: [
  18. _renderEditor(controller),
  19. _renderToolbar(controller),
  20. ],
  21. );
  22. }
  23. Widget _renderEditor(EditorController controller) {
  24. final editor = FlowyEditor(
  25. controller: controller,
  26. focusNode: _focusNode,
  27. scrollable: true,
  28. autoFocus: false,
  29. expands: false,
  30. padding: const EdgeInsets.symmetric(horizontal: 8.0),
  31. readOnly: false,
  32. scrollBottomInset: 0,
  33. scrollController: ScrollController(),
  34. );
  35. return Expanded(child: editor);
  36. }
  37. Widget _renderToolbar(EditorController controller) {
  38. return FlowyToolbar.basic(
  39. controller: controller,
  40. onImageSelectCallback: _onImageSelection,
  41. );
  42. }
  43. Future<String> _onImageSelection(File file) {
  44. throw UnimplementedError();
  45. }
  46. }