[codex] Add authenticated MyPayTag portal UI - #12
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@codex review |
|
@codex review |
1 similar comment
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7ef460e62a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return () => { | ||
| cancelled = true; | ||
| }; | ||
| }, [accessToken, type, t]); |
There was a problem hiding this comment.
Stabilize the translation function used by fetch effects
useTypedTranslation creates a new t wrapper on every render, so including t here causes every completed history fetch to update state, render again, and immediately start another fetch. An authenticated visitor therefore continuously calls the history backend; the identical dependency pattern in ReceivePathSettingsPanel does the same to /api/portal/preferences. Memoize the typed wrapper or otherwise make the effect depend only on stable values.
Useful? React with 👍 / 👎.
| const question = item.kind === "question" ? item : questions.get("questionId" in item ? item.questionId : ""); | ||
|
|
||
| if (filter === "paying-app") { | ||
| return question?.payingDapp.displayName ?? "Unknown PayingDapp"; |
There was a problem hiding this comment.
Preserve question context when grouping filtered history
When the backend honors type=quotes, type=answers, type=intents, or type=receipts by returning only the requested kinds, this lookup contains no question records, while those item contracts do not carry payingDapp. Consequently the default paying-app view places every filtered result under Unknown PayingDapp. Include grouping context in each summary/response or resolve the referenced questions separately so type-filtered views retain meaningful groups.
Useful? React with 👍 / 👎.
| cache: "no-store", | ||
| }); | ||
| if (!response.ok) throw new Error(portalErrorMessage(response.status, t)); | ||
| return await response.json() as PortalHistoryResponse; |
There was a problem hiding this comment.
When the backend returns a nextCursor, this function returns only the first response and no caller consumes that cursor or offers a load-more action. Accounts exceeding the backend page size therefore see an incomplete transaction history with no indication that older records exist. Follow nextCursor or expose pagination controls that request subsequent pages.
Useful? React with 👍 / 👎.
Summary
Validation
pnpm check:i18npassed locally during implementation.pnpm typecheckpassed locally during implementation.pnpm lintpassed locally during implementation.pnpm buildpassed locally during implementation.pnpm scan:browser-secretspassed locally during implementation.Boundary Notes
Orchestrator Lifecycle