Context
src/pages/Request.tsx is a placeholder. This is the public page a payer lands on from a shared link.
Acceptance criteria
- Fetch request by id from the API/contract; show payee, asset, amount, memo, and a status badge (Open/Paid/Cancelled/Expired).
- When
Open, show a Pay button that prompts the wallet, signs, and submits the pay call.
- Disabled / replaced-by-receipt state when already
Paid.
- Handle not-found and load states.
Technical notes
- Use
useParams() for :id.
- Reuse
useWallet for signing.
Testing
- Component test for Open and Paid states with a mocked backend.
Context
src/pages/Request.tsxis a placeholder. This is the public page a payer lands on from a shared link.Acceptance criteria
Open, show a Pay button that prompts the wallet, signs, and submits thepaycall.Paid.Technical notes
useParams()for:id.useWalletfor signing.Testing