Repository navigation
[tech-debt 3/5 medium risk] Fix withdrawal poller, mutation rollbacks, backdrop upload helper - #14776
Merged
Merged
Conversation
Behavior fixes from #14665: - web WithdrawalsTab: the poller restarted every render, so its 60s timeout never fired and it could refetch every second forever - common useMuteUser: reset the real comment list key on error - common useMarkNotificationsAsViewed: restore the unread count on error - common uploadBackdropImage: one helper for fan club banners, coin launch banners and contest covers - mobile useEnterContest: open Upload without artwork if the prefetch fails Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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.
Third of five PRs that re-ship #14665 on current main, ordered from lowest to highest risk. Branched off main, independent of the others.
What's in it
App-level fixes that change behavior in specific flows.
WithdrawalsTab: after a withdrawal, the poller that waits for the new transaction listedreset(a new function every render) andtransactionsas effect deps. Every render restarted it, including its 60s timeout, so if the transaction never appeared it calledresetQueriesevery second for as long as the page was open. It now reads both through refs, restarts only when the awaited transaction changes, and stops after 60s.useMuteUser: the error rollback reset['trackCommentList', trackId, currentSort], but the real key is[..., { sortMethod }], so muted comments stayed hidden after a failed mute. It now usesgetTrackCommentListQueryKeyandgetTrackCommentCountQueryKey.useMarkNotificationsAsViewed: restores the previous unread count if the request fails, instead of leaving the badge at 0.uploadBackdropImage: the fan club banner, coin launch banner and contest cover uploads each had a copy of the same upload + largest-variant + node URL code. They now share one helper (with tests). It reads the node fromsdk.services.storageNodeSelector, which is the same instance the old code reached through(sdk.services.storage as any).storageNodeSelector.useEnterContest: if fetching the original track's artwork failed, tapping "submit a remix" did nothing. It now opens Upload without the artwork pre-filled.Why this tier
These change what happens in a real flow (polling, error rollback, an upload path, a navigation), but each is confined to one hook or screen and the sdk is untouched.
Verified
tsc: common, mobile and web show the same errors as origin/main in this checkout, all in untouched files.eslinton changed files: clean.uploadBackdropImagetests pass. The pre-existingstore/upload/selectors.test.tsfailure is unchanged.Not verified
No device or browser testing. Worth a manual check on RC: a USDC withdrawal on the Pay & Earn page (spinner should stop once the row appears or after 60s), a fan club banner change and a contest cover upload.
🤖 Generated with Claude Code