pull/91/head
ahmed.mujtaba 2026-09-10 18:50:19 +05:00
parent e64e6849bb
commit ea13b5b98c
2 changed files with 17 additions and 1 deletions

View File

@ -40,6 +40,20 @@ import {
const TABS = ['All Applications', 'Suggested Match', 'Unread', 'Processed', 'On-Hold', 'Rejected', 'Duplicates']
/** Sheet Forms have no mailbox read state — no Unread tab on that channel. */
const FORM_TABS = ['All Applications', 'Suggested Match', 'Processed', 'On-Hold', 'Rejected', 'Duplicates']
const TAB_HINTS = {
'All Applications': 'Every application in this channel',
'Suggested Match': 'Matcher found at least one job',
Unread: 'Email not marked read yet',
Processed: 'Recruiter imported or shortlisted',
'On-Hold': 'No suggested job found',
Rejected: 'Recruiter rejected from the inbox',
Duplicates: 'Flagged duplicates and reapplicants',
}
const CHANNEL_HINTS = {
all: 'Email and forms together',
email: 'Outlook applications with a resume',
forms: 'Google Form applicants',
}
/** Inbox GET `top` / sheet GET `limit` both cap at 500. */
const PAGE_SIZE_MAX = 500
@ -1906,6 +1920,7 @@ export default function Inbox() {
role="tab"
aria-selected={channel === c.key}
className={`pill-tab${channel === c.key ? ' active' : ''}`}
data-tip={CHANNEL_HINTS[c.key]}
onClick={() => switchChannel(c.key)}
>
<Icon name={c.icon} /> {c.label}
@ -1940,7 +1955,7 @@ export default function Inbox() {
setSelectedId(null)
selection.clear()
}}
tabs={channelTabs.map((t) => ({ key: t, label: t, count: counts[t] }))}
tabs={channelTabs.map((t) => ({ key: t, label: t, count: counts[t], title: TAB_HINTS[t] }))}
/>
</div>

View File

@ -49,6 +49,7 @@ export function Tabs({ tabs, value, onChange, className = 'tabs', idBase }) {
aria-controls={`${base}-panel-${i}`}
tabIndex={active ? 0 : -1}
className={`tab${active ? ' active' : ''}`}
data-tip={t.title || undefined}
onClick={() => onChange(key)}
>
{label}{t.count != null && typeof t.count !== 'object' && (