part 3 of on click bar to filters: add sort plus some normalizations (#16075)

This commit is contained in:
nitin
2025-11-26 19:48:48 +05:30
committed by GitHub
parent dc2c2c413c
commit 6fcb05d9b3
25 changed files with 942 additions and 80 deletions
@@ -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);
}