Skip to content

fix: input maxLength, claim render stability, modal inert, full-address copy (#736-#739) - #777

Merged
nonsobethel0-dev merged 4 commits into
Parashield-Protocol:mainfrom
benfoster-dev:fix/input-modal-claims-wallet-736-739
Oct 16, 2026
Merged

nonsobethel0-dev merged 4 commits into
Parashield-Protocol:mainfrom
benfoster-dev:fix/input-modal-claims-wallet-736-739

Conversation

@benfoster-dev

Copy link
Copy Markdown
Contributor

Fixes #736
Fixes #737
Fixes #738
Fixes #739

What changed

Why

  • Unbounded paste into text/amount fields could overflow UI and stress parsers
  • Parent re-renders on the claims page risked redundant fetch/sort work
  • Screen readers could still navigate background content behind open modals
  • Users pasting a truncated wallet address risked sending funds to the wrong place

How to test

Tests were updated/added but not executed before opening this PR. Please run npm test / yarn test on review.

  • npm test
  • Paste a 10KB string into search / flight number → capped at maxLength
  • Open a modal → background is aria-hidden/inert; close → restored
  • Truncated wallet display → Copy → paste yields the full address; toast shows the full value
  • Claims page: toggle export menu / wait for countdown → no extra claim fetches for the same wallet

Notes

  • maxLength on type="number" is advisory in some browsers; value is still validated at parse/submit
  • Modal now uses createPortal to document.body — any tests that assumed in-tree dialog DOM may need the portal

Unbounded paste into search, coverage, duration, coordinates, flight
number, and oracle params could overflow UI and stress backend parsers.
Introduce MAX_INPUT_LENGTHS and apply it across all text inputs. Fixes Parashield-Protocol#736
…nders

Document that ClaimHistoryTable is presentational and that sort is
memoized on claims+sort only, so countdown ticks and export-menu state
cannot recreate fetch work. Stabilize useClaims load identity. Fixes Parashield-Protocol#737
Background content stayed in the accessibility tree while a modal was
open. Mark #__next aria-hidden (and inert where supported) and portal
the dialog to document.body so it remains reachable. Restored on close.
Fixes Parashield-Protocol#738
The displayed address is truncated, so users assumed the copy button
copied that short form. CopyButton now always writes the full text and
shows a success toast containing the complete value. Fixes Parashield-Protocol#739
@drips-wave

drips-wave Bot commented Oct 16, 2026

Copy link
Copy Markdown

@benfoster-dev 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 9fa9bd4
🔍 Latest deploy log https://app.netlify.com/projects/boisterous-sunshine-dd4c4c/deploys/6ad1986af80c94ab7e34e0f7

@nonsobethel0-dev
nonsobethel0-dev merged commit ca552ff into Parashield-Protocol:main Oct 16, 2026
0 of 5 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