Skip to content

Commit 52a5d37

Browse files
committed
fix: fix input elements or widget elements when preload or prerendering complete.
1 parent 2f5c881 commit 52a5d37

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

webf/lib/src/launcher/controller.dart

+2
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,8 @@ class WebFController {
844844
UriParser? uriParser;
845845
WebFLoadingMode mode = WebFLoadingMode.standard;
846846

847+
bool get isPreLoadingOrPreRenderingComplete => preloadStatus == PreloadingStatus.done || preRenderingStatus == PreRenderingStatus.done;
848+
847849
static WebFController? getControllerOfJSContextId(double? contextId) {
848850
if (!_controllerMap.containsKey(contextId)) {
849851
return null;

webf/lib/src/widget/widget_element.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ abstract class WidgetElement extends dom.Element {
3131
return _state!.context;
3232
}
3333

34-
WidgetElement(
35-
BindingContext? context) : super(context) {
34+
WidgetElement(BindingContext? context) : super(context) {
3635
WidgetsFlutterBinding.ensureInitialized();
3736
_widget = WebFWidgetElementStatefulWidget(this);
3837
}
@@ -207,7 +206,7 @@ abstract class WidgetElement extends dom.Element {
207206
static dom.Node? _getAncestorWidgetNode(WidgetElement element) {
208207
dom.Node? parent = element.parentNode;
209208

210-
while(parent != null) {
209+
while (parent != null) {
211210
if (parent.flutterWidget != null) {
212211
return parent;
213212
}
@@ -224,7 +223,8 @@ abstract class WidgetElement extends dom.Element {
224223
dom.Node? ancestorWidgetNode = _getAncestorWidgetNode(this);
225224
if (ancestorWidgetNode != null) {
226225
(ancestorWidgetNode as dom.Element).flutterWidgetState!.addWidgetChild(attachedAdapter!);
227-
} else if (ownerDocument.controller.mode == WebFLoadingMode.standard) {
226+
} else if (ownerDocument.controller.mode == WebFLoadingMode.standard ||
227+
ownerDocument.controller.isPreLoadingOrPreRenderingComplete) {
228228
ownerDocument.controller.onCustomElementAttached!(attachedAdapter!);
229229
} else {
230230
ownerDocument.controller.pendingWidgetElements.add(attachedAdapter!);

0 commit comments

Comments
 (0)