/**
 * Formatte une date en respectant les conventions françaises (jj/mm/aaaa).
 * Retourne "—" si la valeur est invalide ou absente.
 */
const frenchDateFormatter = new Intl.DateTimeFormat('fr-FR', {
  day: '2-digit',
  month: '2-digit',
  year: 'numeric',
})

export const formatFrenchDate = (value: Date | string | number | null | undefined): string => {
  if (value === null || value === undefined || value === '') {
    return '—'
  }

  const date = value instanceof Date ? value : new Date(value)
  if (Number.isNaN(date.getTime())) {
    return '—'
  }

  return frenchDateFormatter.format(date)
}
