Closed cheesea3 closed 1 month ago
Signup Modal Behavior:
Main Screen Navigation:
Steam Activation Screen:
Tebex Checkout Interaction:
Cookie Consent Modal:
Modal Exit Visibility:
Form Input and Modal Closure:
Username Selection Screen:
Handling Multiple Backend Calls:
[x] Signup Modal Behavior: Implement functionality to automatically clear the confirm password field if the initial password input no longer meets the criteria.
[x] Main Screen Navigation: Develop and integrate cleanup functions before navigation to prevent modal lock-up when navigating away from login/signup forms without submission.
[x] Steam Activation Screen: No action required; confirm that the current behavior (refocusing window during Steam OAuth) is documented as intended.
[x] Tebex Checkout Interaction: Confirm and document that the modal closing behavior post-Tebex checkout cancellation is as expected.
[x] Cookie Consent Modal: Document the decision to exclude unsaved settings in the cookie consent modal from modal closing prevention.
[ ] Modal Exit Visibility: Investigate and implement enhanced visibility or clarity for modal exit methods to reduce user confusion.
[x] Form Input and Modal Closure: Set up state reset for forms upon navigation away from login/signup screens to prevent unintentional modal lock-up.
[x] Username Selection Screen: No action required; ensure that the behavior allowing modal closure with or without username input is documented.
[x] Handling Multiple Backend Calls: Create and integrate a mechanism to prevent modal closure during ongoing backend operations, especially when multiple sequential processes are involved.
To ensure a seamless user experience and prevent data loss, we need to refine the modal closability logic within our application. This involves enhancing the accuracy of the conditions under which modals can be closed, particularly during sensitive operations like form submissions, third-party integrations, or while significant processes are underway.
Objective:
Scope:
Proposed Changes:
CloseInterceptReason
enum to include specific reasons related to third-party integrations.ModalWrapper.tsx
that considers the new conditions.setCloseInterceptReason
to dynamically manage modal behavior based on the current application state.Technical Implementation:
closeModal
function to check for conditions like active third-party integrations or unsaved changes before allowing the modal to close.Testing:
Documentation:
Acceptance Criteria: