Commit 21502bc9 authored by Jordan Grossemy's avatar Jordan Grossemy
Browse files

Nommer quelqu'un qui siège dans deux cellules le proposait deux fois

La liste des personnes qu'on peut nommer par « @ » vient de la route des
porteurs, qui groupe par cellule — et quelqu'un qui siège dans la cellule
décisionnelle et dans l'opérationnelle y figure une fois par cellule. C'est juste
pour choisir un porteur, où la cellule est précisément le propos et où le groupe
l'explique. Ici la liste est plate : le même nom deux fois de suite n'apprend
rien et fait douter de ce qu'on est en train de choisir.

Accessoirement, les deux entrées portaient la même clé React.

Dédoublonné par compte, à la lecture, sans toucher à la route : l'écran qui
aplatit est celui qui doit dédoublonner.

Co-Authored-By: Claude (RCA)
parent b393e346
Loading
Loading
Loading
Loading
+8 −4
Changes for apps/web/src/ecrans/Salon.tsx: 8 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -71,13 +71,17 @@ export function Salon({
    }>(`/api/crises/${criseId}/porteurs`),
  });

  const nommables = [
  // Dédoublonné par compte : « porteurs » groupe par cellule, et qui siège
  // dans deux cellules y figure deux fois. Utile pour choisir un porteur, où
  // la cellule est le propos ; ici la liste est plate, et le même nom deux
  // fois n'apprend rien — en plus de faire deux fois la même clé React.
  const nommables = [...new Map([
    ...(repertoire.data?.cellules ?? []).flatMap((c) => c.membres
      .map((m) => ({ id: m.compte_id, nom: m.nom }))),
      .map((m) => [m.compte_id, { id: m.compte_id, nom: m.nom }] as const)),
    ...(repertoire.data?.hors_cellule ?? [])
      .filter((p) => p.compte_id !== null)
      .map((p) => ({ id: p.compte_id!, nom: p.nom })),
  ];
      .map((p) => [p.compte_id!, { id: p.compte_id!, nom: p.nom }] as const),
  ]).values()];
  const proposes = suggere === null ? [] : nommables
    .filter((p) => p.nom.toLowerCase().includes(suggere.toLowerCase()))
    .slice(0, 6);