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
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