Skip to content

fix(ui): isolate flyout and modal keyboard input - #45

Merged
fathiraz merged 2 commits into
mainfrom
fix/bulk-flyout-input-isolation
Jun 2, 2026
Merged

fathiraz merged 2 commits into
mainfrom
fix/bulk-flyout-input-isolation

Conversation

@fathiraz

@fathiraz fathiraz commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Stop keyboard events from bubbling out of bulk flyouts and modal panels so typing in extension inputs does not trigger GitHub Projects UI shortcuts (e.g. search)
  • Add Vitest coverage for flyout and modal keyboard isolation
  • Tune WXT/Vite rolldown config to suppress noisy INVALID_ANNOTATION warnings without hiding other build issues

Changes

Bulk flyout (src/ui/bulk-flyout.tsx)

  • Call stopPropagation on keydown and keyup for the flyout surface container

Modal factory (src/lib/modal-factory.tsx)

  • Mirror the same keyboard propagation guards on the modal panel Box

Tests

  • src/ui/__tests__/bulk-flyout.test.tsx — assert document listeners do not receive key events from flyout inputs
  • src/lib/__tests__/modal-factory.test.tsx — same assertion for modal content inputs

Build (wxt.config.ts)

  • Raise chunk size warning limit and filter INVALID_ANNOTATION rolldown warnings

Test Plan

  • Open a GitHub Project, select items, open a bulk flyout with a text field (e.g. random assign / notes)
  • Type letters and confirm GitHub project search / filter shortcuts do not activate
  • Repeat inside a modal built via createModal if applicable
  • pnpm typecheck passes locally
  • pnpm test (Vitest) passes for bulk flyout and modal factory suites

Summary by cubic

Isolates keyboard input inside the bulk flyout and modal so typing in extension fields no longer triggers GitHub Projects shortcuts. In modals, Escape keydown still propagates for close behavior.

  • Bug Fixes

    • Stop keydown/keyup propagation in the bulk flyout; in the modal, stop all keys except Escape on keydown.
    • Add Vitest tests to ensure document listeners don't receive key events from these inputs.
  • Dependencies

    • Raise chunk size warning limit in WXT/Vite.
    • Suppress INVALID_ANNOTATION rolldown warnings via onwarn without hiding other issues.

Written for commit b7fff99. Summary will update on new commits.

Review in cubic

Stop keydown/keyup propagation on bulk flyout and modal panels so
typing in extension fields does not reach GitHub document handlers
(e.g. project search). Add regression tests and quiet INVALID_ANNOTATION
rolldown warnings in the WXT build.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor auto review

No actionable issues found on changed lines.

No actionable issues found.

Generated automatically when this PR was submitted using Cursor CLI with --model auto.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 5 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/lib/modal-factory.tsx Outdated
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
@fathiraz
fathiraz merged commit 4ef2717 into main Jun 2, 2026
3 checks passed
@fathiraz
fathiraz deleted the fix/bulk-flyout-input-isolation branch June 2, 2026 18:27
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