part 3 of on click bar to filters: add sort plus some normalizations (#16075)
This commit is contained in:
+21
-5
@@ -1,6 +1,8 @@
|
||||
import { type BuildChartDrilldownQueryParamsInput } from '@/page-layout/widgets/graph/types/BuildChartDrilldownQueryParamsInput';
|
||||
import { buildFilterFromChartBucket } from '@/page-layout/widgets/graph/utils/buildFilterFromChartBucket';
|
||||
import { buildFilterQueryParams } from '@/page-layout/widgets/graph/utils/buildFilterQueryParams';
|
||||
import { buildSortsFromChartConfig } from '@/page-layout/widgets/graph/utils/buildSortsFromChartConfig';
|
||||
import { normalizeChartConfigurationFields } from '@/page-layout/widgets/graph/utils/normalizeChartConfigurationFields';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
export const buildChartDrilldownQueryParams = ({
|
||||
@@ -24,16 +26,21 @@ export const buildChartDrilldownQueryParams = ({
|
||||
});
|
||||
}
|
||||
|
||||
const primaryField = objectMetadataItem.fields.find(
|
||||
(field) => field.id === configuration.primaryAxisGroupByFieldMetadataId,
|
||||
);
|
||||
const { groupByFieldMetadataId, dateGranularity, groupBySubFieldName } =
|
||||
normalizeChartConfigurationFields(configuration);
|
||||
|
||||
const primaryField = isDefined(groupByFieldMetadataId)
|
||||
? objectMetadataItem.fields.find(
|
||||
(field) => field.id === groupByFieldMetadataId,
|
||||
)
|
||||
: undefined;
|
||||
|
||||
if (isDefined(primaryField)) {
|
||||
const primaryFilters = buildFilterFromChartBucket({
|
||||
fieldMetadataItem: primaryField,
|
||||
bucketRawValue: clickedData.primaryBucketRawValue,
|
||||
dateGranularity: configuration.primaryAxisDateGranularity,
|
||||
subFieldName: configuration.primaryAxisGroupBySubFieldName,
|
||||
dateGranularity,
|
||||
subFieldName: groupBySubFieldName,
|
||||
timezone,
|
||||
});
|
||||
|
||||
@@ -45,6 +52,15 @@ export const buildChartDrilldownQueryParams = ({
|
||||
});
|
||||
}
|
||||
|
||||
const sorts = buildSortsFromChartConfig({
|
||||
configuration,
|
||||
objectMetadataItem,
|
||||
});
|
||||
|
||||
sorts.forEach((sort) => {
|
||||
drilldownQueryParams.append(`sort[${sort.fieldName}]`, sort.direction);
|
||||
});
|
||||
|
||||
if (isDefined(viewId)) {
|
||||
drilldownQueryParams.set('viewId', viewId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user