feat(board): PROG-118 settle cards on drop with the shared tween#98
Merged
Conversation
Extend the outline's settle-on-drop to the board, per owner request: the
DROP_ANIMATION config moves to src/client/dropAnimation.ts and both
DragOverlay surfaces use it, replacing the board's dropAnimation={null}. That
null was PROG-43's workaround for the default tween flying the card back to
its stale slot — impossible on the board since onDragEnd commits the columns
mirror synchronously (PROG-59), and impossible on the outline since PROG-119;
the frame-sampling 'doesn't flash back' e2e spec passes with the tween on.
…overlay clear board-reorder's PROG-59 spec was failing for a reason unrelated to the tween: outline-move.spec.ts archived its focuses but left their actions OPEN — archiving a focus does not close its actions — so each run leaked open actions onto the shared dev board, and isolateColumn herded the growing pile between columns until the drag targets slid below the viewport. The spec now cancels its actions before archiving (and says why). The 32 already-leaked actions were canceled in the dev DB by hand. board-reorder's overlay assertion is retimed for the settle tween: the overlay now legitimately lives ~180ms gliding to the NEW slot, so 'clears within 120ms' becomes 'clears within 600ms'; the fly-back regression that bound guarded is covered by the frame-sampling 'doesn't flash back' spec.
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.
Follow-up to #96 (owner request): apply the outline's settle-on-drop animation to the board too.
What changed
DROP_ANIMATION(~180ms default drop tween + ghost side-effects) moves tosrc/client/dropAnimation.tsand both DragOverlay surfaces — board and outline — use it. The board'sdropAnimation={null}is gone: that was PROG-43's workaround for the tween flying the card back to its stale slot, which can't happen on the board (itscolumnsmirror commits synchronously inonDragEnd, PROG-59) nor on the outline (PROG-119). The board's frame-sampling "doesn't flash back" spec passes with the tween on (x-deviation < 40px across release).outline-move.spec.tsarchived its focuses but left their actions open — archiving a focus doesn't close its actions — so every run leaked open actions onto the shared dev board;isolateColumnherded the growing pile between columns until board-reorder's PROG-59 drag targets slid below the viewport. The spec now cancels its actions before archiving (the 32 already-leaked ones were canceled in the dev DB by hand).dropAnimation={null}) becomes "within 600ms" — the overlay now legitimately lives ~180ms gliding into the NEW slot; the fly-back regression that bound guarded is covered by the frame-sampling spec.Tests
bun run test: 180 pass. Board + outline e2e: 15/15 pass (board-done, board-filters, board-reorder ×5 incl. both fly-back regressions, outline-container-reorder ×3, outline-move ×2).Decision log: appended to
docs/decisions/PROG-118.md; REFERENCE board section updated.(Note: three identical commits were briefly pushed to a recreated
act/PROG-118after #96's squash-merge deleted it; that branch has been removed — this PR is their home.)