Skip to content

Comments

FX Rate Explorer: interactive rate comparison table#222

Draft
patcapulong wants to merge 10 commits intomainfrom
feat/fx-rate-explorer
Draft

FX Rate Explorer: interactive rate comparison table#222
patcapulong wants to merge 10 commits intomainfrom
feat/fx-rate-explorer

Conversation

@patcapulong
Copy link
Contributor

Summary

  • Interactive FX rate explorer comparing Grid vs Wise and other providers across 40+ corridors
  • Live mid-market rates from Grid API + live competitor data from Wise comparison API
  • Header bar with "Send X to Y" pattern, currency chips for filtering, and bps/amount toggle
  • Circle-flags via CDN, searchable dropdown with scroll-aware gradient masks, Grid delta column
  • Full-width table layout with mobile responsive breakpoints
  • Smart caching (sessionStorage, 30-min fresh / 2-hr stale SWR), request batching (10 concurrent), 1200ms debounce

Test plan

  • Page loads at /platform-overview/core-concepts/sample-rates with globe icon in sidebar
  • Header bar: "Send 1,000 USD to [Select currency]" renders correctly
  • Select currencies → chips appear, table filters; "+ Add" adds more; "Clear" resets
  • Circle flags render as circles (not emoji) at all sizes
  • Toggle between Cost (bps) and Amount received
  • Best provider per row highlighted in green
  • Grid delta column shows +/- vs best competitor
  • Dark mode: all colors flip correctly
  • Mobile: header stacks vertically, delta column hides, table scrolls horizontally
  • Live competitor data populates after ~1-2s (batched fetching)
  • Changing source currency or amount triggers re-fetch with debounce

🤖 Generated with Claude Code

patcapulong and others added 6 commits February 19, 2026 23:24
Add an interactive rate comparison table that lets prospects compare
Grid's FX rates against competitors across popular corridors.

- Rate Explorer snippet with fake data for USD, EUR, GBP corridors
- Sample Rates page under Core Concepts
- Full styling with dark mode and mobile responsive support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Default state shows compact "Showing top 10 corridors" label instead of
12 chips. Chips only appear when the user customizes the selection.
Also trims default corridors from 12 to 10 (drops SGD/HKD) and fixes
missing --ls-green-400 CSS variable for dark mode advantage text.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded rates with live data (Grid API → Coinbase fallback →
hardcoded), remove competitor columns (Wise/Banks) and historical
section, simplify table to Grid rate vs mid-market with spread %.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…-flags

Redesign the rate explorer to match Figma specs: new "Send X to Y" header
bar with currency chips, circle-flags via CDN, searchable currency dropdown
with scroll-aware gradient masks, Grid delta column, full-width table layout,
and mobile responsive breakpoints.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove unused flag emoji fields from CURRENCIES (circle-flags CDN
replaced them), merge duplicate flag CSS classes, remove empty/redundant
CSS rules, and standardize var→let/const throughout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
patcapulong and others added 2 commits February 22, 2026 23:28
- Add skeleton shimmer rows while Grid rates load (40 rows matching corridor count)
- Cache Grid live rates in sessionStorage (read via lazy useState initializer, no paint blocking)
- Cache empty fallback on API failure to prevent repeated skeleton flashes
- Use CSS mask-image for Grid icon (inherits text color, external SVG file)
- Add currency code to delta column in amount-received mode
- Remove dead SkeletonTable component and unused CSS from static skeleton experiments
- Full-width layout marker div (#rate-explorer-page) remains for CSS :has() selectors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Stripe (FX + cross-border + fixed fee bps) and Airwallex (50/100 bps)
  as computed competitor columns from published pricing schedules
- Add Avg Bank column from Wise API bank-type provider averages
- Reduce dynamic provider columns from 3 to 2
- Wait for both live rates and competitor data before showing table
- Replace generic skeleton bars with table-shaped skeleton (SkeletonTable)
  showing real column headers, currency rows with flags, and shimmer cells
- Add StaticPlaceholder for zero-layout-shift first paint before React mounts
- Override Mintlify's injected table styles (min-w-[150px], w-full, margins)
- Hug-content column widths with width:1% trick

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…page

Co-Authored-By: Claude Opus 4.6 <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