fix(client): give every edit button the pencil icon (#353) #358

Merged
james merged 1 commit from 353-standardize-edit-buttons into main 2026-06-29 13:14:57 +00:00
Owner

Some edit buttons showed a Lucide pencil and others didn't. Standardize: every "edit" affordance now leads with <Pencil size={14}> before its label, matching the pattern already used in profile.tsx / projects.tsx.

Fixed

  • notes.tsx (note-row edit), projects.tsx (ProjectRow edit), experience.tsx (8 edit buttons — skills section, contracts, contract position/contribution, education, jobs, job position/contribution), and the network person/org detail screens.
  • The network detail screens edit through a shared local SecondaryButton; an optional icon prop was added so only the edit call sites get the pencil — every other SecondaryButton (cancel/save/delete/add) is unchanged.
  • Canonical pattern matched from the buttons that already had it: leading <Pencil size={14} color={theme.tokens.text} strokeWidth={1.75} /> + flexDirection: "row" / gap: 6 on the button style.

Icon-only and decorative next to the existing label; colors via theme.tokens.*; no i18n, label, handler, or accessibility changes. Only apps/client touched.

Verification (local, re-run in the worktree)

  • typecheck ✓ · lint ✓ · test ✓ 154 · semgrep ✓ 0 findings on the 5 changed files

⚠️ Needs maintainer verification

Client tests are node-env — the visual alignment/spacing of the icon across screens needs an eyeball in a running build.

Closes #353

🤖 Generated with Claude Code

Some edit buttons showed a Lucide pencil and others didn't. Standardize: every "edit" affordance now leads with `<Pencil size={14}>` before its label, matching the pattern already used in `profile.tsx` / `projects.tsx`. ## Fixed - `notes.tsx` (note-row edit), `projects.tsx` (ProjectRow edit), `experience.tsx` (8 edit buttons — skills section, contracts, contract position/contribution, education, jobs, job position/contribution), and the network person/org detail screens. - The network detail screens edit through a shared local `SecondaryButton`; an optional `icon` prop was added so only the edit call sites get the pencil — every other SecondaryButton (cancel/save/delete/add) is unchanged. - Canonical pattern matched from the buttons that already had it: leading `<Pencil size={14} color={theme.tokens.text} strokeWidth={1.75} />` + `flexDirection: "row"` / `gap: 6` on the button style. Icon-only and decorative next to the existing label; colors via `theme.tokens.*`; no i18n, label, handler, or accessibility changes. Only `apps/client` touched. ## Verification (local, re-run in the worktree) - `typecheck` ✓ · `lint` ✓ · `test` ✓ 154 · semgrep ✓ 0 findings on the 5 changed files ## ⚠️ Needs maintainer verification Client tests are `node`-env — the **visual** alignment/spacing of the icon across screens needs an eyeball in a running build. Closes #353 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(client): give every edit button the pencil icon (#353)
All checks were successful
Commits / Conventional Commits (pull_request) Successful in 16s
PR / Lint (pull_request) Successful in 2m26s
PR / Typecheck (pull_request) Successful in 2m19s
PR / Static analysis (pull_request) Successful in 3m2s
PR / OpenAPI (pull_request) Successful in 3m24s
PR / Client (web export smoke) (pull_request) Successful in 2m39s
PR / Build (pull_request) Successful in 3m58s
PR / OSV-Scanner (pull_request) Successful in 2m8s
PR / Package age policy (soft) (pull_request) Successful in 1m5s
PR / pnpm audit (pull_request) Successful in 2m35s
Secrets / gitleaks (pull_request) Successful in 1m9s
PR / Test (postgres) (pull_request) Successful in 3m58s
PR / E2E (Playwright) (pull_request) Successful in 4m41s
PR / Coverage (soft) (pull_request) Successful in 3m25s
PR / Test (sqlite) (pull_request) Successful in 4m50s
PR / Trivy (image) (pull_request) Successful in 4m45s
778c4f30dd
Some edit buttons showed a Lucide pencil and others didn't. Standardize:
every "edit" affordance now leads with `<Pencil size={14}>` before its
label, matching the pattern already used in profile.tsx / projects.tsx.

Fixed the edit buttons in notes, projects (row), experience (8 buttons —
skills/contracts/positions/contributions/education/jobs), and the
network person/org detail screens (via an optional `icon` prop on their
shared SecondaryButton, leaving the other buttons untouched). Icon-only,
decorative next to the existing label; colors via theme.tokens; no i18n
or behavior changes.

Closes #353

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

📊 Test coverage

Patch coverage: no testable lines changed.

Overall (app/, lib/, db/, excluding UI per ADR-0019):

Metric Value Soft target
Lines 79.3% ≥ 50%
Branches 71.1% ⚠️ ≥ 75%
Functions 80.5% informational

Soft thresholds per ADR-0019. Coverage is informational and does not block merge.

<!-- coverage-comment --> ## 📊 Test coverage **Patch coverage:** no testable lines changed. **Overall** (`app/`, `lib/`, `db/`, excluding UI per ADR-0019): | Metric | Value | Soft target | |---|---|---| | Lines | 79.3% ✅ | ≥ 50% | | Branches | 71.1% ⚠️ | ≥ 75% | | Functions | 80.5% | informational | Soft thresholds per [ADR-0019](docs/adr/0019-coverage-soft-targets.md). Coverage is informational and does not block merge.
james merged commit 3f574aa71a into main 2026-06-29 13:14:57 +00:00
james deleted branch 353-standardize-edit-buttons 2026-06-29 13:14:58 +00:00
Sign in to join this conversation.
No description provided.