Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
tagium | 8e24639 | Commit Preview URL Branch Preview URL |
Sep 05 2026, 07:05 AM |
|
React Doctor found 6 new issues in 6 files · 6 warnings · score 92 / 100 (Great) · 8 fixed · vs 6 warnings
Reviewed by React Doctor for commit |
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 Fable 5.1 on behalf of Oliver
ELI5
The main app now moves the way tagium save does: buttons press in, icons crossfade instead of popping, new sidebar rows grow into place and removed albums collapse, and covers settle in when they load. List and layout motion runs on Motion (motion.dev) rather than hand-rolled Web Animations code.
Why
Save shipped a small, consistent motion vocabulary. The main app had none of it, so the two apps felt like different products. The first cut of this PR ported save's hand-rolled row helper and FLIP morph; that plumbing produced two real bugs during review, so it was replaced with Motion, whose presence and layout primitives handle enter, exit, reduced motion and measurement correctly.
Implementation
motionadded.MotionProviderinAppRootwraps both apps inLazyMotion(features loaded on demand,domMaxfor layout animations) andMotionConfig reducedMotion="user".src/lib/motion.tsxholds the shared presets:rowShellandrowContent(a row grows from zero height while its content slides down from under the previous row, and collapses on exit),fadePresence, and the timings.AnimatePresencewhen deleted. Tracks are enter-only on purpose: a track dragged between albums would otherwise fire an exit in one list and an entrance in the other. A seen-id set keeps remounts silent, and a new album animates as one block with its tracks.layoutanimation; the validation shake usesuseAnimate.active:scale-[0.97]) moved intobuttonVariants, so everyButtongets it; sidebar track rows opt out because they are drag handles.IconSwapreplaces icon ternaries on the theme toggle, dropzone, share copy button, link map switches and the url submit button. Image arrival scale-in on sidebar cover thumbs, the editor cover and shared-page artwork. These stay plain CSS on purpose.urlImportGatewayunit tests were migrated from a mocked-hooks harness that called the component as a plain function onto react-test-renderer, matching the neighbouring mounting test.Review instructions
?app=tagium-save), run six downloads: the oldest row collapses out.Verified automatically: typecheck, lint, unit tests, chromium e2e (24 pass), plus browser checks that new rows mount at zero height with a running animation and that the url entry morph runs as a Motion layout transform. Not verified: firefox/webkit e2e, and the look on a real touch device. Known: the pre-existing React Doctor complexity warnings on touched components are line-shifted findings that also exist on main; they are for a separate PR.
Changes written by GPT-5.6 Luna agents via
codex exec, designed, reviewed, and verified by Claude Fable 5.1 in t3 code.