Files
parenthese/frontend/src/utils/firstNames.js
T
IliesAllaliandClaude Opus 5.5 1565552141 Plusieurs prénoms dans le champ Prénom : « Paul, Marie, Jean » crée trois enfants (#203)
Pour un enfant ou un frère, une virgule sépare les prénoms : une personne par prénom, mêmes liens,
nom et dates pour chacune (vides et doublons ignorés, 20 au plus). Parent et conjoint gardent un seul
prénom. Vaut pour le propriétaire, la famille (brouillons) et la démo ; la bulle dit « Paul, Marie et
Jean … sont sur l'arbre ». Sur téléphone, aucune fiche ne s'ouvre et la caméra cadre toute la fratrie
(focusPersons dans Galaxy, qui attend la remise en place de l'arbre). person_added porte batch.

Le corps de l'ajout passe dans addOne : relire avec git diff -w.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 19:20:59 +01:00

22 lines
862 B
JavaScript

// « Paul, Marie, Jean » dans le champ Prénom d'un enfant ou d'un frère : une personne par prénom.
// Sans virgule, ou pour un parent ou un conjoint, le champ reste un seul prénom.
const MAX_NAMES = 20
export function splitFirstNames(value, relations = []) {
const text = String(value || '')
if (!text.includes(',')) return [text]
if (!relations.some((rel) => rel.type === 'child' || rel.type === 'sibling')) return [text]
const names = []
for (const part of text.split(',')) {
const name = part.trim()
if (name && !names.includes(name)) names.push(name)
}
return names.length > 1 ? names.slice(0, MAX_NAMES) : [names[0] || text]
}
// « Paul, Marie et Jean »
export function joinFirstNames(names, and) {
if (names.length < 2) return names[0] || ''
return `${names.slice(0, -1).join(', ')} ${and} ${names[names.length - 1]}`
}