Model contacts pages after people pages #157

Merged
erik merged 3 commits from feat/task-e0fdae66-contacts-people-pages into main 2026-06-19 21:33:26 -05:00
Owner

Summary

  • Rework /contacts into a people-page-style responsive card grid.
  • Add contact cards with initial/avatar support, website hostnames, and account badges.
  • Align /contacts/:id with the reference detail layout while preserving contact details and account metadata.
  • Update public route tests for contact listing/detail structure and metadata.

Verification

  • npm run build
  • ./scripts/pre-pr.sh
  • Browser smoke test for /contacts and /contacts/:id
## Summary - Rework `/contacts` into a people-page-style responsive card grid. - Add contact cards with initial/avatar support, website hostnames, and account badges. - Align `/contacts/:id` with the reference detail layout while preserving contact details and account metadata. - Update public route tests for contact listing/detail structure and metadata. ## Verification - `npm run build` - `./scripts/pre-pr.sh` - Browser smoke test for `/contacts` and `/contacts/:id`
feat: model contacts after people pages
All checks were successful
CI / build-lint-test (pull_request) Successful in 45s
fc31aac41d
Task: #task-e0fdae66
fix: align contacts listing with people page
All checks were successful
CI / build-lint-test (pull_request) Successful in 45s
b4a714a142
Task: #task-e0fdae66
Author
Owner

PR Review: Approved

Summary

The PR updates Slugkit's public contacts listing and detail pages to follow the erikcraddock.me people-page patterns: a full-width max-w-6xl layout, search form with live result updates, result-count/no-result states, responsive people-style cards, website hostnames, account badges, and a two-column detail layout with a back header and account metadata.

Acceptance criteria

  • GET /contacts renders a public contacts page modeled after the reference site's people listing.
  • The page lists Slugkit contacts with useful summary metadata.
  • GET /contacts/:id still renders contact details.
  • Existing public routes are preserved; this PR only changes contacts rendering and the contacts query path.
  • Relevant tests and local checks pass.

Blocking issues

None.

Warnings

None.

Verification

  • npm run build
  • ./scripts/pre-pr.sh
  • Forgejo Actions run #214 passed.
  • Browser smoke test for /contacts and /contacts/:id.

Verdict

Approved. Stop at the human merge gate.

PR Review Worker Result

  • pr: open
  • review: approved
  • pr_comment: posted
  • task_comment: posted
  • blocking_issues: 0
  • warnings: 0
  • criteria_total: 5
  • criteria_met: 5
  • criteria_missing: 0
## PR Review: Approved ### Summary The PR updates Slugkit's public contacts listing and detail pages to follow the `erikcraddock.me` people-page patterns: a full-width max-w-6xl layout, search form with live result updates, result-count/no-result states, responsive people-style cards, website hostnames, account badges, and a two-column detail layout with a back header and account metadata. ### Acceptance criteria - [x] `GET /contacts` renders a public contacts page modeled after the reference site's people listing. - [x] The page lists Slugkit contacts with useful summary metadata. - [x] `GET /contacts/:id` still renders contact details. - [x] Existing public routes are preserved; this PR only changes contacts rendering and the contacts query path. - [x] Relevant tests and local checks pass. ### Blocking issues None. ### Warnings None. ### Verification - `npm run build` - `./scripts/pre-pr.sh` - Forgejo Actions run #214 passed. - Browser smoke test for `/contacts` and `/contacts/:id`. ### Verdict Approved. Stop at the human merge gate. PR Review Worker Result - pr: open - review: approved - pr_comment: posted - task_comment: posted - blocking_issues: 0 - warnings: 0 - criteria_total: 5 - criteria_met: 5 - criteria_missing: 0
fix: match contact detail to people detail
All checks were successful
CI / build-lint-test (pull_request) Successful in 46s
e6438a044c
Task: #task-e0fdae66
Author
Owner

PR Review Update: Approved

Summary

Reviewed the final PR state after the contact detail alignment fix. /contacts now follows the reference people listing pattern with search, result counts, and people-style cards. /contacts/:id now matches the reference people detail pattern more closely with a left contact card and right feed-style panel with a back header and empty-state body.

Acceptance criteria

  • GET /contacts renders a public contacts page modeled after the reference site's people listing.
  • The page lists Slugkit contacts with useful summary metadata.
  • GET /contacts/:id still renders contact details.
  • Existing public routes are preserved.
  • Relevant tests and local checks pass.

Blocking issues

None.

Warnings

None.

Verification

  • npm run build
  • ./scripts/pre-pr.sh
  • Forgejo Actions run #215 passed on the latest head.
  • Browser smoke test for /contacts and /contacts/:id.

Verdict

Approved.

PR Review Worker Result

  • pr: open
  • review: approved
  • pr_comment: posted
  • task_comment: posted
  • blocking_issues: 0
  • warnings: 0
  • criteria_total: 5
  • criteria_met: 5
  • criteria_missing: 0
## PR Review Update: Approved ### Summary Reviewed the final PR state after the contact detail alignment fix. `/contacts` now follows the reference people listing pattern with search, result counts, and people-style cards. `/contacts/:id` now matches the reference people detail pattern more closely with a left contact card and right feed-style panel with a back header and empty-state body. ### Acceptance criteria - [x] `GET /contacts` renders a public contacts page modeled after the reference site's people listing. - [x] The page lists Slugkit contacts with useful summary metadata. - [x] `GET /contacts/:id` still renders contact details. - [x] Existing public routes are preserved. - [x] Relevant tests and local checks pass. ### Blocking issues None. ### Warnings None. ### Verification - `npm run build` - `./scripts/pre-pr.sh` - Forgejo Actions run #215 passed on the latest head. - Browser smoke test for `/contacts` and `/contacts/:id`. ### Verdict Approved. PR Review Worker Result - pr: open - review: approved - pr_comment: posted - task_comment: posted - blocking_issues: 0 - warnings: 0 - criteria_total: 5 - criteria_met: 5 - criteria_missing: 0
erik merged commit f98cf8e334 into main 2026-06-19 21:33:26 -05:00
erik deleted branch feat/task-e0fdae66-contacts-people-pages 2026-06-19 21:33:26 -05:00
Sign in to join this conversation.
No description provided.