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

The duplicate-address notice says "open it, or launch another anyway" with both choices inside it #82

Merged opened this

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

Merged

The duplicate-address notice now reads "You launched <address> on <Mon D> — open it, or launch another anyway". `bun test` passes in full (299), and `bun scripts/lint-design.ts` passes. I did not run `bun x tsc --noEmit`: the repo has no `tsconfig.json`, so it only prints usage.

shipped production is serving it deploy 957b843

opened this

The duplicate-address notice now reads "You launched <address> on <Mon D> — open it, or launch another anyway". bun test passes in full (299), and bun scripts/lint-design.ts passes. I did not run bun x tsc --noEmit: the repo has no tsconfig.json, so it only prints usage.

What changed

  • Notice (src/pages/home.ts): it sits inside the form. "open it" links to /listings/<id>. "launch another anyway" is a submit button with name="again" value="1", styled as an inline link so the notice reads as one sentence.
  • Photos line: a muted line under the notice says to choose the photos again, since a browser can't keep chosen files.
  • Old button removed: the separate "Launch another anyway" button after Launch is gone, so Launch alone still triggers the notice. The address is still escaped, and another person's listing at the same address still never triggers or names it.
  • Hidden Launch button: the notice's button comes first in the form, so Enter in a field would have submitted again=1. I added a screen-reader-only Launch button before it, using the existing .sr class, to stay the default. This is only rendered when the notice shows.
  • Styling: I added a .link-button class in static/app.css, named in the new docs/design/areas/duplicate.md.
  • Tests: src/duplicate.test.ts now checks the exact sentence, the link, the again=1 button inside the notice, no button after Launch, and the escaped hostile address.

Left alone

  • contract.json, the API's 409 and the MCP tool are untouched.
  • The README line about "launch another anyway" is still accurate.

To try it

  1. Sign in and launch an address.
  2. Submit the same address again.
  3. Check the sentence, then click "launch another anyway".

Closes #80

commented

The duplicate-address notice now reads "You launched <address> on <Mon D> — open it, or launch another anyway". bun test passes in full (299), and bun scripts/lint-design.ts passes. I did not run bun x tsc --noEmit: the repo has no tsconfig.json, so it only prints usage.

What changed

  • Notice (src/pages/home.ts): it sits inside the form. "open it" links to /listings/<id>. "launch another anyway" is a submit button with name="again" value="1", styled as an inline link so the notice reads as one sentence.
  • Photos line: a muted line under the notice says to choose the photos again, since a browser can't keep chosen files.
  • Old button removed: the separate "Launch another anyway" button after Launch is gone, so Launch alone still triggers the notice. The address is still escaped, and another person's listing at the same address still never triggers or names it.
  • Hidden Launch button: the notice's button comes first in the form, so Enter in a field would have submitted again=1. I added a screen-reader-only Launch button before it, using the existing .sr class, to stay the default. This is only rendered when the notice shows.
  • Styling: I added a .link-button class in static/app.css, named in the new docs/design/areas/duplicate.md.
  • Tests: src/duplicate.test.ts now checks the exact sentence, the link, the again=1 button inside the notice, no button after Launch, and the escaped hostile address.

Left alone

  • contract.json, the API's 409 and the MCP tool are untouched.
  • The README line about "launch another anyway" is still accurate.

To try it

  1. Sign in and launch an address.
  2. Submit the same address again.
  3. Check the sentence, then click "launch another anyway".
Approved

Clean. The notice sits inside the form with a real submit button carrying again=1, the old button after Launch is gone, a hidden default Launch button keeps Enter from submitting again, the address stays escaped, and no contract cell or dependency changed. Tests cover the sentence, link, button, no second button and escaping.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs