diff --git a/.changeset/healthy-suns-perform.md b/.changeset/healthy-suns-perform.md new file mode 100644 index 0000000000..88fa1ff2fd --- /dev/null +++ b/.changeset/healthy-suns-perform.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-app-api': patch +--- + +add `@backstage/no-top-level-material-ui-4-imports` lint rule diff --git a/packages/app-defaults/.eslintrc.js b/packages/app-defaults/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/app-defaults/.eslintrc.js +++ b/packages/app-defaults/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/app-next-example-plugin/.eslintrc.js b/packages/app-next-example-plugin/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/app-next-example-plugin/.eslintrc.js +++ b/packages/app-next-example-plugin/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/frontend-app-api/.eslintrc.js b/packages/frontend-app-api/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/frontend-app-api/.eslintrc.js +++ b/packages/frontend-app-api/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/frontend-app-api/src/extensions/AppNav.tsx b/packages/frontend-app-api/src/extensions/AppNav.tsx index c5bf028ef8..761c6d5a24 100644 --- a/packages/frontend-app-api/src/extensions/AppNav.tsx +++ b/packages/frontend-app-api/src/extensions/AppNav.tsx @@ -23,7 +23,7 @@ import { createNavItemExtension, createNavLogoExtension, } from '@backstage/frontend-plugin-api'; -import { makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core/styles'; import { Sidebar, useSidebarOpenState, diff --git a/packages/frontend-app-api/src/extensions/components.tsx b/packages/frontend-app-api/src/extensions/components.tsx index 3064737e21..4f6574ab3e 100644 --- a/packages/frontend-app-api/src/extensions/components.tsx +++ b/packages/frontend-app-api/src/extensions/components.tsx @@ -16,7 +16,7 @@ import React from 'react'; // TODO: Dependency on MUI should be removed from core packages -import { Button } from '@material-ui/core'; +import Button from '@material-ui/core/Button'; import { createComponentExtension, diff --git a/packages/frontend-plugin-api/.eslintrc.js b/packages/frontend-plugin-api/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/frontend-plugin-api/.eslintrc.js +++ b/packages/frontend-plugin-api/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/integration-react/.eslintrc.js b/packages/integration-react/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/integration-react/.eslintrc.js +++ b/packages/integration-react/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/integration-react/dev/DevPage.tsx b/packages/integration-react/dev/DevPage.tsx index 8ff594d80d..a7d722d32d 100644 --- a/packages/integration-react/dev/DevPage.tsx +++ b/packages/integration-react/dev/DevPage.tsx @@ -15,7 +15,7 @@ */ import { ScmIntegration, ScmIntegrationsGroup } from '@backstage/integration'; -import { Typography } from '@material-ui/core'; +import Typography from '@material-ui/core/Typography'; import React from 'react'; import { scmIntegrationsApiRef } from '../src/ScmIntegrationsApi';