Add count and percent aggregations to kanban headers (#9348)
Closes https://github.com/twentyhq/private-issues/issues/226 https://github.com/user-attachments/assets/cee78080-6dda-4102-9595-d32971cf9104
This commit is contained in:
@ -1,15 +0,0 @@
|
||||
import { FieldMetadataType } from 'src/types/FieldMetadataType';
|
||||
import { getSubfieldForAggregateOperation } from 'src/utils/aggregateOperations/getSubFieldForAggregateOperation.util';
|
||||
import { isCompositeFieldMetadataType } from 'src/utils/aggregateOperations/isCompositeFieldMetadataType.util';
|
||||
import { capitalize } from 'src/utils/strings/capitalize';
|
||||
|
||||
export const getColumnNameForAggregateOperation = (
|
||||
fieldName: string,
|
||||
fieldType: FieldMetadataType,
|
||||
) => {
|
||||
if (!isCompositeFieldMetadataType(fieldType)) {
|
||||
return fieldName;
|
||||
}
|
||||
|
||||
return `${fieldName}${capitalize(getSubfieldForAggregateOperation(fieldType) as string)}`;
|
||||
};
|
||||
@ -1,27 +1,40 @@
|
||||
import { FieldMetadataType } from 'src/types/FieldMetadataType';
|
||||
import { isCompositeFieldMetadataType } from 'src/utils/aggregateOperations/isCompositeFieldMetadataType.util';
|
||||
|
||||
export const getSubfieldForAggregateOperation = (
|
||||
export const getSubfieldsForAggregateOperation = (
|
||||
fieldType: FieldMetadataType,
|
||||
) => {
|
||||
): string[] | undefined => {
|
||||
if (!isCompositeFieldMetadataType(fieldType)) {
|
||||
return undefined;
|
||||
} else {
|
||||
switch (fieldType) {
|
||||
case FieldMetadataType.CURRENCY:
|
||||
return 'amountMicros';
|
||||
return ['amountMicros', 'currencyCode'];
|
||||
case FieldMetadataType.FULL_NAME:
|
||||
return 'lastName';
|
||||
return ['firstName', 'lastName'];
|
||||
case FieldMetadataType.ADDRESS:
|
||||
return 'addressStreet1';
|
||||
return [
|
||||
'addressStreet1',
|
||||
'addressStreet2',
|
||||
'addressCity',
|
||||
'addressPostcode',
|
||||
'addressState',
|
||||
'addressCountry',
|
||||
'addressLat',
|
||||
'addressLng',
|
||||
];
|
||||
case FieldMetadataType.LINKS:
|
||||
return 'primaryLinkLabel';
|
||||
return ['primaryLinkUrl'];
|
||||
case FieldMetadataType.ACTOR:
|
||||
return 'workspaceMemberId';
|
||||
return ['workspaceMemberId'];
|
||||
case FieldMetadataType.EMAILS:
|
||||
return 'primaryEmail';
|
||||
return ['primaryEmail'];
|
||||
case FieldMetadataType.PHONES:
|
||||
return 'primaryPhoneNumber';
|
||||
return [
|
||||
'primaryPhoneNumber',
|
||||
'primaryPhoneCountryCode',
|
||||
'primaryPhoneCallingCode',
|
||||
];
|
||||
default:
|
||||
throw new Error(`Unsupported composite field type: ${fieldType}`);
|
||||
}
|
||||
@ -1,3 +1 @@
|
||||
export * from './getColumnNameForAggregateOperation.util';
|
||||
export * from './getSubFieldForAggregateOperation.util';
|
||||
|
||||
export * from './getSubFieldsForAggregateOperation.util';
|
||||
|
||||
Reference in New Issue
Block a user