diff --git a/.changeset/eight-clocks-complain.md b/.changeset/eight-clocks-complain.md new file mode 100644 index 0000000000..b7044481ac --- /dev/null +++ b/.changeset/eight-clocks-complain.md @@ -0,0 +1,5 @@ +--- +'@backstage/eslint-plugin': patch +--- + +Exclude `@material-ui/data-grid` diff --git a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js index 78fd3d63e9..d8e7ff35fe 100644 --- a/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js +++ b/packages/eslint-plugin/rules/no-top-level-material-ui-4-imports.js @@ -132,6 +132,8 @@ module.exports = { if (!node.source.value.startsWith('@material-ui/')) return; // Return if import is from '@material-ui/core/styles', as it's valid already if (node.source.value === '@material-ui/core/styles') return; + // Ignore the @material-ui/data-grid library which shares this namespace + if (node.source.value === '@material-ui/data-grid') return; // Return if proper import eg. `import Box from '@material-ui/core/Box'` // Or if third level or deeper imports if (node.source.value?.split('/').length >= 3) return; diff --git a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts index 4b675bd038..cbd9f918e4 100644 --- a/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts +++ b/packages/eslint-plugin/src/no-top-level-material-ui-4-imports.test.ts @@ -47,6 +47,9 @@ ruleTester.run('path-imports-rule', rule, { { code: `import { CreateCSSProperties, StyledComponentProps } from '@material-ui/core/styles/withStyles';`, }, + { + code: `import { DataGrid, GridColDef, GridValueGetterParams } from '@material-ui/data-grid';`, + }, ], invalid: [ {