1.7 KiB
1.7 KiB
2026-07-17 — P1-4 modal migration: HRManagement.tsx partial (1 of 9)
Branch: feat/p1-4-modals-hr
Worktree: .worktrees/feat-p1-4-modals-hr
Why
P1-4 from the readiness audit asks for every inline modal to use the
shared <Modal> component. HRManagement.tsx has 9 modals (the most of
any single file in the sweep). This PR lands the Onboard Staff modal
as a proof and updates the lint script to count backdrop-blur-md
(which HRManagement and several other files use).
Changes
client/src/pages/admin/HRManagement.tsx
- Migrated 1 of 9 modals: Onboard Staff. The form body is wrapped
in
<ModalBody>; the inlinebg-muted/50header band + close button were removed (Modal injects its own header). - 8 modals remaining: Staff Profile, Staff Documents, Leave Audit Intel, New Payroll Run, Create Job Vacancy, Vacancy Details, Review Candidate, Register Candidate. Each is structurally similar and ready to migrate with the same pattern; left for a follow-up PR because the file is 2000+ lines and the 9 modals are scattered across the page.
scripts/lint-no-inline-modals.js
Updated the matcher to also count backdrop-blur-md and
backdrop-blur-lg in addition to backdrop-blur-sm. The bg-[#002147]/80 backdrop-blur-md pattern is used across HRManagement, Library, and
Inventory, so the previous lint missed most admin modals.
Out of scope
- 8 remaining modals in HRManagement.tsx.
- 6 remaining modals in
finance/*(StudentGroups × 3, StudentGroupDetail, plus side-drawers in Invoices + Payslips needing a sibling<Drawer>component).
Verification
node scripts/lint-no-inline-modals.js:- HRManagement.tsx: 9 → 8 (Onboard Staff migrated).