diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 00000000..cb1ea33c --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,3 @@ +analyzer: + errors: + undefined_prefixed_name: ignore \ No newline at end of file diff --git a/lib/utils/universal_ui/fake_ui.dart b/lib/utils/universal_ui/fake_ui.dart new file mode 100644 index 00000000..da0f9a32 --- /dev/null +++ b/lib/utils/universal_ui/fake_ui.dart @@ -0,0 +1,3 @@ +class platformViewRegistry { + static registerViewFactory(String viewId, dynamic cb) {} +} diff --git a/lib/utils/universal_ui/real_ui.dart b/lib/utils/universal_ui/real_ui.dart new file mode 100644 index 00000000..c2b8ea23 --- /dev/null +++ b/lib/utils/universal_ui/real_ui.dart @@ -0,0 +1,9 @@ +import 'dart:ui' as ui; + +// ignore: camel_case_types +class platformViewRegistry { + static registerViewFactory(String viewId, dynamic cb) { + // ignore:undefined_prefixed_name + ui.platformViewRegistry.registerViewFactory(viewId, cb); + } +} diff --git a/lib/utils/universal_ui/universal_ui.dart b/lib/utils/universal_ui/universal_ui.dart new file mode 100644 index 00000000..d97aff1f --- /dev/null +++ b/lib/utils/universal_ui/universal_ui.dart @@ -0,0 +1,22 @@ +library universal_ui; + +import 'package:flutter/foundation.dart'; +import 'fake_ui.dart' if (dart.library.html) 'real_ui.dart' as ui_instance; + +class PlatformViewRegistryFix { + registerViewFactory(dynamic x, dynamic y) { + if (kIsWeb) { + // ignore: undefined_prefixed_name + ui_instance.platformViewRegistry.registerViewFactory( + x, + y, + ); + } else {} + } +} + +class UniversalUI { + PlatformViewRegistryFix platformViewRegistry = PlatformViewRegistryFix(); +} + +var ui = UniversalUI(); diff --git a/lib/widgets/editor.dart b/lib/widgets/editor.dart index 54cf732c..b97267c8 100644 --- a/lib/widgets/editor.dart +++ b/lib/widgets/editor.dart @@ -16,13 +16,13 @@ import 'package:flutter_quill/models/documents/nodes/embed.dart'; import 'package:flutter_quill/models/documents/nodes/leaf.dart' as leaf; import 'package:flutter_quill/models/documents/nodes/line.dart'; import 'package:flutter_quill/models/documents/nodes/node.dart'; +import 'package:flutter_quill/utils/universal_ui/universal_ui.dart'; import 'package:flutter_quill/widgets/image.dart'; import 'package:flutter_quill/widgets/raw_editor.dart'; import 'package:flutter_quill/widgets/responsive_widget.dart'; import 'package:flutter_quill/widgets/text_selection.dart'; import 'package:string_validator/string_validator.dart'; import 'package:universal_html/prefer_universal/html.dart' as html; -import 'package:universal_ui/universal_ui.dart'; import 'package:url_launcher/url_launcher.dart'; import 'box.dart'; diff --git a/pubspec.lock b/pubspec.lock index 90b373f5..a2549c0a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -294,13 +294,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" - universal_ui: - dependency: "direct main" - description: - name: universal_ui - url: "https://pub.dartlang.org" - source: hosted - version: "0.0.8" url_launcher: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 2e04e777..956d863d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,6 @@ dependencies: file_picker: ^3.0.0 string_validator: ^0.2.0-nullsafety.0 flutter_keyboard_visibility: ^5.0.0 - universal_ui: ^0.0.8