Merge pull request 'SQS_BROKER' (#91) from SQS_BROKER into main
Deploy to S3 / deploy (push) Successful in 41s
Details
Deploy to S3 / deploy (push) Successful in 41s
Details
Reviewed-on: #91INTEGRATE_UI_
commit
e6d2cffddb
|
|
@ -40,6 +40,20 @@ import {
|
||||||
const TABS = ['All Applications', 'Suggested Match', 'Unread', 'Processed', 'On-Hold', 'Rejected', 'Duplicates']
|
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. */
|
/** 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 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. */
|
/** Inbox GET `top` / sheet GET `limit` both cap at 500. */
|
||||||
const PAGE_SIZE_MAX = 500
|
const PAGE_SIZE_MAX = 500
|
||||||
|
|
||||||
|
|
@ -1906,6 +1920,7 @@ export default function Inbox() {
|
||||||
role="tab"
|
role="tab"
|
||||||
aria-selected={channel === c.key}
|
aria-selected={channel === c.key}
|
||||||
className={`pill-tab${channel === c.key ? ' active' : ''}`}
|
className={`pill-tab${channel === c.key ? ' active' : ''}`}
|
||||||
|
data-tip={CHANNEL_HINTS[c.key]}
|
||||||
onClick={() => switchChannel(c.key)}
|
onClick={() => switchChannel(c.key)}
|
||||||
>
|
>
|
||||||
<Icon name={c.icon} /> {c.label}
|
<Icon name={c.icon} /> {c.label}
|
||||||
|
|
@ -1940,7 +1955,7 @@ export default function Inbox() {
|
||||||
setSelectedId(null)
|
setSelectedId(null)
|
||||||
selection.clear()
|
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>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ export function Tabs({ tabs, value, onChange, className = 'tabs', idBase }) {
|
||||||
aria-controls={`${base}-panel-${i}`}
|
aria-controls={`${base}-panel-${i}`}
|
||||||
tabIndex={active ? 0 : -1}
|
tabIndex={active ? 0 : -1}
|
||||||
className={`tab${active ? ' active' : ''}`}
|
className={`tab${active ? ' active' : ''}`}
|
||||||
|
data-tip={t.title || undefined}
|
||||||
onClick={() => onChange(key)}
|
onClick={() => onChange(key)}
|
||||||
>
|
>
|
||||||
{label}{t.count != null && typeof t.count !== 'object' && (
|
{label}{t.count != null && typeof t.count !== 'object' && (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue