Skip to content

Commit 5ff2441

Browse files
committed
fix: Fixing web embeds. #1
1 parent 66bc381 commit 5ff2441

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

lib/mobile_platform_registry.dart

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class PlatformViewRegistry {
2+
static void registerViewFactory(String viewId, dynamic cb) {}
3+
}

lib/web_embeds.dart

+20-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,27 @@ import 'package:flutter/foundation.dart';
33
import 'package:flutter_quill/flutter_quill.dart';
44
import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
55
import 'package:responsive_framework/responsive_framework.dart';
6-
import 'package:youtube_player_flutter/youtube_player_flutter.dart';
76
import 'package:universal_html/html.dart' as html;
87

9-
import 'dart:ui_web' as ui_web;
8+
import 'mobile_platform_registry.dart' if (dart.library.html) 'web_platform_registry.dart' as ui_instance;
9+
10+
/// https://github.com/flutter/flutter/issues/41563#issuecomment-547923478
11+
///
12+
/// https://stackoverflow.com/questions/67732006/condition-import-of-dartio-or-darthtml
13+
class PlatformViewRegistryFix {
14+
void registerViewFactory(String imageURL, dynamic cbFnc) {
15+
if (kIsWeb) {
16+
ui_instance.PlatformViewRegistry.registerViewFactory(
17+
imageURL,
18+
cbFnc,
19+
);
20+
}
21+
}
22+
}
23+
24+
class ImageUniversalUI {
25+
PlatformViewRegistryFix platformViewRegistry = PlatformViewRegistryFix();
26+
}
1027

1128
class ImageEmbedBuilderWeb extends EmbedBuilder {
1229
@override
@@ -27,7 +44,7 @@ class ImageEmbedBuilderWeb extends EmbedBuilder {
2744
return const SizedBox();
2845
}
2946
final size = MediaQuery.of(context).size;
30-
ui_web.platformViewRegistry.registerViewFactory(imageUrl, (viewId) {
47+
ImageUniversalUI().platformViewRegistry.registerViewFactory(imageUrl, (viewId) {
3148
return html.ImageElement()
3249
..src = imageUrl
3350
..style.height = 'auto'

lib/web_platform_registry.dart

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import 'dart:ui_web' as web_ui;
2+
3+
class PlatformViewRegistry {
4+
static void registerViewFactory(String viewId, dynamic cb) {
5+
web_ui.platformViewRegistry.registerViewFactory(viewId, cb);
6+
}
7+
}

0 commit comments

Comments
 (0)