Repository navigation
perf(a11y): bound uploads, tune query caching, accessible Modal and profile tabs - #1025
Merged
ayshadogo merged 2 commits intoOct 18, 2026
Merged
Conversation
…rofile tabs - Dfunder#854 DeliverableUpload now uploads through a bounded pool (3 concurrent) with one status/error per file and progress buffered to ~4 Hz, so a 20-file drop no longer opens 20 XHRs or re-renders on every progress tick. - Dfunder#855 raise the global staleTime to 5 minutes, add select projections to the purchases, transactions and listings list queries, and drop the manual focus listener that duplicated refetchOnWindowFocus in WalletBalanceDisplay. - Dfunder#856 Modal moves focus in on open, traps Tab/Shift+Tab, restores focus on close, uses a real button for the backdrop and a configurable heading level. - Dfunder#857 artist profile tab strip implements the ARIA tabs pattern (roving tabindex, Arrow/Home/End) and the injected meta description is cleaned up. Closes Dfunder#854 Closes Dfunder#855 Closes Dfunder#856 Closes Dfunder#857
|
@khalyaro 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! 🚀 |
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Four front-end issues around upload throughput, query caching, and two shared a11y primitives.
#854 — Bound upload concurrency, throttle progress (
DeliverableUpload)runWithConcurrency(items, limit, task)helper (unit-tested) drives uploads through a pool of 3 in-flight requests, so selecting 20 files no longer opens 20 presign/PUT/confirm chains at once.uploadStatus/progress/error; a failed file no longer cancels its siblings, and there is no longer a singleisPending/errorthat only reflects the last call.progressevents are buffered in auseRefand flushed on a 250 ms timer (~4 Hz) instead of mapping the whole array per event.useCallbackdeps are gone (the whole mutation object and the unusedlistingIdare no longer dependencies).#855 — Tune query caching
staleTimeraised from 30 s to 5 minutes.selectprojections added to the purchases, transactions and listings list queries so only rendered columns flow through (new response fields no longer churn row identity).windowfocuslistener inWalletBalanceDisplaythat duplicated itsrefetchOnWindowFocus: true.5 * 60_000,refetchOnWindowFocus: false).#856 — Focus management + labelling for
Modal<button>instead of an interactivediv.aria-labelledby); new optionalheadingLevelprop (defaulth2) lets callers fit the page outline.#857 — ARIA tabs on the artist profile
role="tablist"; each control is arole="tab"witharia-selected,aria-controls,idand rovingtabIndex.role="tabpanel",aria-labelledbythe active tab and focusable.<meta name="description">is restored/removed on unmount, so navigating artist → artist no longer leaks the previous bio. Trustline keyboard-nav test added.Notes
eslint-plugin-jsx-a11yis unrelated to this branch.Closes #854
Closes #855
Closes #856
Closes #857