## Summary This PR enforces the use of `@/` alias for imports instead of relative parent imports (`../`). ## Changes ### ESLint Configuration - Added `no-restricted-imports` pattern in `eslint.config.react.mjs` to block `../*` imports with the message "Relative parent imports are not allowed. Use @/ alias instead." - Removed the non-working `import/no-relative-parent-imports` rule (doesn't work properly in ESLint flat config) ### VS Code Settings - Added `javascript.preferences.importModuleSpecifier: non-relative` to `.vscode/settings.json` (TypeScript setting was already there) ### Code Fixes - Fixed **941 relative parent imports** across **706 files** in `packages/twenty-front` - All `../` imports converted to use `@/` alias ## Why - Consistent import style across the codebase - Easier to move files without breaking imports - Better IDE support for auto-imports - Clearer understanding of where imports come from
21 lines
622 B
TypeScript
21 lines
622 B
TypeScript
import { type 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.getTime() - dateA.getTime() > 0 ? -1 : 1;
|
|
};
|