allow returning values from use_eval

This commit is contained in:
Evan Almloff committed 2022-12-08 10:44:56 -06:00
1 parent 1e99e35572
commit e863ef29b8
6 files changed
+100 -13

No files matched your search

+10 -2
View File
@@ -13,7 +13,7 @@ mod hot_reload;
mod protocol;
use desktop_context::UserWindowEvent;
pub use desktop_context::{use_eval, use_window, DesktopContext};
pub use desktop_context::{use_eval, use_window, DesktopContext, EvalResult};
pub use wry;
pub use wry::application as tao;
@@ -126,7 +126,11 @@ pub fn launch_with_props<P: 'static + Send>(root: Component<P>, props: P, mut cf
let window = builder.build(event_loop).unwrap();
let window_id = window.id();
let (is_ready, sender) = (desktop.is_ready.clone(), desktop.sender.clone());
let (is_ready, sender, eval_sender) = (
desktop.is_ready.clone(),
desktop.sender.clone(),
desktop.eval_sender.clone(),
);
let proxy = proxy.clone();
@@ -143,6 +147,10 @@ pub fn launch_with_props<P: 'static + Send>(root: Component<P>, props: P, mut cf
.with_ipc_handler(move |_window: &Window, payload: String| {
parse_ipc_message(&payload)
.map(|message| match message.method() {
"eval_result" => {
let result = message.params();
eval_sender.send(result).unwrap();
}
"user_event" => {
let event = trigger_from_serialized(message.params());
log::trace!("User event: {:?}", event);