diff --git a/src/inertia.rs b/src/inertia.rs index 9fccb2d..2134901 100644 --- a/src/inertia.rs +++ b/src/inertia.rs @@ -70,6 +70,8 @@ pub trait InertiaResponder { props: InertiaProps<'b>, ) -> Result; + fn inner_back(&self, req: &THttpRequest) -> TRedirect; + fn inner_back_with_errors(&self, req: &THttpRequest, errors: HashMap<&str, Value>) -> TRedirect; diff --git a/src/providers/actix_provider/facade.rs b/src/providers/actix_provider/facade.rs index eae3d41..f7d8d79 100644 --- a/src/providers/actix_provider/facade.rs +++ b/src/providers/actix_provider/facade.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use crate::facade::InertiaFacade; use crate::inertia::InertiaResponder; use crate::utils::inertia_err_msg; -use crate::{hashmap, Component, Inertia, InertiaError, InertiaProps}; +use crate::{Component, Inertia, InertiaError, InertiaProps}; use actix_web::web::{Data, Redirect}; use actix_web::{HttpRequest, HttpResponse}; use async_trait::async_trait; @@ -45,7 +45,7 @@ impl InertiaFacade for Inertia { #[inline] fn back(req: &HttpRequest) -> Redirect { let inertia = extract_inertia(req); - inertia.inner_back_with_errors(req, hashmap![]) + inertia.inner_back(req) } #[inline] diff --git a/src/providers/actix_provider/impls.rs b/src/providers/actix_provider/impls.rs index ee905a3..70bd157 100644 --- a/src/providers/actix_provider/impls.rs +++ b/src/providers/actix_provider/impls.rs @@ -159,7 +159,7 @@ impl InertiaResponder for Inertia { } #[inline] - fn inner_back_with_errors(&self, req: &HttpRequest, errors: HashMap<&str, Value>) -> Redirect { + fn inner_back(&self, req: &HttpRequest) -> Redirect { let session = req.extensions().get::().cloned(); let previous_uri = if let Some(session) = session { @@ -172,6 +172,11 @@ impl InertiaResponder for Inertia { }) }; + Redirect::new(req.uri().to_string(), previous_uri).using_status_code(StatusCode::FOUND) + } + + #[inline] + fn inner_back_with_errors(&self, req: &HttpRequest, errors: HashMap<&str, Value>) -> Redirect { if !errors.is_empty() { let mut errors_map = Map::new(); @@ -192,7 +197,7 @@ impl InertiaResponder for Inertia { .insert(SessionErrors(resolve_session_errors(errors_map, req))); } - Redirect::new(req.uri().to_string(), previous_uri).using_status_code(StatusCode::FOUND) + self.inner_back(req) } }