dartlangeditorflutterflutter-appsflutter-examplesflutter-packageflutter-widgetquillquill-deltaquilljsreactquillrich-textrich-text-editorwysiwygwysiwyg-editor
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
import 'package:flutter/foundation.dart' show debugPrint, kDebugMode; |
|
import 'package:flutter/widgets.dart' show InheritedWidget, BuildContext; |
|
|
|
import '../../models/config/quill_configurations.dart'; |
|
|
|
class QuillProvider extends InheritedWidget { |
|
const QuillProvider({ |
|
required this.configurations, |
|
required super.child, |
|
}); |
|
|
|
/// Controller object which establishes a link between a rich text document |
|
/// and this editor. |
|
/// |
|
/// Must not be null. |
|
final QuillConfigurations configurations; |
|
|
|
@override |
|
bool updateShouldNotify(covariant InheritedWidget oldWidget) { |
|
throw false; |
|
} |
|
|
|
static QuillProvider? of(BuildContext context) { |
|
return context.dependOnInheritedWidgetOfExactType<QuillProvider>(); |
|
} |
|
|
|
static QuillProvider ofNotNull(BuildContext context) { |
|
final provider = of(context); |
|
if (provider == null) { |
|
if (kDebugMode) { |
|
debugPrint( |
|
'The quill provider must be provided in the widget tree.', |
|
); |
|
} |
|
throw ArgumentError.checkNotNull( |
|
'You are using a widget in the Flutter quill library that require ' |
|
'The Quill provider widget to be in the parent widget tree ' |
|
'because ' |
|
'The provider is $provider. Please make sure to wrap this widget' |
|
' with' |
|
' QuillProvider widget. ' |
|
'You might using QuillEditor and QuillToolbar so make sure to' |
|
' wrap them with the quill provider widget and setup the required ' |
|
'configurations', |
|
'QuillProvider', |
|
); |
|
} |
|
return provider; |
|
} |
|
}
|
|
|