Skip to content

Swap: only the coins travel on a flip; History: a sprout for an empty wallet - #1916

Open
juanky201271 wants to merge 8 commits into
devfrom
feat/swap-screen-flip
Open

juanky201271 wants to merge 8 commits into
devfrom
feat/swap-screen-flip

Conversation

@juanky201271

Copy link
Copy Markdown
Contributor

Two designer artifacts.

Swap screen

  • Flip without jumps. The animation starts on the press, rewound before the state changes, so the flipped layout no longer flashes its end state first. Reduce motion is read once.
  • Only the coins travel, in a layer over both cards. Words and numbers fade in place, so nothing hides at the seam and the height holds.
  • The chosen coin stays on a flip. loadCatalog keeps the selected token when the other direction's catalog has it. It used to fall back to BTC, so USDT was lost.
  • Provider row. The whole row is the button, with a chevron and no underline.
  • Fees sit under it, worded as on Review (routeFeeValue, now shared with Review), with swap.tip-fees on the info icon.
  • While a price loads, the ring keeps its place and Provider reads "Getting a price…".

History, empty wallet

  • "No activity yet" with a sprout that tries to stand up, can't, and settles back down, while the fallen leaves breathe and a stray leaf drifts.
  • Still under reduce motion.
  • Receive ZEC opens the Receive tab.
  • A filter that empties the list still says "Nothing here yet."

Tooling

check:compiler:changed never found the base files on Windows: backslash paths vs git ls-tree. Every base counted 0, so any touched file with old bailouts failed locally. Fixed with forward-slash paths. CI on Linux was unaffected.

Checks

  • jest: 2099 passed, 67 snapshots
  • tsc and eslint clean
  • prettier clean
  • compiler ratchet OK against origin/dev

Visual baselines will change (Swap and the new EmptySprout story).

🤖 Generated with Claude Code

juanky201271 and others added 3 commits November 10, 2026 11:00
…outes, fees under it

- The flip starts on the press, rewound before the state changes, so the
  flipped layout no longer paints its end state first. Reduce motion is read
  once.
- Only the coin chips travel, in a layer over both cards; words and numbers
  fade in place, so nothing hides at the seam and the height holds.
- A flip keeps the chosen coin when the other direction's catalog has it,
  instead of falling back to BTC.
- The whole Provider row is the button, with a chevron and no underline;
  the fees sit under it, said as Review says them (routeFeeValue), with
  swap.tip-fees on the info icon.
- While a price is on its way the ring keeps its place and Provider reads
  "Getting a price…".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Receive ZEC

No activity yet: the sprout tries to stand up, can't, and settles back down,
while the fallen leaves breathe and one that got away drifts. Still under
reduce motion. Receive ZEC opens the Receive tab. A filter that empties the
list keeps "Nothing here yet."

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
path.relative gave backslashes, git ls-tree answers with forward slashes, so
no changed file was found in the base: every base counted 0 bailouts and any
touched file with old ones failed locally. CI on Linux was unaffected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Visual review — ⚠️ changes detected

Head vs visual/__baseline__. Open the review page — Current, Animations, and Image diffs tabs.

If the change is intended, comment /visual-accept on this PR. It pulls this run's capture into the baseline, commits, and pushes. Needs write access and a finished run for the current commit.

Or accept from a terminal on this branch:

yarn visual:accept   # pulls this run's capture into visual/__baseline__
git add visual/__baseline__ && git commit -m "test(visual): accept <what changed>"

juanky201271 and others added 4 commits November 10, 2026 17:47
- Empty history: the sprout gets room for its moving leaves and shrinks
  to 0.68 pt per unit; the title no longer drops its last word; no
  filter button or filter bar while there is nothing to filter.
- Flip: the animation starts once the flipped direction has committed,
  its ends are held still while it runs, and only the words that differ
  cross-fade, both versions stacked so the cells keep their size.
- InfoTooltip: measured unseen first, then mounted once in place, so it
  no longer opens in one spot and jumps.
- Deposit for a token with a memo: one banner for both rules (a wallet
  with memos, the network) instead of two.
- Provider row: name, shield, time and chevron grouped 4 apart; the fees
  row sits in the same block, 24 high.
- FullPanel clears a tall footer by its measured height, so the review's
  last rows are reachable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A token from another wallet cannot carry their memo: it travels only
through the router contract, which no wallet's Send calls, and a plain
transfer to the vault is neither seen nor refunded (65 USDT were lost
that way). Those routes are listed as unavailable with the reason; a
chain's own coin keeps them. The soft preference for an address-only
route within 1% is gone with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every feature line was checked against the code. Building now says where
Node comes from and that swaps need SWAPKIT_API_KEY before yarn install;
Testing lists the checks CI runs on a pull request, the compiler ratchet
included; visual review says how /visual-accept records a baseline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant