Files
Starseed/frontend/shared/utils/phone.ts
T
tristan 93aa22594d
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m5s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m14s
fix(commercial) : retours de review ERP-62
- Export : message d'erreur dédié (toast.exportError) distinct du titre.
- formatLastActivity : garde-fou date invalide (Number.isNaN) → cellule vide.
- normalizeIntList/normalizeStringList : normalisation défensive (foreach +
  is_numeric/cast), plus de TypeError strict pour un appelant direct.
- phone.ts : docblock reformulé (helper transverse assumé, usage à venir partout).
2026-06-02 16:10:00 +02:00

24 lines
1.0 KiB
TypeScript

/**
* Formatage d'un numero de telephone francais en groupes de 2 chiffres
* (`XX XX XX XX XX`).
*
* Helper PARTAGE volontaire : les telephones sont presents un peu partout dans
* l'app (fiches clients, contacts, fournisseurs, prestataires...). Introduit ici
* comme util transverse stable plutot que duplique a chaque ecran. La signature
* `formatPhoneFR(value): string` est coordonnee avec ERP-66, qui pourra enrichir
* l'implementation (validation, indicatif international) sans casser les appelants.
*
* - Ne garde que les chiffres puis groupe par 2 (tolere une saisie deja espacee
* ou pointee, ex: `06.12.34.56.78` ou `0612345678`).
* - Retourne une chaine vide si la valeur est vide/nulle (cellule vide propre).
*/
export function formatPhoneFR(value: string | null | undefined): string {
const digits = (value ?? '').replace(/\D/g, '')
if (digits.length === 0) {
return ''
}
// Groupe par paquets de 2 ; un dernier groupe impair reste tel quel.
return digits.match(/.{1,2}/g)?.join(' ') ?? digits
}