URL submission: rate-limit message UI polish #25

Open
opened 2026-04-26 11:48:23 +02:00 by myrmidex · 0 comments
Owner

Context

App\Livewire\UrlSubmissionForm renders rate-limit errors via a plain @error('rate_limit') <p>{{ $message }}</p> @enderror. Functional but bare — when v0.1 ships and we add CSS / general styling, this needs a polish pass.

Acceptance

  • Visual styling consistent with the form (probably a Tailwind alert/banner class set)
  • Accessibility: role="alert" + aria-live="polite" so screen readers announce the rate-limit hit
  • Show retry-after countdown — RateLimiter::availableIn($key) gives seconds remaining; expose as a public component property and render Try again in {{ $retryAfter }}s
  • Optional: disable the submit button when throttled (wire:loading interactions, @disabled($throttled) etc.)

Notes

  • Lowest-priority of the v0.2 polish items — only matters if v0.1 actually attracts spam attempts. If pages stays clean for the first month live, deprioritize further.
## Context `App\Livewire\UrlSubmissionForm` renders rate-limit errors via a plain `@error('rate_limit') <p>{{ $message }}</p> @enderror`. Functional but bare — when v0.1 ships and we add CSS / general styling, this needs a polish pass. ## Acceptance - [ ] Visual styling consistent with the form (probably a Tailwind alert/banner class set) - [ ] Accessibility: `role="alert"` + `aria-live="polite"` so screen readers announce the rate-limit hit - [ ] Show retry-after countdown — `RateLimiter::availableIn($key)` gives seconds remaining; expose as a public component property and render `Try again in {{ $retryAfter }}s` - [ ] Optional: disable the submit button when throttled (`wire:loading` interactions, `@disabled($throttled)` etc.) ## Notes - Lowest-priority of the v0.2 polish items — only matters if v0.1 actually attracts spam attempts. If `pages` stays clean for the first month live, deprioritize further.
myrmidex added this to the v0.2 milestone 2026-04-26 11:48:23 +02:00
myrmidex self-assigned this 2026-04-26 11:48:23 +02:00
myrmidex modified the milestone from v0.2 to v0.3 2026-04-29 23:55:35 +02:00
myrmidex added the
enhancement
label 2026-05-01 01:02:00 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lvl0/trove#25
No description provided.