Public: anyone can read this; the crew can change it.

A frozen mirror's notice and reconnect form draw §5's card, row and btn, and .frozen, .frozen-form, .frozen-sentence leave the markup #4187

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

A frozen mirror's notice and reconnect form are now drawn with §5's `card`, `row` and `field-row`. None of `.frozen`, `.frozen-form` or `.frozen-sentence` appears in the page's HTML any more. `bun test test/origins-reconnect.test.ts test/design-lint.test.ts` passes (22 tests). `bun x tsc --noEmit` could not run: it fails here with `Cannot find type definition file for 'bun'`, even after `bun insta…

shipped production is serving it deploy 8c46a8d

opened this

A frozen mirror's notice and reconnect form are now drawn with §5's card, row and field-row. None of .frozen, .frozen-form or .frozen-sentence appears in the page's HTML any more. bun test test/origins-reconnect.test.ts test/design-lint.test.ts passes (22 tests). bun x tsc --noEmit could not run: it fails here with Cannot find type definition file for 'bun', even after bun install.

What changed (src/web/pages/frozen.ts, test/origins-reconnect.test.ts)

  • frozenBlock returns a card with pad: false holding a ul.list of li.row rows. The first row is the sentence. The second is whichever of three actions applies: the Reconnect form for an admin with a matching origin, the "Connect an account under Settings → Origins" link for an admin without one, or "An admin of this repository can reconnect it." for a non-admin.
  • The id="frozen" anchor stays, because the fork page links to #frozen.
  • The form still posts origin to …/settings/origin/reconnect, with the same select, label and "Reconnect" button. Its class is now field-row.
  • The tests assert the old class names are absent from the page. They also assert the sentence, the form action, name="origin", the origin option, "Reconnect through" and the "Reconnect" button are present. The other two actions' wording was already asserted and still passes.

What I left alone

  • The .frozen* rules in src/web/style/content.ts and docs/DESIGN.md, as the issue says; that is part two.
  • The old margin-top: 12px on the block and the select's flex sizing went with those rules. Spacing may differ slightly until part two, and I had no browser here to check it.

To try it

  • Open a frozen mirror's home or branches page as its admin.
  • Or run bun test test/origins-reconnect.test.ts.

🤖 Generated with Claude Code

Closes #4128

commented

A frozen mirror's notice and reconnect form are now drawn with §5's card, row and field-row. None of .frozen, .frozen-form or .frozen-sentence appears in the page's HTML any more. bun test test/origins-reconnect.test.ts test/design-lint.test.ts passes (22 tests). bun x tsc --noEmit could not run: it fails here with Cannot find type definition file for 'bun', even after bun install.

What changed (src/web/pages/frozen.ts, test/origins-reconnect.test.ts)

  • frozenBlock returns a card with pad: false holding a ul.list of li.row rows. The first row is the sentence. The second is whichever of three actions applies: the Reconnect form for an admin with a matching origin, the "Connect an account under Settings → Origins" link for an admin without one, or "An admin of this repository can reconnect it." for a non-admin.
  • The id="frozen" anchor stays, because the fork page links to #frozen.
  • The form still posts origin to …/settings/origin/reconnect, with the same select, label and "Reconnect" button. Its class is now field-row.
  • The tests assert the old class names are absent from the page. They also assert the sentence, the form action, name="origin", the origin option, "Reconnect through" and the "Reconnect" button are present. The other two actions' wording was already asserted and still passes.

What I left alone

  • The .frozen* rules in src/web/style/content.ts and docs/DESIGN.md, as the issue says; that is part two.
  • The old margin-top: 12px on the block and the select's flex sizing went with those rules. Spacing may differ slightly until part two, and I had no browser here to check it.

To try it

  • Open a frozen mirror's home or branches page as its admin.
  • Or run bun test test/origins-reconnect.test.ts.

🤖 Generated with Claude Code

Approved

Approved. frozenBlock now draws card(pad:false) > ul.list > li.row, and the reconnect form uses field-row. No .frozen* class reaches the markup. The form keeps its POST, a same-origin button and the id="frozen" anchor, and it works with JavaScript off. The tests would fail without the change. The preview answers 200. li.row has precedent in accounts.ts and boards.ts. Next: (1) part two should delete .frozen* from content.ts:306-309 and DESIGN.md, and its tests should check the Reconnect select on a 360px phone, because .field-row gives the select min-width 160px but the old max-width 22rem cap is gone. (2) The local row helper in frozen.ts hand-rolls li.row > div.row-main. Move it into ui.ts if a second block needs it, so it stays a named component rather than a local copy.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs