SPB Git

spb/job-ka

Public
1.6 KB · 39 lines tsx
1/**2 * =============================================================================3 * Job·Ka — Groupe KA4 * Auteur  : Simon-Pierre Boucher5 * Contact : contact@spboucher.ai6 * Fichier : frontend/src/components/JobCard.tsx7 * Rôle    : Carte d'offre dans la liste (titre, employeur, badges, meta)8 * Créé    : 2026-08-17   Modifié : 2026-08-179 * =============================================================================10 */11import { Link } from "react-router-dom";12import { displayTitle, formatDate, formatSalary, Job, MODE_FR, TYPE_FR } from "../api";1314export default function JobCard({ job }: { job: Job }) {15  const salary = formatSalary(job);16  return (17    <Link to={`/emploi/${job.uid}`} className="job-card">18      <h3>{displayTitle(job)}</h3>19      <span className="employer">{job.employer}</span>20      {job.city ? <span className="muted"> — {job.city}</span> : null}21      <div className="meta">22        {job.is_direct !== false && (23          <span24            className="badge direct"25            title="Offre publiée à la source : page carrière de l'employeur, pas un portail"26          >27            Offre directe28          </span>29        )}30        {salary && <span className="badge salary">{salary}</span>}31        {job.work_mode && <span className="badge mode">{MODE_FR[job.work_mode] ?? job.work_mode}</span>}32        {job.employment_type && <span className="badge">{TYPE_FR[job.employment_type] ?? job.employment_type}</span>}33        {job.category && <span className="badge">{job.category}</span>}34        {job.date_posted && <span>Publiée le {formatDate(job.date_posted)}</span>}35      </div>36    </Link>37  );38}39
Files · 511e53aa86ed86ec3dc13e572c5e2cac9ef07eff
Menu

Theme