Show created-at relative time for each webhook
Description
src/app/webhooks/page.tsx carries a createdAt: number on each Webhook but never renders it — the list shows only the URL and the events CSV, giving operators no sense of when a hook was registered. The repo already ships TimeAgo and safeFormatTimestamp for exactly this. This issue surfaces the registration time per row.
Requirements and context
- Repository scope: Agentpay-Org/Agentpay-frontend only.
- Render each webhook's
createdAt using TimeAgo inside a <time> element, with the absolute timestamp via safeFormatTimestamp as the title.
- Keep the existing safe-href URL rendering, the events CSV line, and the Remove button untouched.
- Guard against a missing/invalid
createdAt so the row still renders.
Suggested execution
- Fork the repo and create a branch
git checkout -b enhancement/webhooks-created-at-timeago
- Implement changes
- Write code in:
src/app/webhooks/page.tsx.
- Write comprehensive tests in: extend
src/app/webhooks/page.test.tsx — assert the relative time renders for a valid createdAt and the row still renders for a missing one.
- Add documentation: note the created-at display in
README.md.
- Validate the
<time dateTime> is a valid ISO string.
- Test and commit
Test and commit
- Run
npm run lint, npm run typecheck, npm test, and npm run build.
- Cover edge cases: valid timestamp, zero/missing timestamp, and a very old timestamp.
- Include the
npm test output.
Example commit message
feat(webhooks): render created-at relative time with TimeAgo
Guidelines
- Minimum 95 percent test coverage for the changed page.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
Community & contribution rewards
- 💬 Join the AgentPay community on Discord for questions, reviews, and faster merges: https://discord.gg/eXvRKkgcv
- ⭐ This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project — if this issue and the maintainers helped you ship, we'd be grateful for a 5-star rating. Clear questions in Discord and tidy, well-tested PRs are the fastest path to a merge and a reward.
Show created-at relative time for each webhook
Description
src/app/webhooks/page.tsxcarries acreatedAt: numberon eachWebhookbut never renders it — the list shows only the URL and the events CSV, giving operators no sense of when a hook was registered. The repo already shipsTimeAgoandsafeFormatTimestampfor exactly this. This issue surfaces the registration time per row.Requirements and context
createdAtusingTimeAgoinside a<time>element, with the absolute timestamp viasafeFormatTimestampas the title.createdAtso the row still renders.Suggested execution
git checkout -b enhancement/webhooks-created-at-timeagosrc/app/webhooks/page.tsx.src/app/webhooks/page.test.tsx— assert the relative time renders for a validcreatedAtand the row still renders for a missing one.README.md.<time dateTime>is a valid ISO string.Test and commit
npm run lint,npm run typecheck,npm test, andnpm run build.npm testoutput.Example commit message
feat(webhooks): render created-at relative time with TimeAgoGuidelines
Community & contribution rewards