From 729bfa3be1109cc30ff4ec10abfe8e992d74bde5 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Sat, 6 Jan 2024 11:34:26 -0800 Subject: [PATCH] Fix eval provider --- packages/desktop/src/webview.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/desktop/src/webview.rs b/packages/desktop/src/webview.rs index b83b5794e..a8a4dd23c 100644 --- a/packages/desktop/src/webview.rs +++ b/packages/desktop/src/webview.rs @@ -9,6 +9,7 @@ use crate::{ Config, DesktopContext, DesktopService, }; use dioxus_core::VirtualDom; +use dioxus_html::prelude::EvalProvider; use futures_util::{pin_mut, FutureExt}; use std::{rc::Rc, task::Waker}; use wry::{RequestAsyncResponder, WebContext, WebViewBuilder}; @@ -151,8 +152,11 @@ impl WebviewInstance { dom.base_scope().provide_context(desktop_context.clone()); // Also set up its eval provider - dom.base_scope() - .provide_context(Rc::new(DesktopEvalProvider::new(desktop_context.clone()))); + // It's important that we provide as dyn EvalProvider - using the concrete type has + // a different TypeId. + let provider: Rc = + Rc::new(DesktopEvalProvider::new(desktop_context.clone())); + dom.base_scope().provide_context(provider); WebviewInstance { waker: tao_waker(shared.proxy.clone(), desktop_context.window.id()),