Update Owliver language and suggestions

This commit is contained in:
2026-10-07 19:15:44 +05:30
parent 8ac4e1ee88
commit 81e5979f8f
156 changed files with 7330 additions and 1755 deletions

View File

@@ -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">