Skip to content

fix(frontend): make pending org invite rows fully clickable#1854

Merged
riderx merged 2 commits into
mainfrom
codex/fix-org-invite-row-click
Mar 25, 2026
Merged

fix(frontend): make pending org invite rows fully clickable#1854
riderx merged 2 commits into
mainfrom
codex/fix-org-invite-row-click

Conversation

@riderx
Copy link
Copy Markdown
Member

@riderx riderx commented Mar 25, 2026

Summary (AI generated)

  • make pending organization invite entries clickable across the full row in the org selector
  • keep the settings action isolated for regular organizations
  • add keyboard activation for interactive org rows

Motivation (AI generated)

Clicking the pending pill in the organization selector did nothing because the badge sat outside the clickable control. Users could only open the invite acceptance modal by clicking the text area of the row, which made the interaction inconsistent and easy to miss.

Business Impact (AI generated)

This removes friction from accepting organization invitations in the dashboard, which reduces onboarding confusion and lowers the chance that invited users get stuck before joining their org.

Test Plan (AI generated)

  • Click a pending invite row in the org selector and confirm the accept invite modal opens
  • Click directly on the pending pill and confirm the same modal opens
  • Click the settings icon on a regular org and confirm navigation still goes to organization settings
  • Verify keyboard activation with Enter/Space still works for interactive rows
  • Attempted bun lint locally, but it failed in this workspace because eslint is not installed

Generated with AI

Summary by CodeRabbit

  • New Features
    • Improved keyboard accessibility in the organization dropdown: Enter/Space now activate organization rows, interactive items (pending invitations and unselected organizations) are keyboard-navigable, and activation closes the dropdown while preserving selection state for the current organization.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 25, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fcc8f670-ec65-4c40-a99e-f492c34a1685

📥 Commits

Reviewing files that changed from the base of the PR and between 6b1e365 and 629a937.

📒 Files selected for processing (1)
  • src/components/dashboard/DropdownOrganization.vue

📝 Walkthrough

Walkthrough

Updated a Vue dropdown component to restrict keyboard activation to interactive organization rows (invitations or non-selected), replacing an inner <button> with a div that conditionally sets role, tabindex, aria-current, cursor styling, and adds isRowInteractive + onOrgItemKeydown handlers. (48 words)

Changes

Cohort / File(s) Summary
Dropdown organization row
src/components/dashboard/DropdownOrganization.vue
Replaced clickable <button> with a non-button container (div) and added isRowInteractive(org) to gate keyboard interactiveness. Implemented onOrgItemKeydown(org, e) to handle Enter/Space, kept click path via onOrgItemClick(org, $event), preserved aria-current, and adjusted tabindex/role and cursor styling accordingly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I nibble keys and hop on rows,
Enter, Space — the focus grows,
Buttons folded, divs take flight,
Accessibility in gentle light,
Hooray — the dropdown hums just right!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: making pending org invite rows fully clickable, which is the core objective of this PR.
Description check ✅ Passed The PR description covers the Summary, Motivation, Business Impact, and Test Plan sections as required by the template, though the checklist items are not filled out and linting validation was not completed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-org-invite-row-click

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6b1e3659d6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/dashboard/DropdownOrganization.vue
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/components/dashboard/DropdownOrganization.vue`:
- Around line 173-181: The row key handler onOrgItemKeydown is intercepting
Enter/Space from the nested settings (cog) button; update onOrgItemKeydown to
ignore key events that originate from or include the settings button in the
event.composedPath()/target chain (e.g., check event.target or
event.composedPath() for the settings button element or a specific class/data
attribute on the cog) so the button can handle activation itself, and therefore
allow its click handler to run (which calls closeDropdown()); keep the existing
Enter/Space handling to call onOrganizationClick(org) only when the key event
did not come from the settings button.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 33cadda9-a71a-474c-ba99-cd157fc1806c

📥 Commits

Reviewing files that changed from the base of the PR and between 61e5cc9 and 6b1e365.

📒 Files selected for processing (1)
  • src/components/dashboard/DropdownOrganization.vue

Comment thread src/components/dashboard/DropdownOrganization.vue
@riderx riderx merged commit c77fdd3 into main Mar 25, 2026
13 checks passed
@riderx riderx deleted the codex/fix-org-invite-row-click branch March 25, 2026 02:56
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant