Sort Metadata Fields by Custom Status and Creation Date (#3254)
* Added sortFields function and used on active and disabled metadataFields * Added a sortFieldMetadataItem and used parseDate instead of vanila Date * Added tests for sortFieldMetadataItem (#3253) * Applied sortFieldMetadataItem (#3253)
This commit is contained in:
20
packages/twenty-front/src/utils/sortFieldMetadataItem.ts
Normal file
20
packages/twenty-front/src/utils/sortFieldMetadataItem.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
|
||||
|
||||
import { parseDate } from '../utils/date-utils';
|
||||
|
||||
export const sortFieldMetadataItem = (
|
||||
a: FieldMetadataItem,
|
||||
b: FieldMetadataItem,
|
||||
) => {
|
||||
const customCompare = a.isCustom === b.isCustom ? 0 : a.isCustom ? 1 : -1;
|
||||
if (customCompare !== 0) return customCompare;
|
||||
|
||||
const dateA = a.createdAt ? parseDate(a.createdAt) : null;
|
||||
const dateB = b.createdAt ? parseDate(b.createdAt) : null;
|
||||
|
||||
if (!dateA && !dateB) return 0;
|
||||
if (!dateA) return 1;
|
||||
if (!dateB) return -1;
|
||||
|
||||
return dateB.diff(dateA).milliseconds > 0 ? -1 : 1;
|
||||
};
|
||||
Reference in New Issue
Block a user