Move the document trait into a separate crate (#3035)

* add a default head method through eval
* remove the old document trait
* implement document for each platform
* pull out document into a dedicated crate to cut down on shared dependencies
---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
Evan AlmloffandJonathan Kelley authored and GitHub committed 2024-10-14 10:33:37 -07:00
1 parent 2b219c826c
commit 519ec9d294
91 files changed
+1113 -1044

No files matched your search

+6 -6
View File
@@ -16,23 +16,23 @@ static EVALS_RETURNED: GlobalSignal<usize> = Signal::global(|| 0);
fn app() -> Element {
// Double 100 values in the value
use_future(|| async {
let mut eval = eval(
let mut eval = document::eval(
r#"for (let i = 0; i < 100; i++) {
let value = await dioxus.recv();
dioxus.send(value*2);
}"#,
);
for i in 0..100 {
eval.send(serde_json::Value::from(i)).unwrap();
let value = eval.recv().await.unwrap();
assert_eq!(value, serde_json::Value::from(i * 2));
eval.send(i).unwrap();
let value: i32 = eval.recv().await.unwrap();
assert_eq!(value, i * 2);
EVALS_RECEIVED.with_mut(|x| *x += 1);
}
});
// Make sure returning no value resolves the future
use_future(|| async {
let eval = eval(r#"return;"#);
let eval = document::eval(r#"return;"#);
eval.await.unwrap();
EVALS_RETURNED.with_mut(|x| *x += 1);
@@ -40,7 +40,7 @@ fn app() -> Element {
// Return a value from the future
use_future(|| async {
let eval = eval(
let eval = document::eval(
r#"
return [1, 2, 3];
"#,
+1 -1
View File
@@ -16,7 +16,7 @@ fn use_inner_html(id: &'static str) -> Option<String> {
spawn(async move {
tokio::time::sleep(std::time::Duration::from_millis(500)).await;
let res = eval(&format!(
let res = document::eval(&format!(
r#"let element = document.getElementById('{}');
return element.innerHTML"#,
id
+1 -1
View File
@@ -50,7 +50,7 @@ pub fn mock_event_with_extra(id: &'static str, value: &'static str, extra: &'sta
"#
);
eval(&js).await.unwrap();
document::eval(&js).await.unwrap();
});
})
}