Skip to content

Commit f9e194e

Browse files
authored
fix(ui): keep login recovery accessible
1 parent f535b2a commit f9e194e

3 files changed

Lines changed: 5 additions & 19 deletions

File tree

ui/src/components/login-gate.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,16 +263,14 @@ export function resolveLoginFailureFeedback(
263263
}
264264

265265
function renderLoginFailure(feedback: LoginFailureFeedback) {
266-
// Collapsed by default on purpose: the failure title stays visible while the
267-
// gate keeps its compact single-screen layout; users expand for recovery steps.
268266
return html`
269-
<details
267+
<div
270268
class="callout danger login-gate__failure"
271269
role="alert"
272270
aria-live="polite"
273271
data-kind=${feedback.kind}
274272
>
275-
<summary class="login-gate__failure-title">${feedback.title}</summary>
273+
<div class="login-gate__failure-title">${feedback.title}</div>
276274
<div class="login-gate__failure-summary">${feedback.summary}</div>
277275
<ol class="login-gate__failure-steps">
278276
${feedback.steps.map((step) => html`<li>${step}</li>`)}
@@ -288,7 +286,7 @@ function renderLoginFailure(feedback: LoginFailureFeedback) {
288286
rel=${buildExternalLinkRel()}
289287
>${feedback.docsLabel}</a
290288
>
291-
</details>
289+
</div>
292290
`;
293291
}
294292

ui/src/e2e/login-gate.e2e.test.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,6 @@ describeControlUiE2e("Control UI responsive login gate E2E", () => {
143143
),
144144
).toBe(true);
145145

146-
// Recovery details live behind the collapsed failure disclosure; expand
147-
// it before checking the docs link stays reachable inside the viewport.
148-
await page.locator(".login-gate__failure-title").click();
149146
const failureDocs = page.locator(".login-gate__failure-docs");
150147
await failureDocs.scrollIntoViewIfNeeded();
151148
const failureDocsBox = await failureDocs.boundingBox();
@@ -158,19 +155,14 @@ describeControlUiE2e("Control UI responsive login gate E2E", () => {
158155
}
159156
});
160157

161-
it("collapses the failure and help disclosures until expanded", async () => {
158+
it("keeps failure recovery visible while generic help stays collapsed", async () => {
162159
const context = await browser.newContext({ viewport: { height: 900, width: 1280 } });
163160
const page = await context.newPage();
164161

165162
try {
166163
await renderLoginGate(page);
167164
const failure = page.locator(".login-gate__failure");
168-
expect(await failure.evaluate((element) => element.tagName)).toBe("DETAILS");
169-
expect(await failure.getAttribute("open")).toBeNull();
170-
expect(await page.locator(".login-gate__failure-title").isVisible()).toBe(true);
171-
expect(await page.locator(".login-gate__failure-steps").isVisible()).toBe(false);
172-
173-
await page.locator(".login-gate__failure-title").click();
165+
expect(await failure.evaluate((element) => element.tagName)).toBe("DIV");
174166
expect(await page.locator(".login-gate__failure-summary").isVisible()).toBe(true);
175167
expect(await page.locator(".login-gate__failure-steps").isVisible()).toBe(true);
176168
expect(await page.locator(".login-gate__failure-docs").isVisible()).toBe(true);
@@ -179,9 +171,6 @@ describeControlUiE2e("Control UI responsive login gate E2E", () => {
179171
expect(await help.evaluate((element) => element.tagName)).toBe("DETAILS");
180172
expect(await help.getAttribute("open")).toBeNull();
181173
expect(await page.locator(".login-gate__steps").isVisible()).toBe(false);
182-
183-
await page.locator(".login-gate__help-title").click();
184-
expect(await page.locator(".login-gate__steps").isVisible()).toBe(true);
185174
} finally {
186175
await closeContext(context);
187176
}

ui/src/styles/components.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
font-size: 14px;
9494
font-weight: 700;
9595
color: var(--fg);
96-
cursor: pointer;
9796
}
9897

9998
.login-gate__failure-summary {

0 commit comments

Comments
 (0)