Feat/add escrow trade status#326
Open
mariocodecr wants to merge 2 commits into
Open
Conversation
Introduces a data-driven vertical stepper that renders the Trustless Work escrow lifecycle (initiated → funded → released, with a disputed branch). Each step supports four visual states — completed, current, pending, disputed — mapped to semantic brand tokens so it adapts to light and dark themes without hardcoded colors. Timestamps are formatted with Intl and the list uses semantic markup (<ol>, <time dateTime>, aria-current) plus sr-only status labels for assistive tech.
Adds a mobile-first screen that renders an escrow trade lifecycle
using the new EscrowStepper. Includes a summary header with
counterparty (WalletBadge), amount and a contract-id placeholder, plus
a context-aware primary action derived from the current step
("Financiar escrow" / "Liberar fondos") and a secondary "Abrir
disputa" action — both wired to console.log stubs per the issue scope.
Uses mocked trade state only; no Trustless Work API calls. Content is
wrapped in <Reveal> for a subtle entrance that honors
prefers-reduced-motion, and copy follows the existing Spanish
convention (Volver, Iniciado, Financiado, Liberado).
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.
📝 (feat: add Escrow / Trade Status screen with lifecycle stepper)
🛠️ Issue
📖 Description
Adds the Escrow / Trade Status screen at app/trades/[id]/page.tsx — a mobile-first view that renders the Trustless Work escrow lifecycle (Iniciado →
Financiado → Liberado, with a Disputa branch) using a new reusable EscrowStepper component. Each step exposes four visual states (completed, current,
pending, disputed) mapped to the brand's semantic tokens, so it adapts to light and dark themes without hardcoded colors. The screen surfaces a summary
header (amount, counterparty via WalletBadge, contract-id placeholder) and a context-aware primary CTA derived from the current step, plus a secondary
"Abrir disputa" action — both wired to console.log stubs per the issue scope.
UI / mock only. No Trustless Work API calls, no backend, no changes to files outside the declared scope.
✅ Changes made
/- , aria-current="step", , sr-only status labels.
- Timestamps formatted via Intl.DateTimeFormat with overrideable locale (default es-AR).
- Vertical rail between steps colored by completion (bg-primary vs bg-border).
disputa".
🖼️ Media (screenshots/videos)
📜 Additional Notes
existing components, etc.).
a. feat: add reusable escrow lifecycle stepper component — building block.
b. feat: add trade status screen at /trades/[id] — consumer.
timestamps, focusable back button with aria-label and visible focus ring, disabled state on secondary action when no step is active.
issue. Manual test steps: