diff --git a/client/src/containers/analysis-visualization/analysis-filters/more-filters/component.tsx b/client/src/containers/analysis-visualization/analysis-filters/more-filters/component.tsx index 96a0092b3..ff1fb28bd 100644 --- a/client/src/containers/analysis-visualization/analysis-filters/more-filters/component.tsx +++ b/client/src/containers/analysis-visualization/analysis-filters/more-filters/component.tsx @@ -104,6 +104,11 @@ const MoreFilters = () => { [selectedFilters.locationTypes], ); + const businessUnitIds = useMemo( + () => selectedFilters.businessUnits.map(({ value }) => value), + [selectedFilters.businessUnits], + ); + const [counter, setCounter] = useState(0); // Only the changes are applied when the user clicks on Apply @@ -156,6 +161,7 @@ const MoreFilters = () => { t1SupplierIds, producerIds, locationTypes: locationTypesIds, + businessUnitIds, }, { ...DEFAULT_QUERY_OPTIONS, @@ -178,6 +184,7 @@ const MoreFilters = () => { producerIds, locationTypes: locationTypesIds, scenarioIds, + businessUnitIds, }, DEFAULT_QUERY_OPTIONS, ); @@ -190,6 +197,7 @@ const MoreFilters = () => { originIds, locationTypes: locationTypesIds, scenarioIds, + businessUnitIds, }, DEFAULT_QUERY_OPTIONS, ); @@ -202,6 +210,7 @@ const MoreFilters = () => { originIds, locationTypes: locationTypesIds, scenarioIds, + businessUnitIds, }, DEFAULT_QUERY_OPTIONS, ); @@ -213,6 +222,7 @@ const MoreFilters = () => { t1SupplierIds, producerIds, scenarioIds, + businessUnitIds, }, { onSuccess: (_locationTypeOptions) => { @@ -237,6 +247,7 @@ const MoreFilters = () => { t1SupplierIds, producerIds, locationTypes: locationTypesIds, + scenarioIds, }); const reviewFilterContent = useCallback( @@ -264,7 +275,10 @@ const MoreFilters = () => { reviewFilterContent('origins', origins, origins); reviewFilterContent('t1Suppliers', t1Suppliers, t1SupplierOptions); reviewFilterContent('producers', producers, producerOptions); + reviewFilterContent('businessUnits', businessUnits, businessUnitsOptions); }, [ + businessUnits, + businessUnitsOptions, locationTypes, materialOptions, materials, @@ -359,18 +373,9 @@ const MoreFilters = () => { placeholder="Business Units" multiple fitContent - // onChange={(values) => handleChangeFilter('businessUnits', values)} - id="business-units-filter" - /> - {/* handleChangeFilter('businessUnits', values)} id="business-units-filter" - /> */} + />
Origins
diff --git a/client/src/hooks/business-units/index.ts b/client/src/hooks/business-units/index.ts index 4fa529478..3c4facdc1 100644 --- a/client/src/hooks/business-units/index.ts +++ b/client/src/hooks/business-units/index.ts @@ -25,6 +25,7 @@ export type BusinessUnitsTreesParams = { producerIds?: string[]; originIds?: string[]; locationTypes?: string[]; + scenarioIds?: string[]; }; export function useBusinessUnits(): ResponseData { @@ -105,6 +106,7 @@ export const useBusinessUnitsOptionsTrees = ( retry: false, keepPreviousData: true, refetchOnWindowFocus: false, + placeholderData: { data: [] }, ...options, select: (_businessUnits) => recursiveSort(_businessUnits?.data, 'name')?.map((item) => diff --git a/client/src/hooks/h3-data/utils.ts b/client/src/hooks/h3-data/utils.ts index 95412d385..8e3785e7e 100644 --- a/client/src/hooks/h3-data/utils.ts +++ b/client/src/hooks/h3-data/utils.ts @@ -20,6 +20,7 @@ export const storeToQueryParams = ({ startYear, indicator, materials, + businessUnits, t1Suppliers, producers, origins, @@ -34,6 +35,7 @@ export const storeToQueryParams = ({ ...(producers?.length ? { producerIds: producers?.map(({ value }) => value) } : {}), ...(origins?.length ? { originIds: origins?.map(({ value }) => value) } : {}), ...(locationTypes?.length ? { locationTypes: locationTypes?.map(({ value }) => value) } : {}), + ...(businessUnits?.length ? { businessUnitIds: businessUnits?.map(({ value }) => value) } : {}), scenarioId: currentScenario, resolution: origins?.length ? 6 : 4, }; diff --git a/client/src/hooks/impact/comparison.ts b/client/src/hooks/impact/comparison.ts index 48754cd5d..3f085bb3f 100644 --- a/client/src/hooks/impact/comparison.ts +++ b/client/src/hooks/impact/comparison.ts @@ -33,6 +33,7 @@ export type ImpactComparisonParams = { startYear: number; endYear: number; materialIds?: string[]; + businessUnitIds?: string[]; originIds?: string[]; supplierIds?: string[]; locationTypes?: string[]; diff --git a/client/src/types.d.ts b/client/src/types.d.ts index cbbba8d41..249de7bc5 100644 --- a/client/src/types.d.ts +++ b/client/src/types.d.ts @@ -67,6 +67,7 @@ export type ImpactH3APIParams = CommonH3APIParams & { producerIds?: Supplier['id'][]; scenarioId?: Scenario['id']; locationTypes?: string[]; + businessUnitIds?: BusinessUnits['id'][]; }; export type ContextualH3APIParams = CommonH3APIParams;