Fix conflict with flutter_quill_extension

pull/1444/head
Ahmed Hnewa 2 years ago
parent e4916cfc86
commit 13bb5d0b08
No known key found for this signature in database
GPG Key ID: C488CC70BBCEF0D1
  1. 109
      example/lib/pages/home_page.dart
  2. 2
      example/lib/pages/read_only_page.dart
  3. 2
      example/lib/widgets/demo_scaffold.dart
  4. 2
      example/lib/widgets/time_stamp_embed_widget.dart
  5. 2
      flutter_quill_extensions/lib/embeds/builders.dart
  6. 2
      flutter_quill_extensions/lib/embeds/toolbar/camera_button.dart
  7. 2
      flutter_quill_extensions/lib/embeds/toolbar/image_video_utils.dart
  8. 2
      flutter_quill_extensions/lib/embeds/toolbar/media_button.dart
  9. 6
      flutter_quill_extensions/pubspec.yaml
  10. 2
      lib/extensions.dart
  11. 6
      lib/src/models/documents/nodes/leaf.dart
  12. 3
      lib/src/widgets/toolbar/link_style_button2.dart

@ -9,7 +9,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_quill/extensions.dart'; import 'package:flutter_quill/extensions.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill_extensions/flutter_quill_extensions.dart'; import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
@ -31,6 +31,7 @@ class HomePage extends StatefulWidget {
class _HomePageState extends State<HomePage> { class _HomePageState extends State<HomePage> {
late final QuillController _controller; late final QuillController _controller;
late final Future<void> _loadDocumentFromAssetsFuture;
final FocusNode _focusNode = FocusNode(); final FocusNode _focusNode = FocusNode();
Timer? _selectAllTimer; Timer? _selectAllTimer;
_SelectionType _selectionType = _SelectionType.none; _SelectionType _selectionType = _SelectionType.none;
@ -46,7 +47,7 @@ class _HomePageState extends State<HomePage> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_loadFromAssets(); _loadDocumentFromAssetsFuture = _loadFromAssets();
} }
Future<void> _loadFromAssets() async { Future<void> _loadFromAssets() async {
@ -55,66 +56,68 @@ class _HomePageState extends State<HomePage> {
? 'assets/sample_data_nomedia.json' ? 'assets/sample_data_nomedia.json'
: 'assets/sample_data.json'); : 'assets/sample_data.json');
final doc = Document.fromJson(jsonDecode(result)); final doc = Document.fromJson(jsonDecode(result));
setState(() { _controller = QuillController(
_controller = QuillController( document: doc,
document: doc, selection: const TextSelection.collapsed(offset: 0),
selection: const TextSelection.collapsed(offset: 0), );
);
});
} catch (error) { } catch (error) {
final doc = Document()..insert(0, 'Empty asset'); final doc = Document()..insert(0, 'Empty asset');
setState(() { _controller = QuillController(
_controller = QuillController( document: doc,
document: doc, selection: const TextSelection.collapsed(offset: 0),
selection: const TextSelection.collapsed(offset: 0), );
);
});
} }
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (_controller == null) { return FutureBuilder(
return const Scaffold(body: Center(child: Text('Loading...'))); future: _loadDocumentFromAssetsFuture,
} builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Scaffold( return const Scaffold(
appBar: AppBar( body: Center(child: CircularProgressIndicator.adaptive()),
backgroundColor: Colors.grey.shade800, );
elevation: 0, }
centerTitle: false, return Scaffold(
title: const Text( appBar: AppBar(
'Flutter Quill', backgroundColor: Colors.grey.shade800,
), elevation: 0,
actions: [ centerTitle: false,
IconButton( title: const Text(
onPressed: () => _insertTimeStamp( 'Flutter Quill',
_controller,
DateTime.now().toString(),
), ),
icon: const Icon(Icons.add_alarm_rounded), actions: [
), IconButton(
IconButton( onPressed: () => _insertTimeStamp(
onPressed: () => showDialog( _controller,
context: context, DateTime.now().toString(),
builder: (context) => AlertDialog( ),
content: Text(_controller.document.toPlainText([ icon: const Icon(Icons.add_alarm_rounded),
...FlutterQuillEmbeds.builders(),
TimeStampEmbedBuilderWidget()
])),
), ),
), IconButton(
icon: const Icon(Icons.text_fields_rounded), onPressed: () => showDialog(
) context: context,
], builder: (context) => AlertDialog(
), content: Text(_controller.document.toPlainText([
drawer: Container( ...FlutterQuillEmbeds.builders(),
constraints: TimeStampEmbedBuilderWidget()
BoxConstraints(maxWidth: MediaQuery.sizeOf(context).width * 0.7), ])),
color: Colors.grey.shade800, ),
child: _buildMenuBar(context), ),
), icon: const Icon(Icons.text_fields_rounded),
body: _buildWelcomeEditor(context), )
],
),
drawer: Container(
constraints: BoxConstraints(
maxWidth: MediaQuery.sizeOf(context).width * 0.7),
color: Colors.grey.shade800,
child: _buildMenuBar(context),
),
body: _buildWelcomeEditor(context),
);
},
); );
} }

@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_quill/extensions.dart'; import 'package:flutter_quill/extensions.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill_extensions/flutter_quill_extensions.dart'; import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
import '../universal_ui/universal_ui.dart'; import '../universal_ui/universal_ui.dart';

@ -5,7 +5,7 @@ import 'package:filesystem_picker/filesystem_picker.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill_extensions/flutter_quill_extensions.dart'; import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';

@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
class TimeStampEmbed extends Embeddable { class TimeStampEmbed extends Embeddable {
const TimeStampEmbed( const TimeStampEmbed(

@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_quill/extensions.dart' as base; import 'package:flutter_quill/extensions.dart' as base;
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill/translations.dart'; import 'package:flutter_quill/translations.dart';
import 'package:math_keyboard/math_keyboard.dart'; import 'package:math_keyboard/math_keyboard.dart';
import 'package:universal_html/html.dart' as html; import 'package:universal_html/html.dart' as html;

@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill/translations.dart'; import 'package:flutter_quill/translations.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';

@ -3,7 +3,7 @@ import 'dart:io' show File;
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_quill/extensions.dart'; import 'package:flutter_quill/extensions.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill/translations.dart'; import 'package:flutter_quill/translations.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';

@ -4,7 +4,7 @@ import 'dart:ui';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_quill/extensions.dart'; import 'package:flutter_quill/extensions.dart';
import 'package:flutter_quill/flutter_quill.dart' hide QuillText; import 'package:flutter_quill/flutter_quill.dart' hide Text;
import 'package:flutter_quill/translations.dart'; import 'package:flutter_quill/translations.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';

@ -12,10 +12,10 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
# flutter_quill: ^7.4.16 flutter_quill: ^7.4.16
# In case you are working on changes for both libraries, # In case you are working on changes for both libraries,
flutter_quill: # flutter_quill:
path: /Users/ahmedhnewa/development/playground/framework_based/flutter/flutter-quill # path: ~/development/playground/framework_based/flutter/flutter-quill
http: ^1.1.0 http: ^1.1.0
image_picker: ">=1.0.4" image_picker: ">=1.0.4"

@ -1,6 +1,6 @@
library flutter_quill.extensions; library flutter_quill.extensions;
export 'src/models/documents/nodes/leaf.dart' hide QuillText; export 'src/models/documents/nodes/leaf.dart' hide Text;
export 'src/models/rules/insert.dart'; export 'src/models/rules/insert.dart';
export 'src/utils/platform.dart'; export 'src/utils/platform.dart';
export 'src/utils/string.dart'; export 'src/utils/string.dart';

@ -200,6 +200,9 @@ abstract class Leaf extends Node {
} }
} }
@Deprecated('Please use [QuillText] instead')
class Text extends QuillText {}
/// A span of formatted text within a line in a Quill document. /// A span of formatted text within a line in a Quill document.
/// ///
/// Text is a leaf node of a document tree. /// Text is a leaf node of a document tree.
@ -213,8 +216,9 @@ abstract class Leaf extends Node {
/// * [Line], a node representing a line of text. /// * [Line], a node representing a line of text.
/// ///
/// Update: /// Update:
/// The reason we are renamed quill [Text] to [QuillText] so it doesn't /// The reason we are renamed quill Text to [QuillText] so it doesn't
/// conflict with the one from the widgets, material or cupertino library /// conflict with the one from the widgets, material or cupertino library
///
class QuillText extends Leaf { class QuillText extends Leaf {
QuillText([String text = '']) QuillText([String text = ''])
: assert(!text.contains('\n')), : assert(!text.contains('\n')),

@ -2,7 +2,8 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:url_launcher/link.dart'; import 'package:url_launcher/link.dart';
import '../../../extensions.dart'; import '../../../extensions.dart'
show UtilityWidgets, AutoFormatMultipleLinksRule;
import '../../../translations.dart'; import '../../../translations.dart';
import '../../models/documents/attribute.dart'; import '../../models/documents/attribute.dart';
import '../../models/themes/quill_dialog_theme.dart'; import '../../models/themes/quill_dialog_theme.dart';

Loading…
Cancel
Save