Skip to content

Commit 5b99b0f

Browse files
authored
Enforce path imports for MUI icons, upgrade to ESLint v8 (#1225)
* Enforce path imports for mui icons, migrate to newer eslint * Replace mui icons imports with path imports
1 parent 4028aaa commit 5b99b0f

File tree

5 files changed

+424
-273
lines changed

5 files changed

+424
-273
lines changed

packages/jupyter-ai/.eslintrc.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module.exports = {
1010
tsconfigRootDir: __dirname,
1111
project: './tsconfig.json'
1212
},
13-
plugins: ['@typescript-eslint'],
13+
plugins: ['@stylistic', '@typescript-eslint'],
1414
rules: {
1515
'@typescript-eslint/naming-convention': [
1616
'error',
@@ -27,13 +27,32 @@ module.exports = {
2727
'@typescript-eslint/no-explicit-any': 'off',
2828
'@typescript-eslint/no-namespace': 'off',
2929
'@typescript-eslint/no-use-before-define': 'off',
30-
'@typescript-eslint/quotes': [
30+
'@stylistic/quotes': [
3131
'error',
3232
'single',
3333
{ avoidEscape: true, allowTemplateLiterals: false }
3434
],
3535
curly: ['error', 'all'],
3636
eqeqeq: 'error',
37+
'no-restricted-imports': [
38+
'error',
39+
{
40+
paths: [
41+
{
42+
name: '@mui/icons-material',
43+
44+
message:
45+
"Please import icons using path imports, e.g. `import AddIcon from '@mui/icons-material/Add'`"
46+
}
47+
],
48+
patterns: [
49+
{
50+
group: ['@mui/*/*/*'],
51+
message: '3rd level imports in mui are considered private'
52+
}
53+
]
54+
}
55+
],
3756
'prefer-arrow-callback': 'error'
3857
},
3958
overrides: [

packages/jupyter-ai/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,12 @@
8585
"@babel/preset-env": "^7.0.0",
8686
"@jupyterlab/builder": "^4.2.0",
8787
"@jupyterlab/testutils": "^4.2.0",
88+
"@stylistic/eslint-plugin": "^3.0.1",
8889
"@types/jest": "^29",
8990
"@types/react-dom": "^18.2.0",
90-
"@typescript-eslint/eslint-plugin": "^4.8.1",
91-
"@typescript-eslint/parser": "^4.8.1",
92-
"eslint": "^7.14.0",
91+
"@typescript-eslint/eslint-plugin": "^8.0.0",
92+
"@typescript-eslint/parser": "^8.0.0",
93+
"eslint": "^8.56.0",
9394
"eslint-config-prettier": "^6.15.0",
9495
"eslint-plugin-prettier": "^3.1.4",
9596
"jest": "^29",

packages/jupyter-ai/src/components/settings/existing-api-keys.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@ import {
66
TextField,
77
InputAdornment
88
} from '@mui/material';
9-
import {
10-
Edit,
11-
DeleteOutline,
12-
Cancel,
13-
Check,
14-
Visibility,
15-
VisibilityOff
16-
} from '@mui/icons-material';
9+
import Edit from '@mui/icons-material/Edit';
10+
import DeleteOutline from '@mui/icons-material/DeleteOutline';
11+
import Cancel from '@mui/icons-material/Cancel';
12+
import Check from '@mui/icons-material/Check';
13+
import Visibility from '@mui/icons-material/Visibility';
14+
import VisibilityOff from '@mui/icons-material/VisibilityOff';
1715
import { AsyncIconButton } from '../mui-extras/async-icon-button';
1816

1917
import { AiService } from '../../handler';

packages/jupyter-ai/src/slash-autocompletion.tsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@ import {
22
AutocompleteCommand,
33
IAutocompletionCommandsProps
44
} from '@jupyter/chat';
5-
import {
6-
Download,
7-
FindInPage,
8-
Help,
9-
MoreHoriz,
10-
MenuBook,
11-
School,
12-
HideSource,
13-
AutoFixNormal
14-
} from '@mui/icons-material';
5+
import Download from '@mui/icons-material/Download';
6+
import FindInPage from '@mui/icons-material/FindInPage';
7+
import Help from '@mui/icons-material/Help';
8+
import MoreHoriz from '@mui/icons-material/MoreHoriz';
9+
import MenuBook from '@mui/icons-material/MenuBook';
10+
import School from '@mui/icons-material/School';
11+
import HideSource from '@mui/icons-material/HideSource';
12+
import AutoFixNormal from '@mui/icons-material/AutoFixNormal';
1513
import { Box, Typography } from '@mui/material';
1614
import React from 'react';
1715
import { AiService } from './handler';

0 commit comments

Comments
 (0)