diff --git a/canvas/src/components/TermsGate.tsx b/canvas/src/components/TermsGate.tsx index 6fc2d358..cc236e0d 100644 --- a/canvas/src/components/TermsGate.tsx +++ b/canvas/src/components/TermsGate.tsx @@ -67,6 +67,8 @@ export function TermsGate({ children }: { children: React.ReactNode }) { throw new Error(`${res.status}: ${text}`); } setStatus("accepted"); + // Keep submitting=true while status transitions to "accepted" so the ellipsis + // stays visible until the dialog is removed from the DOM. } catch (err) { setError(err instanceof Error ? err.message : String(err)); setSubmitting(false); @@ -87,64 +89,63 @@ export function TermsGate({ children }: { children: React.ReactNode }) { <> {children} {status === "pending" && ( - // Backdrop is decorative — does NOT carry aria-hidden anymore. - // The earlier version put aria-hidden="true" on this wrapper, - // which hid the dialog AND its descendants from screen readers, - // making the entire terms-acceptance flow invisible to AT users. - // Backdrop click intentionally does nothing — this is a hard - // gate. -
- Before you create an organization, please review our{" "}
-
+
+ Before you create an organization, please review our{" "}
+
+ Terms of Service
+ {" "}
+ and{" "}
+
+ Privacy Policy
+
+ . Click agree to continue.
+
+ By agreeing you acknowledge that workspace data is stored in AWS us-east-2 (Ohio, United States).
+ {error} {error}Terms & conditions
+