feat(client): link a Job/Contract employer to an Organization in the UI (#375) #378
No reviewers
Labels
No labels
area:auth
area:ci
area:db
area:infra
area:native
area:pwa
area:service
epic
feature
foundation
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
james/carol!378
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "375-job-org-link-client"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Completes #375 — the client UI on top of the merged backend (#376).
What's in it
@carol/api-client:useOrganizationRoles(id)overGET /api/organizations/{id}/roles;keys.organizations.roles(id). (No generated-file changes — the endpoint/DTO were already generated;checkstays clean.)experience.tsx): the sharedJobFormgains an "Employer" toggle — free text (default) vs linked organisation. Linked mode picks one of the user's orgs (useOrganizations); the company is derived server-side from the org.organizationIdthreads through create/update for both jobs and contracts; edit preselects the linked org; the linked option is disabled with a hint when there are no tracked orgs.CompanyName): a linked employer renders as an accent link to the Org detail (showing the liveorganizationName); free-text employers stay plainText. Wired into both list rows + both detail headers.network/orgs/[id].tsx): a read-only "your roles here" card listing the org's linked jobs/contracts (Job/Contract badge + date range) viauseOrganizationRoles.experience.jobs.form.*+network.organizationDetail.roles.*(British "organisation" to match the existing copy — 28 existing vs 5).Verification (local, re-run in the worktree)
@carol/api-client: typecheck ✓ · lint ✓ · test ✓ 44 ·check✓ (generated untouched)@carol/client: typecheck ✓ · lint ✓ · test ✓ 172experience.jobs.form.employerLabel→ "Employer",network.organizationDetail.roles.title→ "Your roles here", etc.⚠️ Needs maintainer verification (headless limit)
Client tests are
node-env. Please eyeball in a running build:/network/orgs/{id}from all four spots. One thing to confirm specifically: in the list rows,CompanyNameis aPressablenested inside the row's drill-downPressable. RN's responder system should grant the inner link the tap (→ org) while taps elsewhere on the row open the job/contract — but nested Pressables on RN Web can be finicky, so confirm both behaviors. (If it misbehaves, the clean fallback is to make the company tap-through only in the detail headers and keep list-row companies plain.)Closes #375
🤖 Generated with Claude Code
📊 Test coverage
Patch coverage: no testable lines changed.
Overall (
app/,lib/,db/, excluding UI per ADR-0019):Soft thresholds per ADR-0019. Coverage is informational and does not block merge.