Update Owliver language and suggestions
This commit is contained in:
@@ -6,8 +6,10 @@ import AIInterviewModal from '@/components/krow/AIInterviewModal';
|
||||
import ScheduleInterviewModal from '@/components/krow/ScheduleInterviewModal';
|
||||
import MessageCandidateModal from '@/components/krow/MessageCandidateModal';
|
||||
import { toast } from 'react-hot-toast';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export default function Candidates() {
|
||||
const { t } = useTranslation();
|
||||
const { data: applications = [], isLoading } = useApplications();
|
||||
const { data: postings = [] } = useJobPostings();
|
||||
const screenAll = useScreenAllCandidates();
|
||||
@@ -90,7 +92,7 @@ export default function Candidates() {
|
||||
<div className="space-y-5">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<h1 className="text-[22px] font-bold text-[#111827]">All Candidates</h1>
|
||||
<h1 className="text-[22px] font-bold text-[#111827]">{t('candidates.allCandidates')}</h1>
|
||||
</div>
|
||||
<div className="flex items-center gap-3">
|
||||
<span className="text-[13px] text-[#6B7280]">{applications.length} candidates</span>
|
||||
@@ -110,26 +112,26 @@ export default function Candidates() {
|
||||
<input
|
||||
value={search}
|
||||
onChange={(e) => setSearch(e.target.value)}
|
||||
placeholder="Search candidates..."
|
||||
placeholder={t('candidates.searchCandidates')}
|
||||
className="w-full h-10 pl-4 pr-4 rounded-lg border border-[#E5E7EB] bg-white text-[13px] focus:border-[#0838E0] focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<select value={stageFilter} onChange={(e) => setStageFilter(e.target.value)} className="h-10 px-4 rounded-lg border border-[#E5E7EB] bg-white text-[13px] focus:border-[#0838E0] focus:outline-none">
|
||||
<option value="all">All Stages</option>
|
||||
<option value="applied">Applied</option>
|
||||
<option value="ai_screened">AI Screened</option>
|
||||
<option value="interview">Interviewing</option>
|
||||
<option value="hired">Hired</option>
|
||||
<option value="all">{t('candidates.allStages')}</option>
|
||||
<option value="applied">{t('candidates.applied')}</option>
|
||||
<option value="ai_screened">{t('candidates.aiScreened')}</option>
|
||||
<option value="interview">{t('candidates.interviewing')}</option>
|
||||
<option value="hired">{t('candidates.hired')}</option>
|
||||
</select>
|
||||
<select value={positionFilter} onChange={(e) => setPositionFilter(e.target.value)} className="h-10 px-4 rounded-lg border border-[#E5E7EB] bg-white text-[13px] focus:border-[#0838E0] focus:outline-none max-w-[200px] truncate">
|
||||
<option value="all">All Positions</option>
|
||||
<option value="all">{t('candidates.allPositions')}</option>
|
||||
{positionOptions.map(p => <option key={p} value={p}>{p}</option>)}
|
||||
</select>
|
||||
<select value={scoreFilter} onChange={(e) => setScoreFilter(e.target.value)} className="h-10 px-4 rounded-lg border border-[#E5E7EB] bg-white text-[13px] focus:border-[#0838E0] focus:outline-none">
|
||||
<option value="all">All Scores</option>
|
||||
<option value="high">80+ (Top Talent)</option>
|
||||
<option value="mid">60-79 (Strong Fit)</option>
|
||||
<option value="low">0-59 (Possible/Not Fit)</option>
|
||||
<option value="all">{t('candidates.allScores')}</option>
|
||||
<option value="high">{t('candidates.80TopTalent')}</option>
|
||||
<option value="mid">{t('candidates.6079StrongFit')}</option>
|
||||
<option value="low">{t('candidates.059PossibleNotFit')}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -140,7 +142,7 @@ export default function Candidates() {
|
||||
</div>
|
||||
) : filtered.length === 0 ? (
|
||||
<div className="text-center py-16">
|
||||
<p className="text-[14px] text-[#6B7280]">No candidates match your filters</p>
|
||||
<p className="text-[14px] text-[#6B7280]">{t('candidates.noCandidatesMatchYourFilters')}</p>
|
||||
</div>
|
||||
) : (
|
||||
<div className="space-y-3">
|
||||
|
||||
Reference in New Issue
Block a user