make the closure dyn
This commit is contained in:
2 files changed
+11
-9
No files matched your search
@@ -200,8 +200,8 @@ pub(super) fn handler(
|
||||
}
|
||||
|
||||
/// Get a closure that executes any JavaScript in the WebView context.
|
||||
pub fn use_eval<S: std::string::ToString>(cx: &ScopeState) -> impl Fn(S) + '_ {
|
||||
let desktop = use_window(&cx);
|
||||
pub fn use_eval<S: std::string::ToString>(cx: &ScopeState) -> &dyn Fn(S) {
|
||||
let desktop = use_window(&cx).clone();
|
||||
|
||||
move |script| desktop.eval(script)
|
||||
cx.use_hook(|_| move |script| desktop.eval(script))
|
||||
}
|
||||
@@ -15,10 +15,12 @@ use dioxus_core::*;
|
||||
///
|
||||
/// The closure will panic if the provided script is not valid JavaScript code
|
||||
/// or if it returns an uncaught error.
|
||||
pub fn use_eval<S: std::string::ToString>(_cx: &ScopeState) -> impl Fn(S) {
|
||||
|script| {
|
||||
js_sys::Function::new_no_args(&script.to_string())
|
||||
.call0(&wasm_bindgen::JsValue::NULL)
|
||||
.expect("failed to eval script");
|
||||
}
|
||||
pub fn use_eval<S: std::string::ToString>(cx: &ScopeState) -> &dyn Fn(S) {
|
||||
cx.use_hook(|_| {
|
||||
|script: S| {
|
||||
js_sys::Function::new_no_args(&script.to_string())
|
||||
.call0(&wasm_bindgen::JsValue::NULL)
|
||||
.expect("failed to eval script");
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user