Skip to content

fix: keyboard-navigable dropdowns, double-submit guard, storage key h… - #815

Merged
nonsobethel0-dev merged 1 commit into
Parashield-Protocol:mainfrom
Enochflames:fix/a11y-double-submit-storage-offline
Oct 17, 2026
Merged

nonsobethel0-dev merged 1 commit into
Parashield-Protocol:mainfrom
Enochflames:fix/a11y-double-submit-storage-offline

Conversation

@Enochflames

Copy link
Copy Markdown
Contributor

closes #787
closes #788
closes #789
closes #790

…ardening, offline indicator

Keyboard navigation (a11y)

  • Fix CategoryFilter render (mismatched JSX tags from a bad merge) and add ArrowUp/ArrowDown alongside Left/Right/Home/End.
  • Add a reusable Listbox (WAI-ARIA select-only combobox) and use it for the policies sort selector: Arrow/Home/End, Enter/Space, Escape, typeahead.
  • Claims export menu: focus moves into the menu, Arrow/Home/End navigation, Escape returns focus to the trigger.

Double-submit

  • Add useSubmitGuard: ref-based in-flight lock plus a 500ms leading-edge cooldown. Fixes double-clicking "Confirm details" in BuyPolicyModal also triggering signing. Applied to BuyPolicyModal and DepositModal, with a button spinner and aria-busy.

Storage

  • Centralize every key in a storageKeys registry under the ps_ prefix and document them in docs/STORAGE.md; a test audits src for raw keys.
  • Move wallet id/address/network from localStorage to sessionStorage.
  • Fix useExpiryWarnings writing the raw wallet address into a key name.
  • migrateLegacyStorage() cleans up older builds' keys without logging active sessions out; clear the wallet kit's key on logout.

Offline

  • networkStatus store combines navigator.onLine with API requests that get no response, probes the origin to auto-recover.
  • OfflineBanner in the layout; network actions (connect, buy/sign, deposit, withdraw) are disabled while offline.

Also fix mismatched ErrorBoundaryWrapper tags in the root layout.

…ardening, offline indicator

Keyboard navigation (a11y)
- Fix CategoryFilter render (mismatched JSX tags from a bad merge) and add
  ArrowUp/ArrowDown alongside Left/Right/Home/End.
- Add a reusable Listbox (WAI-ARIA select-only combobox) and use it for the
  policies sort selector: Arrow/Home/End, Enter/Space, Escape, typeahead.
- Claims export menu: focus moves into the menu, Arrow/Home/End navigation,
  Escape returns focus to the trigger.

Double-submit
- Add useSubmitGuard: ref-based in-flight lock plus a 500ms leading-edge
  cooldown. Fixes double-clicking "Confirm details" in BuyPolicyModal also
  triggering signing. Applied to BuyPolicyModal and DepositModal, with a
  button spinner and aria-busy.

Storage
- Centralize every key in a storageKeys registry under the ps_ prefix and
  document them in docs/STORAGE.md; a test audits src for raw keys.
- Move wallet id/address/network from localStorage to sessionStorage.
- Fix useExpiryWarnings writing the raw wallet address into a key name.
- migrateLegacyStorage() cleans up older builds' keys without logging
  active sessions out; clear the wallet kit's key on logout.

Offline
- networkStatus store combines navigator.onLine with API requests that get
  no response, probes the origin to auto-recover.
- OfflineBanner in the layout; network actions (connect, buy/sign, deposit,
  withdraw) are disabled while offline.

Also fix mismatched ErrorBoundaryWrapper tags in the root layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@drips-wave

drips-wave Bot commented Oct 16, 2026

Copy link
Copy Markdown

@Enochflames Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@netlify

netlify Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

❌ Deploy Preview for boisterous-sunshine-dd4c4c failed.

Name Link
🔨 Latest commit 4bbdd61
🔍 Latest deploy log https://app.netlify.com/projects/boisterous-sunshine-dd4c4c/deploys/6ad2019e9981a4a4c9a5aef1

@nonsobethel0-dev
nonsobethel0-dev merged commit 9f1aeaf into Parashield-Protocol:main Oct 17, 2026
0 of 4 checks passed
DooseWayo pushed a commit to DooseWayo/parashield-frontend that referenced this pull request Oct 21, 2026
rhemy-arc pushed a commit to rhemy-arc/parashield-frontend that referenced this pull request Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants