Checkpoint: Ajout de gardes défensives sur e.nom et e.code dans filteredEtabs et sortedEtabs : conversion explicite en string avant toLowerCase/localeCompare pour éviter le crash quand un établissement a un nom non-string (undefined, null, objet).
This commit is contained in:
@@ -699,8 +699,10 @@ export default function DsiOpex() {
|
|||||||
|
|
||||||
const filteredEtabs = useMemo(() => {
|
const filteredEtabs = useMemo(() => {
|
||||||
return etablissementsRecalcules.filter(e => {
|
return etablissementsRecalcules.filter(e => {
|
||||||
if (search && !e.nom.toLowerCase().includes(search.toLowerCase()) &&
|
const nom = typeof e.nom === 'string' ? e.nom : String(e.nom ?? '');
|
||||||
!e.code.toLowerCase().includes(search.toLowerCase())) return false;
|
const code = typeof e.code === 'string' ? e.code : String(e.code ?? '');
|
||||||
|
if (search && !nom.toLowerCase().includes(search.toLowerCase()) &&
|
||||||
|
!code.toLowerCase().includes(search.toLowerCase())) return false;
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}, [etablissementsRecalcules, search]);
|
}, [etablissementsRecalcules, search]);
|
||||||
@@ -708,7 +710,11 @@ export default function DsiOpex() {
|
|||||||
const sortedEtabs = useMemo(() => {
|
const sortedEtabs = useMemo(() => {
|
||||||
const arr = [...filteredEtabs];
|
const arr = [...filteredEtabs];
|
||||||
if (sortCol === 'total') arr.sort((a, b) => sortDir === 'asc' ? a.total - b.total : b.total - a.total);
|
if (sortCol === 'total') arr.sort((a, b) => sortDir === 'asc' ? a.total - b.total : b.total - a.total);
|
||||||
else if (sortCol === 'nom') arr.sort((a, b) => sortDir === 'asc' ? a.nom.localeCompare(b.nom) : b.nom.localeCompare(a.nom));
|
else if (sortCol === 'nom') arr.sort((a, b) => {
|
||||||
|
const na = typeof a.nom === 'string' ? a.nom : String(a.nom ?? '');
|
||||||
|
const nb = typeof b.nom === 'string' ? b.nom : String(b.nom ?? '');
|
||||||
|
return sortDir === 'asc' ? na.localeCompare(nb) : nb.localeCompare(na);
|
||||||
|
});
|
||||||
return arr;
|
return arr;
|
||||||
}, [filteredEtabs, sortCol, sortDir]);
|
}, [filteredEtabs, sortCol, sortDir]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user