fix use_server_future

This commit is contained in:
Evan Almloff committed 2023-07-17 17:23:15 -07:00
1 parent e3a759ba38
commit 8e54a89a74
9 files changed
+141 -65

No files matched your search

@@ -7,19 +7,42 @@ use super::HTMLDataCursor;
#[allow(unused)]
pub(crate) fn serde_from_bytes<T: DeserializeOwned>(string: &[u8]) -> Option<T> {
let decompressed = STANDARD.decode(string).ok()?;
let decompressed = match STANDARD.decode(string) {
Ok(bytes) => bytes,
Err(err) => {
log::error!("Failed to decode base64: {}", err);
return None;
}
};
postcard::from_bytes(&decompressed).ok()
match postcard::from_bytes(&decompressed) {
Ok(data) => Some(data),
Err(err) => {
log::error!("Failed to deserialize: {}", err);
None
}
}
}
static SERVER_DATA: once_cell::sync::Lazy<Option<HTMLDataCursor>> =
once_cell::sync::Lazy::new(|| {
#[cfg(target_arch = "wasm32")]
{
let attribute = web_sys::window()?
.document()?
.get_element_by_id("dioxus-storage-data")?
.get_attribute("data-serialized")?;
let window = web_sys::window()?.document()?;
let element = match window.get_element_by_id("dioxus-storage-data") {
Some(element) => element,
None => {
log::error!("Failed to get element by id: dioxus-storage-data");
return None;
}
};
let attribute = match element.get_attribute("data-serialized") {
Some(attribute) => attribute,
None => {
log::error!("Failed to get attribute: data-serialized");
return None;
}
};
let data: super::HTMLData = serde_from_bytes(attribute.as_bytes())?;