fix: block sharing until imports finish and explain why - #204
Merged
flamboh merged 2 commits intoSep 25, 2026
Merged
Conversation
flamboh
added this pull request to stack #205
September 24, 2026 03:27
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
tagium | d57e1cf | Commit Preview URL Branch Preview URL |
Sep 25 2026, 09:17 AM |
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
flamboh
marked this pull request as ready for review
September 24, 2026 23:17
This was referenced Sep 24, 2026
flamboh
force-pushed
the
feat/share-incomplete-imports
branch
from
September 25, 2026 09:16
d98eeca to
d57e1cf
Compare
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.
Note
🤖 Claude Opus 5.5 on behalf of Oliver
Stacked on #203.
ELI5
Tagium used to let you share an album while its tracks were still downloading. The link then went out with placeholder tags or no cover. Now sharing waits until the import is finished, and the menu tells you what it's waiting for.
Problem
Nothing on the share path checked whether downloads had finished.
sharedAlbumDownload.ts).publish()never rechecked eligibility, so the library could change after the dialog opened.Fix
shareEligibility.ts): albums and tracks are blocked while any track is downloading, failed, or canceled, and albums while their cover is still loading. Each case has a specific reason:coverPendingalbum flag: set when a playlist import has a cover URL, and cleared when the cover lands or the fetch fails. A failed cover falls back to sharing without artwork.publish()reruns eligibility and shows the specific reason in the dialog ("… no link was created." / "… the link still has the previous version.").Review guide
Setup:
VITE_PUBLIC_SHARE_LINKS_ENABLED=true. Cleartagium:feature-discoveryin localStorage to see the hint again.Flows to check
…menu while it downloads. "share album" is disabled with "N of M tracks are still downloading", and no share hint appears.Edge cases
Decisions for the reviewer
soundcloudSetImport.tsis a legacy path only reached from its own test, so I left it.Verified
vp checkpasses, and all 680 unit tests pass. New tests cover:coverPendingUI Changes
Before (#203): mid-import at "downloading 1/3", sharing was already on and the hint fired.

After: each blocked state explains itself.




After: once everything is ready, the hint appears and sharing works.


After: the delay. The track has saved and no hint is showing yet; it appears 2 seconds later.


https://gh-file-drop-api-prod-galwoqjslzlnws6s.oliver-boorstein.workers.dev/f/86ad7f54a4a72726/hint-delay.webm
Full flow:
https://gh-file-drop-api-prod-galwoqjslzlnws6s.oliver-boorstein.workers.dev/f/7c9167e4c869bd8c/incomplete-flow.webm
Made by Claude Opus 5.5 in Claude Code (T3 Code).