Update Owliver language and suggestions
This commit is contained in:
@@ -5,8 +5,10 @@ import { useJobPostings, useApplications } from '@/lib/krowHooks';
|
||||
import { base44 } from '@/api/base44Client';
|
||||
import KROWJobPostingCard from '@/components/krow/KROWJobPostingCard';
|
||||
import CertificationManager from '@/components/krow/CertificationManager';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export default function Positions() {
|
||||
const { t } = useTranslation();
|
||||
const navigate = useNavigate();
|
||||
const { data: postings = [], isLoading } = useJobPostings();
|
||||
const { data: applications = [] } = useApplications();
|
||||
@@ -36,8 +38,8 @@ export default function Positions() {
|
||||
return (
|
||||
<div className="space-y-5">
|
||||
<div>
|
||||
<h1 className="text-[22px] font-bold text-[#111827]">Positions</h1>
|
||||
<p className="text-[13px] text-[#6B7280] mt-0.5">{postings.length} job postings</p>
|
||||
<h1 className="text-[22px] font-bold text-[#111827]">{t('positions.positions')}</h1>
|
||||
<p className="text-[13px] text-[#6B7280] mt-0.5">{postings.length} {t('positions.jobPostings')}</p>
|
||||
</div>
|
||||
|
||||
{/* Action Bar */}
|
||||
@@ -47,7 +49,7 @@ export default function Positions() {
|
||||
<input
|
||||
value={search}
|
||||
onChange={(e) => setSearch(e.target.value)}
|
||||
placeholder="Search positions..."
|
||||
placeholder={t('positions.searchPositions')}
|
||||
className="w-full h-9 pl-10 pr-4 rounded-full border border-[#E5E7EB] bg-white text-[13px] text-[#111827] shadow-2xs hover:border-[#D1D5DB] focus:border-[#2563EB] focus:ring-2 focus:ring-[#2563EB]/20 focus:outline-none transition-all"
|
||||
/>
|
||||
</div>
|
||||
@@ -56,18 +58,18 @@ export default function Positions() {
|
||||
onChange={(e) => setStatusFilter(e.target.value)}
|
||||
className="h-9 px-3.5 rounded-full border border-[#E5E7EB] bg-white text-[13px] text-[#1F2937] shadow-2xs hover:border-[#D1D5DB] focus:border-[#2563EB] focus:outline-none transition-all cursor-pointer"
|
||||
>
|
||||
<option value="all">All</option>
|
||||
<option value="active">Hiring</option>
|
||||
<option value="draft">Draft</option>
|
||||
<option value="paused">Paused</option>
|
||||
<option value="closed">Closed</option>
|
||||
<option value="all">{t('positions.all')}</option>
|
||||
<option value="active">{t('positions.hiring')}</option>
|
||||
<option value="draft">{t('positions.draft')}</option>
|
||||
<option value="paused">{t('positions.paused')}</option>
|
||||
<option value="closed">{t('positions.closed')}</option>
|
||||
</select>
|
||||
{isAdmin && <CertificationManager />}
|
||||
<button
|
||||
onClick={() => navigate('/positions/new')}
|
||||
className="inline-flex items-center justify-center gap-1.5 bg-[#111827] hover:bg-[#1F2937] text-white text-[13px] font-medium px-4 h-9 rounded-full shadow-xs transition-colors whitespace-nowrap"
|
||||
>
|
||||
<Plus className="w-4 h-4" /> New Position
|
||||
<Plus className="w-4 h-4" /> {t('positions.newPosition')}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -78,9 +80,9 @@ export default function Positions() {
|
||||
</div>
|
||||
) : filtered.length === 0 ? (
|
||||
<div className="text-center py-16">
|
||||
<p className="text-[14px] text-[#6B7280] mb-3">No positions found</p>
|
||||
<p className="text-[14px] text-[#6B7280] mb-3">{t('positions.noPositionsFound')}</p>
|
||||
<button onClick={() => navigate('/positions/new')} className="inline-flex items-center gap-1.5 bg-[#2563EB] text-white text-[13px] font-medium px-4 py-2 rounded-lg">
|
||||
<Plus className="w-4 h-4" /> Create your first position
|
||||
<Plus className="w-4 h-4" /> {t('positions.createYourFirstPosition')}
|
||||
</button>
|
||||
</div>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user