diff --git a/frontend/src/features/Dashboard/components/DashboardsList/Filters.tsx b/frontend/src/features/Dashboard/components/DashboardsList/Filters.tsx index 8ec6fa57e..48b642563 100644 --- a/frontend/src/features/Dashboard/components/DashboardsList/Filters.tsx +++ b/frontend/src/features/Dashboard/components/DashboardsList/Filters.tsx @@ -125,7 +125,7 @@ export function Filters({ orientation = 'row' }: { orientation?: Orientation }) key={regulatoryTheme} onDelete={() => onDeleteTag(regulatoryTheme, 'regulatoryThemes', regulatoryThemes)} > - {String(`Thématique réglementaire ${getTitle(regulatoryTheme)}`)} + {String(`Thématique ${getTitle(regulatoryTheme)}`)} ))} diff --git a/frontend/src/features/Dashboard/components/DashboardsList/Rows/RegulatoryAreasThemesCell.tsx b/frontend/src/features/Dashboard/components/DashboardsList/Rows/RegulatoryAreasThemesCell.tsx index d3c3f3191..613f158af 100644 --- a/frontend/src/features/Dashboard/components/DashboardsList/Rows/RegulatoryAreasThemesCell.tsx +++ b/frontend/src/features/Dashboard/components/DashboardsList/Rows/RegulatoryAreasThemesCell.tsx @@ -11,9 +11,11 @@ export function RegulatoryAreasThemesCell({ themeIds }: { themeIds: number[] }) return '-' } - const regulatoryAreasThemes = uniq(themeIds.map(themeId => regulatoryAreas.entities[themeId]?.thematique)) - .filter(Boolean) - .join(', ') + const uniqueThemes = uniq( + themeIds.map(themeId => regulatoryAreas.entities[themeId]?.thematique.split(', ')).flatMap(theme => theme) + ) + + const regulatoryAreasThemes = uniqueThemes.filter(Boolean).join(', ') return {regulatoryAreasThemes} } diff --git a/frontend/src/features/Dashboard/useCases/filters/filterByRegulatoryThemes.ts b/frontend/src/features/Dashboard/useCases/filters/filterByRegulatoryThemes.ts index d52a72c42..5d73f445f 100644 --- a/frontend/src/features/Dashboard/useCases/filters/filterByRegulatoryThemes.ts +++ b/frontend/src/features/Dashboard/useCases/filters/filterByRegulatoryThemes.ts @@ -1,18 +1,23 @@ +import { uniq } from 'lodash' + import type { Dashboard } from '@features/Dashboard/types' import type { RegulatoryLayerWithMetadata } from 'domain/entities/regulatory' export function filterByRegulatoryThemes( - regulatoryThemes: string[], + regulatoryThemesFilter: string[], dashboard: Dashboard.DashboardFromApi, regulatoryAreas: RegulatoryLayerWithMetadata[] ): boolean { - if (regulatoryThemes.length === 0) { + if (regulatoryThemesFilter.length === 0) { return true } const filteredRegulatoryAreas = regulatoryAreas.filter(regulatoryArea => dashboard.regulatoryAreaIds?.includes(regulatoryArea.id) ) + const uniqueThemes = uniq( + filteredRegulatoryAreas.map(regulatoryArea => regulatoryArea?.thematique.split(', ')).flatMap(theme => theme) + ) - return filteredRegulatoryAreas.some(reg => regulatoryThemes.includes(reg.thematique)) + return uniqueThemes.some(reg => regulatoryThemesFilter.includes(reg)) }