Skip to content

Commit fb96381

Browse files
committed
[flutter_html_iframe] Fix compile error in Flutter 3.32.0
- correct conditional imports: use dart.library.js_interop instead of dart.library.html - remove ui_fake classes, it is legacy implementation and should be replaced by web_ui package This is from an Open PR: Sub6Resources#1485
1 parent e0e72b6 commit fb96381

File tree

5 files changed

+18
-52
lines changed

5 files changed

+18
-52
lines changed

packages/flutter_html_iframe/lib/flutter_html_iframe.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@ import 'package:webview_flutter/webview_flutter.dart';
66

77
import 'iframe_unsupported.dart'
88
if (dart.library.io) 'iframe_mobile.dart'
9-
if (dart.library.html) 'iframe_web.dart';
9+
if (dart.library.js_interop) 'iframe_web.dart';
1010

1111
class IframeHtmlExtension extends HtmlExtension {
1212
final NavigationDelegate? navigationDelegate;
1313

14-
const IframeHtmlExtension({
15-
this.navigationDelegate,
16-
});
14+
const IframeHtmlExtension({this.navigationDelegate});
1715

1816
@override
1917
Set<String> get supportedTags => {"iframe"};

packages/flutter_html_iframe/lib/iframe_web.dart

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import 'dart:convert';
22
import 'dart:math';
3+
import 'dart:ui_web' as ui_web;
34

45
import 'package:flutter/material.dart';
56
import 'package:flutter_html/flutter_html.dart';
6-
import 'package:flutter_html_iframe/shims/dart_ui.dart' as ui;
7-
// ignore: avoid_web_libraries_in_flutter
8-
import 'dart:html' as html;
97

108
import 'package:webview_flutter/webview_flutter.dart';
119

@@ -21,34 +19,38 @@ class IframeWidget extends StatelessWidget {
2119

2220
@override
2321
Widget build(BuildContext context) {
24-
final givenWidth =
25-
double.tryParse(extensionContext.attributes['width'] ?? "");
26-
final givenHeight =
27-
double.tryParse(extensionContext.attributes['height'] ?? "");
22+
final givenWidth = double.tryParse(
23+
extensionContext.attributes['width'] ?? "",
24+
);
25+
final givenHeight = double.tryParse(
26+
extensionContext.attributes['height'] ?? "",
27+
);
2828
final html.IFrameElement iframe = html.IFrameElement()
2929
..width = (givenWidth ?? (givenHeight ?? 150) * 2).toString()
3030
..height = (givenHeight ?? (givenWidth ?? 300) / 2).toString()
3131
..src = extensionContext.attributes['src']
3232
..style.border = 'none';
3333
final String createdViewId = _getRandString(10);
34-
ui.platformViewRegistry
35-
.registerViewFactory(createdViewId, (int viewId) => iframe);
34+
ui_web.platformViewRegistry.registerViewFactory(
35+
createdViewId,
36+
(int viewId) => iframe,
37+
);
3638
return SizedBox(
37-
width: double.tryParse(extensionContext.attributes['width'] ?? "") ??
39+
width:
40+
double.tryParse(extensionContext.attributes['width'] ?? "") ??
3841
(double.tryParse(extensionContext.attributes['height'] ?? "") ??
3942
150) *
4043
2,
41-
height: double.tryParse(extensionContext.attributes['height'] ?? "") ??
44+
height:
45+
double.tryParse(extensionContext.attributes['height'] ?? "") ??
4246
(double.tryParse(extensionContext.attributes['width'] ?? "") ?? 300) /
4347
2,
4448
child: CssBoxWidget(
4549
style: extensionContext.styledElement!.style,
4650
childIsReplaced: true,
4751
child: Directionality(
4852
textDirection: extensionContext.styledElement!.style.direction!,
49-
child: HtmlElementView(
50-
viewType: createdViewId,
51-
),
53+
child: HtmlElementView(viewType: createdViewId),
5254
),
5355
),
5456
);

packages/flutter_html_iframe/lib/shims/dart_ui.dart

Lines changed: 0 additions & 10 deletions
This file was deleted.

packages/flutter_html_iframe/lib/shims/dart_ui_fake.dart

Lines changed: 0 additions & 19 deletions
This file was deleted.

packages/flutter_html_iframe/lib/shims/dart_ui_real.dart

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)