fix: remove infinite loop in submit_action effects
This commit is contained in:
1 parent
9ebab0689a
commit
95b69a36a8
7 files changed
+54
-52
No files matched your search
@@ -41,19 +41,16 @@ pub fn DashboardButton(
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="dashboard-button flex items-start gap-3 rounded-lg bg-white border-grey-300 p-6
|
class="dashboard-button flex items-start gap-3 rounded-lg bg-white border-grey-300 p-6
|
||||||
hover:bg-gray-100 transition cursor-pointer w-full text-left
|
hover:bg-gray-100 transition cursor-pointer w-full text-left
|
||||||
shadow-[inset_0_0_6px_rgba(0,0,0,0.12)]"
|
shadow-[inset_0_0_6px_rgba(0,0,0,0.12)]"
|
||||||
on:click=on_click>
|
on:click=on_click
|
||||||
|
>
|
||||||
|
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<img src={icon.clone()} class="h-8 w-8" alt="icon"/>
|
<img src=icon.clone() class="h-8 w-8" alt="icon" />
|
||||||
<h3 class="font-semibold text-base">
|
<h3 class="font-semibold text-base">{title.clone()}</h3>
|
||||||
{title.clone()}
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<p class="text-sm text-gray-600 pt-6">
|
<p class="text-sm text-gray-600 pt-6">{description.clone()}</p>
|
||||||
{description.clone()}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -24,7 +24,5 @@ pub fn ProviderLoginContext() -> impl IntoView {
|
|||||||
"/providers/callback"
|
"/providers/callback"
|
||||||
);
|
);
|
||||||
|
|
||||||
view! {
|
view! { <Outlet /> }
|
||||||
<Outlet />
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,5 @@ pub fn StudentLoginContext() -> impl IntoView {
|
|||||||
"/students/callback"
|
"/students/callback"
|
||||||
);
|
);
|
||||||
|
|
||||||
view! {
|
view! { <Outlet /> }
|
||||||
<Outlet />
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -119,27 +119,34 @@ pub fn ProviderContactPage() -> impl IntoView {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let mut toasts_context = expect_context::<ToastContext>();
|
let mut toasts_context = expect_context::<ToastContext>();
|
||||||
Effect::new(move || {
|
Effect::watch(
|
||||||
match submit_action.value().get() {
|
move || submit_action.value().get(),
|
||||||
Some(Ok(_)) => toasts_context.toast(
|
move |value, _, _| {
|
||||||
Toast::new()
|
log!("Running submit_action effect");
|
||||||
|
let Some(result) = value else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
let toast = match result {
|
||||||
|
Ok(_) => Toast::new()
|
||||||
.id(uuid::Uuid::new_v4())
|
.id(uuid::Uuid::new_v4())
|
||||||
.header("Submission Successful")
|
.header("Submission Successful")
|
||||||
.msg("You can go back or continue editing your responses.")
|
.msg("You can go back or continue editing your responses."),
|
||||||
),
|
Err(err) => Toast::new()
|
||||||
Some(Err(err)) => toasts_context.toast(
|
|
||||||
Toast::new()
|
|
||||||
.id(uuid::Uuid::new_v4())
|
.id(uuid::Uuid::new_v4())
|
||||||
.header("Submission Failed")
|
.header("Submission Failed")
|
||||||
.msg(err.to_string())
|
.msg(err.to_string())
|
||||||
),
|
};
|
||||||
_ => {}
|
|
||||||
}
|
untrack(move || {
|
||||||
|
submit_action.clear();
|
||||||
submit_action.clear();
|
toasts_context.toast(toast);
|
||||||
});
|
});
|
||||||
|
},
|
||||||
// Display contact form.
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
// Display contact form.
|
||||||
view! {
|
view! {
|
||||||
<Banner title="R15 Scholarships" logo="/PHS_Stacked_Acronym.png" path="/" />
|
<Banner title="R15 Scholarships" logo="/PHS_Stacked_Acronym.png" path="/" />
|
||||||
<AuthLoaded fallback=Loading>
|
<AuthLoaded fallback=Loading>
|
||||||
|
|||||||
@@ -20,11 +20,7 @@ pub fn ProviderPortal() -> impl IntoView {
|
|||||||
});
|
});
|
||||||
|
|
||||||
view! {
|
view! {
|
||||||
<Banner
|
<Banner title="Provider Dashboard" logo="PHS_Stacked_Acronym.png" path="/" />
|
||||||
title="Provider Dashboard"
|
|
||||||
logo="PHS_Stacked_Acronym.png"
|
|
||||||
path="/"
|
|
||||||
/>
|
|
||||||
<AuthLoaded fallback=Loading>
|
<AuthLoaded fallback=Loading>
|
||||||
<Authenticated unauthenticated=UnauthenticatedPage>
|
<Authenticated unauthenticated=UnauthenticatedPage>
|
||||||
<div class="mx-auto px-6">
|
<div class="mx-auto px-6">
|
||||||
|
|||||||
@@ -490,25 +490,32 @@ fn ScholarshipForm(
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Effect::new(move || {
|
Effect::watch(
|
||||||
match submit_action.value().get() {
|
move || submit_action.value().get(),
|
||||||
Some(Ok(_)) => toasts.toast(
|
move |value, _, _| {
|
||||||
Toast::new()
|
log!("Running submit_action effect");
|
||||||
|
let Some(result) = value else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
let toast = match result {
|
||||||
|
Ok(_) => Toast::new()
|
||||||
.id(uuid::Uuid::new_v4())
|
.id(uuid::Uuid::new_v4())
|
||||||
.header("Submission Successful")
|
.header("Submission Successful")
|
||||||
.msg("You can go back or continue editing your responses.")
|
.msg("You can go back or continue editing your responses."),
|
||||||
),
|
Err(err) => Toast::new()
|
||||||
Some(Err(err)) => toasts.toast(
|
|
||||||
Toast::new()
|
|
||||||
.id(uuid::Uuid::new_v4())
|
.id(uuid::Uuid::new_v4())
|
||||||
.header("Submission Failed")
|
.header("Submission Failed")
|
||||||
.msg(err.to_string())
|
.msg(err.to_string())
|
||||||
),
|
};
|
||||||
_ => {}
|
|
||||||
}
|
|
||||||
|
|
||||||
submit_action.clear();
|
untrack(move || {
|
||||||
});
|
submit_action.clear();
|
||||||
|
toasts.toast(toast);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,7 @@ pub fn TestPage() -> impl IntoView {
|
|||||||
<h3 class="text-white font-bold">Important Dates</h3>
|
<h3 class="text-white font-bold">Important Dates</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="flex flex-col p-3 gap-3">
|
<div class="flex flex-col p-3 gap-3"></div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in new issue
Block a user