prevent_default until after navigation so a failed navigation will fall back to browser navigation

This commit is contained in:
Greg Johnston 2022-11-21 09:40:42 -05:00
parent a3181dea64
commit 5e532b60b0
1 changed files with 5 additions and 2 deletions

View File

@ -68,7 +68,6 @@ where
if ev.default_prevented() {
return;
}
ev.prevent_default();
let navigate = use_navigate(cx);
let (form, method, action, enctype) = extract_form_attributes(&ev);
@ -84,6 +83,8 @@ where
.unwrap_or_default();
// POST
if method == "post" {
ev.prevent_default();
let on_response = on_response.clone();
spawn_local(async move {
let res = gloo_net::http::Request::post(&action)
@ -122,7 +123,9 @@ where
// otherwise, GET
else {
let params = params.to_string().as_string().unwrap_or_default();
navigate(&format!("{action}?{params}"), Default::default());
if navigate(&format!("{action}?{params}"), Default::default()).is_ok() {
ev.prevent_default();
}
}
};