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

Settings › Hooks speaks the home page's language #9762

shipped production is serving it opened this has it
opened this

For: Settings › Hooks is where the owner wires a repository to the outside, and it is the next settings page in the design pass.

Done looks like:

  • [x] The hooks page (src/web/pages/hooks.ts) follows the opening principles of docs/DESIGN.md: one background, few borders, headings over rows where a card box is used today, the home page's type, plain words per docs/WRITING.md.
  • [x] Any new component class is named in docs/design/areas/settings.md, never docs/DESIGN.md.
  • [x] A test renders the page and asserts the rows-not-boxes shape, and fails on the current markup.
  • [x] Nothing is lost: each hook still shows its URL, its events and its last delivery, and adding, editing and deleting still work, delete after a confirm. Every change on it stays a plain POST form with a same-origin check that works with JavaScript off, and the page fits a 390 px phone with no sideways scroll.
  • [x] bun scripts/design-lint.ts passes, and so do test/hooks-etag.test.ts and any test that renders /settings/hooks (grep test/ for hooksPage); the warm page costs no more statements than they allow today.

Files: src/web/pages/hooks.ts, its area doc, and a test. Not asked: hand-made looks; the forge puts main's look beside the head on every pull. Risks: a hook's secret is never shown back after it is saved; keep it masked.

commented

Reviewed pull #9829 at its head: ticked The hooks page (src/web/pages/hooks.ts) follows the opening principles of docs/DESIGN.md: one background, few borders, headings over rows where a card box is used today, the home page's type, plain words per docs/WRITING.md.; Any new component class is named in docs/design/areas/settings.md, never docs/DESIGN.md.; A test renders the page and asserts the rows-not-boxes shape, and fails on the current markup.; Nothing is lost: each hook still shows its URL, its events and its last delivery, and adding, editing and deleting still work, delete after a confirm. Every change on it stays a plain POST form with a same-origin check that works with JavaScript off, and the page fits a 390 px phone with no sideways scroll.; bun scripts/design-lint.ts passes, and so do test/hooks-etag.test.ts and any test that renders /settings/hooks (grep test/ for hooksPage); the warm page costs no more statements than they allow today..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs