b27a97f2c5
## 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
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { useQuery } from '@apollo/client';
|
|
import { useMemo } from 'react';
|
|
|
|
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
|
import {
|
|
type ObjectMetadataItemsQuery,
|
|
type ObjectMetadataItemsQueryVariables,
|
|
} from '~/generated-metadata/graphql';
|
|
import { logError } from '~/utils/logError';
|
|
|
|
import { enrichObjectMetadataItemsWithPermissions } from '@/object-metadata/utils/enrichObjectMetadataItemsWithPermissions';
|
|
import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions';
|
|
import { FIND_MANY_OBJECT_METADATA_ITEMS } from '@/object-metadata/graphql/queries';
|
|
import { mapPaginatedObjectMetadataItemsToObjectMetadataItems } from '@/object-metadata/utils/mapPaginatedObjectMetadataItemsToObjectMetadataItems';
|
|
|
|
export const useFindManyObjectMetadataItems = ({
|
|
skip,
|
|
}: {
|
|
skip?: boolean;
|
|
} = {}) => {
|
|
const { enqueueErrorSnackBar } = useSnackBar();
|
|
|
|
const { objectPermissionsByObjectMetadataId } = useObjectPermissions();
|
|
|
|
const { data, loading, error, refetch } = useQuery<
|
|
ObjectMetadataItemsQuery,
|
|
ObjectMetadataItemsQueryVariables
|
|
>(FIND_MANY_OBJECT_METADATA_ITEMS, {
|
|
skip,
|
|
onError: (error) => {
|
|
logError('useFindManyObjectMetadataItems error : ' + error);
|
|
enqueueErrorSnackBar({
|
|
apolloError: error,
|
|
});
|
|
},
|
|
});
|
|
|
|
const objectMetadataItems = useMemo(() => {
|
|
const objectMetadataItemsArray =
|
|
mapPaginatedObjectMetadataItemsToObjectMetadataItems({
|
|
pagedObjectMetadataItems: data,
|
|
});
|
|
|
|
return enrichObjectMetadataItemsWithPermissions({
|
|
objectMetadataItems: objectMetadataItemsArray,
|
|
objectPermissionsByObjectMetadataId,
|
|
});
|
|
}, [data, objectPermissionsByObjectMetadataId]);
|
|
|
|
return {
|
|
objectMetadataItems,
|
|
loading,
|
|
error,
|
|
refetch,
|
|
};
|
|
};
|