From f57a323cda4a3d734a1d56db15f5a293af6c03b8 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 5 Sep 2024 17:52:19 +0800 Subject: [PATCH] feat: (flutter) (web) if importCanvasAsWidget is false, render transparency --- .../widgets/thermion_widget_web_impl.dart | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/thermion_flutter/thermion_flutter/lib/thermion/widgets/thermion_widget_web_impl.dart b/thermion_flutter/thermion_flutter/lib/thermion/widgets/thermion_widget_web_impl.dart index 905d63a6..752f5116 100644 --- a/thermion_flutter/thermion_flutter/lib/thermion/widgets/thermion_widget_web_impl.dart +++ b/thermion_flutter/thermion_flutter/lib/thermion/widgets/thermion_widget_web_impl.dart @@ -1,19 +1,32 @@ import 'dart:js_util'; -import 'dart:js_interop'; -import 'dart:js_interop_unsafe'; import 'dart:ui' as ui; import 'dart:ui_web' as ui_web; -import 'package:flutter/material.dart'; +import 'package:thermion_flutter_web/thermion_flutter_web_options.dart'; import 'package:web/web.dart'; import 'package:flutter/widgets.dart'; -import 'dart:html' as html; -class ThermionWidgetWeb extends StatefulWidget { +class ThermionWidgetWeb extends StatelessWidget { + final ThermionFlutterWebOptions options; + + const ThermionWidgetWeb({super.key, required this.options}); + @override - State createState() => ThermionWidgetWebState(); + Widget build(BuildContext context) { + if (options.importCanvasAsWidget) { + return _ImageCopyingWidget(); + } + return Container(color: const Color(0x00000000)); + } } -class ThermionWidgetWebState extends State { +class _ImageCopyingWidget extends StatefulWidget { + @override + State createState() { + return _ImageCopyingWidgetState(); + } +} + +class _ImageCopyingWidgetState extends State<_ImageCopyingWidget> { ui.Image? _img; @override @@ -41,9 +54,6 @@ class ThermionWidgetWebState extends State { @override Widget build(BuildContext context) { - if (_img == null) { - return Container(color: Colors.transparent); - } return RawImage(image: _img!); } }