Files
twenty/packages/twenty-front/src/utils/sortFieldMetadataItem.ts
T
Félix MalfaitandGitHub b27a97f2c5 feat: enforce @/ alias for imports and fix all relative parent imports (#16787)
## 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
2025-12-23 22:57:51 +01:00

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;
};