Skip to content

Commit 3834e84

Browse files
arbrandesclaude
andcommitted
fix: close modals only after mutation succeeds
Previously, modals closed immediately after firing mutations via mutate(), giving no feedback on failure. Now the close action is passed as an onSuccess callback so the modal stays open if the mutation fails. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e0d4061 commit 3834e84

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

src/containers/EmailSettingsModal/hooks.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ export const useEmailData = ({
2121
const { mutate: updateEmailSettings } = useUpdateEmailSettings();
2222
const onToggle = () => setIsOptedOut(!isOptedOut);
2323
const save = () => {
24-
updateEmailSettings({ courseId, enable: !isOptedOut });
25-
closeModal();
24+
updateEmailSettings(
25+
{ courseId, enable: !isOptedOut },
26+
{ onSuccess: () => closeModal() },
27+
);
2628
};
2729

2830
return {

src/containers/SelectSessionModal/hooks.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ export const useSelectSessionModalData = () => {
4040
isRefundable: courseData?.entitlement?.isRefundable || false,
4141
}), [courseData]);
4242
const { mutate: leaveEntitlement } = useDeleteEntitlementEnrollment();
43-
const leaveEntitlementSession = () => leaveEntitlement({ uuid, isRefundable });
4443
const { mutate: switchEntitlementMutation } = useUpdateEntitlementEnrollment();
45-
const switchEntitlementEnrollment = (selectedId) => switchEntitlementMutation({ uuid, courseId: selectedId });
46-
const newEntitlementEnrollment = (selectedId) => switchEntitlementMutation({ uuid, courseId: selectedId });
4744

4845
const [selectedSession, setSelectedSession] = module.state.selectedSession(courseId || null);
4946

@@ -63,17 +60,17 @@ export const useSelectSessionModalData = () => {
6360

6461
const handleSelection = ({ target: { value } }) => setSelectedSession(value);
6562
const handleSubmit = () => {
63+
const onSuccess = () => closeSessionModal();
6664
if (selectedSession === LEAVE_OPTION) {
6765
trackLeaveSession();
68-
leaveEntitlementSession();
66+
leaveEntitlement({ uuid, isRefundable }, { onSuccess });
6967
} else if (isEnrolled) {
7068
trackSwitchSession();
71-
switchEntitlementEnrollment(selectedSession);
69+
switchEntitlementMutation({ uuid, courseId: selectedSession }, { onSuccess });
7270
} else {
7371
trackNewSession();
74-
newEntitlementEnrollment(selectedSession);
72+
switchEntitlementMutation({ uuid, courseId: selectedSession }, { onSuccess });
7573
}
76-
closeSessionModal();
7774
};
7875

7976
return {

0 commit comments

Comments
 (0)