Skip to content

Commit 4e24f0e

Browse files
dlqqqkrassowski
andauthored
Backport PR #1225 on branch 2.x (Enforce path imports for MUI icons, upgrade to ESLint v8) (#1226)
* Backport PR #1225: Enforce path imports for MUI icons, upgrade to ESLint v8 * Enforce path imports for mui icons, migrate to newer eslint * Replace mui icons imports with path imports (cherry picked from commit 5b99b0f) * fix 2.x MUI icon imports * run yarn dedupe --------- Co-authored-by: Michał Krassowski <[email protected]>
1 parent e0fd077 commit 4e24f0e

File tree

7 files changed

+380
-314
lines changed

7 files changed

+380
-314
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
@@ -86,11 +86,12 @@
8686
"@babel/preset-env": "^7.0.0",
8787
"@jupyterlab/builder": "^4.2.0",
8888
"@jupyterlab/testutils": "^4.2.0",
89+
"@stylistic/eslint-plugin": "^3.0.1",
8990
"@types/jest": "^29",
9091
"@types/react-dom": "^18.2.0",
91-
"@typescript-eslint/eslint-plugin": "^4.8.1",
92-
"@typescript-eslint/parser": "^4.8.1",
93-
"eslint": "^7.14.0",
92+
"@typescript-eslint/eslint-plugin": "^8.0.0",
93+
"@typescript-eslint/parser": "^8.0.0",
94+
"eslint": "^8.56.0",
9495
"eslint-config-prettier": "^6.15.0",
9596
"eslint-plugin-prettier": "^3.1.4",
9697
"jest": "^29",

packages/jupyter-ai/src/components/chat-input.tsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,14 @@ import {
99
InputAdornment,
1010
Typography
1111
} from '@mui/material';
12-
import {
13-
Download,
14-
FindInPage,
15-
Help,
16-
MoreHoriz,
17-
MenuBook,
18-
School,
19-
HideSource,
20-
AutoFixNormal
21-
} from '@mui/icons-material';
12+
import Download from '@mui/icons-material/Download';
13+
import FindInPage from '@mui/icons-material/FindInPage';
14+
import Help from '@mui/icons-material/Help';
15+
import MoreHoriz from '@mui/icons-material/MoreHoriz';
16+
import MenuBook from '@mui/icons-material/MenuBook';
17+
import School from '@mui/icons-material/School';
18+
import HideSource from '@mui/icons-material/HideSource';
19+
import AutoFixNormal from '@mui/icons-material/AutoFixNormal';
2220
import { ISignal } from '@lumino/signaling';
2321

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

packages/jupyter-ai/src/components/chat-messages/chat-message-delete.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import { SxProps } from '@mui/material';
3-
import { Close } from '@mui/icons-material';
3+
import Close from '@mui/icons-material/Close';
44

55
import { AiService } from '../../handler';
66
import { ChatHandler } from '../../chat_handler';

packages/jupyter-ai/src/components/chat-messages/chat-message-menu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useRef, useState } from 'react';
22

33
import { IconButton, Menu, MenuItem, SxProps } from '@mui/material';
4-
import { MoreVert } from '@mui/icons-material';
4+
import MoreVert from '@mui/icons-material/MoreVert';
55
import {
66
addAboveIcon,
77
addBelowIcon,

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

0 commit comments

Comments
 (0)