From 4757895029fc654085d41e36420dc3f5fe31c035 Mon Sep 17 00:00:00 2001 From: Talha Ahmed Date: Tue, 25 Aug 2026 21:46:11 +0500 Subject: [PATCH] ui-polish 3/6: screen sweep A (9 representative screens) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dashboard, Candidates, Jobs, Settings, Inbox, Interviews, Matching, Managers, JobCandidates — bounded checklist per screen: - Hand-rolled .page-head blocks replaced with . Fixes Matching, whose bare

rendered in the wrong face and weight. - Candidates drops its verbatim copy of the DataTable thead for DataTableHead; clickable rows use .row-click. - Interviews deletes its local STATUS_CLASS shadow (Badge auto-maps identically); Dashboard imports the shared PRIORITY_CLASS. - Icon-only .act-btn buttons gain aria-labels mirroring their tooltips. - Emails no longer overflow: Settings/Candidates clip with full text in title=""; Managers shows the full address again instead of chopping the domain off the data. - Mechanical inline-style swaps to the new utilities (mb-*, mt-*, flex-1, justify-between, flex-wrap) on exact matches only. - Settings uses its imported EmptyState instead of a hand-rolled copy; JobCandidates embedded title uses .page-title-sm instead of an inline font size. Co-Authored-By: Claude Fable 5 --- frontend/src/screens/Candidates.jsx | 54 +++++++------------------- frontend/src/screens/Dashboard.jsx | 20 ++++------ frontend/src/screens/Inbox.jsx | 15 ++++--- frontend/src/screens/Interviews.jsx | 46 +++++++++------------- frontend/src/screens/JobCandidates.jsx | 22 +++++------ frontend/src/screens/Jobs.jsx | 29 +++++++------- frontend/src/screens/Managers.jsx | 21 +++++----- frontend/src/screens/Matching.jsx | 26 ++++++------- frontend/src/screens/Settings.jsx | 47 ++++++++++------------ 9 files changed, 115 insertions(+), 165 deletions(-) diff --git a/frontend/src/screens/Candidates.jsx b/frontend/src/screens/Candidates.jsx index d1aece4..329711c 100644 --- a/frontend/src/screens/Candidates.jsx +++ b/frontend/src/screens/Candidates.jsx @@ -14,7 +14,8 @@ import { useLocation, useNavigate } from 'react-router-dom' import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import Modal from '../ui/Modal' -import { Pagination, useDataTable } from '../ui/DataTable' +import { DataTableHead, Pagination, useDataTable } from '../ui/DataTable' +import PageHeader from '../ui/PageHeader' import { Avatar, Badge, EmptyState, FieldError, Icon } from '../ui/primitives' import { useToast } from '../ui/Toast' import CandidateProfile from './CandidateProfile' @@ -263,14 +264,10 @@ export default function Candidates() { return (
-
-
-

Candidates

-

- {rows.length} candidate account{rows.length === 1 ? '' : 's'} · role_id {CANDIDATE_ROLE_ID} -

-
-
+ {rows.length} candidate account{rows.length === 1 ? '' : 's'} · role_id {CANDIDATE_ROLE_ID}} + actions={<> @@ -280,11 +277,11 @@ export default function Candidates() { -
-
+ } + /> {recentChips.length > 0 && ( -
+
Recently viewed: {recentChips.map((c) => (