a11y/UX: Reject Listing in Apply workspace has no confirmation dialog #98

Closed
opened 2026-04-14 15:43:13 -07:00 by pyr0ball · 0 comments
Owner

Problem

The "Reject Listing" button in the Apply workspace is irreversible but has no confirmation step. A single accidental click permanently rejects the listing with no undo path.

This violates the CF adaptive design principle: undo for every destructive action. It is also hostile to users with motor control issues, ADHD (impulse clicks), or tremor.

Fix

Add a window.confirm() guard before executing the rejection, consistent with how ResumesView.vue handles deletion:

async function rejectListing() {
  if (!window.confirm(`Reject "${job.value?.title}" at ${job.value?.company}? This cannot be undone.`)) return
  // existing rejection logic
}

Or use the existing modal/dialog pattern if one exists in the component.

Labels

a11y, ux, bug, frontend

## Problem The "Reject Listing" button in the Apply workspace is irreversible but has no confirmation step. A single accidental click permanently rejects the listing with no undo path. This violates the CF adaptive design principle: **undo for every destructive action**. It is also hostile to users with motor control issues, ADHD (impulse clicks), or tremor. ## Fix Add a `window.confirm()` guard before executing the rejection, consistent with how `ResumesView.vue` handles deletion: ```js async function rejectListing() { if (!window.confirm(`Reject "${job.value?.title}" at ${job.value?.company}? This cannot be undone.`)) return // existing rejection logic } ``` Or use the existing modal/dialog pattern if one exists in the component. ## Labels a11y, ux, bug, frontend
pyr0ball added the
bug
frontend
a11y
labels 2026-04-14 15:43:13 -07: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: Circuit-Forge/peregrine#98
No description provided.