Skip to content

Commit 49d1e18

Browse files
committed
Update eslin
1 parent 92f9939 commit 49d1e18

File tree

9 files changed

+176
-128
lines changed

9 files changed

+176
-128
lines changed

.eslintrc.js

Lines changed: 0 additions & 79 deletions
This file was deleted.

eslint.config.js

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
const {
2+
defineConfig,
3+
} = require("eslint/config");
4+
5+
const globals = require("globals");
6+
const security = require("eslint-plugin-security");
7+
const cypress = require("eslint-plugin-cypress");
8+
const typescriptEslint = require("@typescript-eslint/eslint-plugin");
9+
const tsParser = require("@typescript-eslint/parser");
10+
const js = require("@eslint/js");
11+
12+
const {
13+
FlatCompat,
14+
} = require("@eslint/eslintrc");
15+
16+
const compat = new FlatCompat({
17+
baseDirectory: __dirname,
18+
recommendedConfig: js.configs.recommended,
19+
allConfig: js.configs.all
20+
});
21+
22+
module.exports = defineConfig([{
23+
languageOptions: {
24+
globals: {
25+
...globals.browser,
26+
...globals.amd,
27+
...globals.jquery,
28+
...cypress.environments.globals.globals,
29+
},
30+
},
31+
32+
plugins: {
33+
security,
34+
cypress,
35+
"@typescript-eslint": typescriptEslint,
36+
},
37+
38+
extends: compat.extends(
39+
"eslint:recommended",
40+
"plugin:security/recommended-legacy",
41+
"plugin:react/recommended",
42+
),
43+
44+
"rules": {
45+
"indent": ["error", 4],
46+
"linebreak-style": ["error", "unix"],
47+
48+
"no-unused-vars": ["error", {
49+
"vars": "all",
50+
"args": "none",
51+
}],
52+
53+
"quotes": ["error", "single"],
54+
"semi": ["error", "always"],
55+
56+
"max-len": [2, {
57+
"code": 80,
58+
"tabWidth": 4,
59+
"ignoreUrls": true,
60+
}],
61+
62+
"space-before-function-paren": ["error", "never"],
63+
"space-in-parens": ["error", "never"],
64+
"no-trailing-spaces": ["error"],
65+
66+
"key-spacing": ["error", {
67+
"beforeColon": false,
68+
}],
69+
70+
"func-call-spacing": ["error", "never"],
71+
"react/prop-types": [0],
72+
"security/detect-buffer-noassert": 1,
73+
"security/detect-child-process": 1,
74+
"security/detect-disable-mustache-escape": 1,
75+
"security/detect-eval-with-expression": 1,
76+
"security/detect-new-buffer": 1,
77+
"security/detect-no-csrf-before-method-override": 1,
78+
"security/detect-non-literal-fs-filename": 1,
79+
"security/detect-non-literal-regexp": 1,
80+
"security/detect-non-literal-require": 0,
81+
"security/detect-object-injection": 0,
82+
"security/detect-possible-timing-attacks": 1,
83+
"security/detect-pseudoRandomBytes": 1,
84+
"security/detect-unsafe-regex": 1,
85+
},
86+
}, {
87+
files: ["**/*.{ts,tsx}"],
88+
89+
"rules": {
90+
"max-len": [2, {
91+
"code": 100,
92+
"tabWidth": 4,
93+
"ignoreUrls": true,
94+
}],
95+
},
96+
97+
languageOptions: {
98+
parser: tsParser,
99+
100+
parserOptions: {
101+
tsconfigRootDir: __dirname,
102+
project: ["./tsconfig.json"],
103+
},
104+
},
105+
106+
extends: compat.extends(
107+
"plugin:@typescript-eslint/eslint-recommended",
108+
"plugin:@typescript-eslint/recommended",
109+
"plugin:@typescript-eslint/recommended-requiring-type-checking",
110+
),
111+
}]);

media/src/activity.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import React from 'react';
2-
import ReactDOM from 'react-dom';
2+
import { createRoot } from 'react-dom/client';
33
import { ActivityMap } from './activity/activity-map';
44

5-
ReactDOM.render(
6-
<React.StrictMode>
7-
<ActivityMap />
8-
</React.StrictMode>,
9-
document.getElementById('activity-map-container')
10-
);
5+
const container = document.getElementById('activity-map-container');
6+
if (container) {
7+
const root = createRoot(container);
8+
root.render(
9+
<React.StrictMode>
10+
<ActivityMap />
11+
</React.StrictMode>
12+
);
13+
}

media/src/activity/activity-map-pane-panels.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ export const DefaultPanel: React.FC<DefaultPanelProps> = (
6767
// const [reflectionSubmittedAt, setReflectionSubmittedAt] = useState<string>('');
6868
const [reflectionModifiedAt, setReflectionModifiedAt] = useState<string>('');
6969
// TODO: display response status
70-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
7170
const [reflectionStatus, setReflectionStatus] = useState<string>('DRAFT');
7271
const [feedback, setFeedback] = useState<string>('');
7372
const [feedbackSubmittedDate, setFeedbackSubmittedDate] = useState<string>('');

media/src/activity/activity-map.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -378,15 +378,13 @@ export const ActivityMap: React.FC = () => {
378378
}
379379
let layerPk = activeLayer;
380380
if (isFaculty && !projectLayerData.has(layerPk)) {
381-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
382381
const firstLayerPk = projectLayerData.keys().next().value;
383382
if (typeof firstLayerPk == 'number') {
384383
layerPk = firstLayerPk;
385384
} else {
386385
throw new Error('Add Event failed: no active layer can be found');
387386
}
388387
} else if (!isFaculty && !layerData.has(layerPk)) {
389-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
390388
const firstLayerPk = layerData.keys().next().value;
391389
if (typeof firstLayerPk == 'number') {
392390
layerPk = firstLayerPk;
@@ -686,7 +684,6 @@ export const ActivityMap: React.FC = () => {
686684
}));
687685
}
688686
const handleViewportChange = useCallback(
689-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
690687
(newViewport: React.SetStateAction<ViewportState>) => setViewportState(newViewport),
691688
[]
692689
);
@@ -710,7 +707,6 @@ export const ActivityMap: React.FC = () => {
710707
// if no date with events, we don't include the layer.
711708

712709
let layersForZoom: LayerData[] = [];
713-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
714710
const rangeEpoch1 = Date.parse(range1);
715711
const rangeEpoch2 = Date.parse(range2);
716712
const filteredLayers: Map<number, LayerData> = new Map();

media/src/project.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import React from 'react';
2-
import ReactDOM from 'react-dom';
2+
import { createRoot } from 'react-dom/client';
33
import { ProjectMap } from './project/project-map';
44

5-
ReactDOM.render(
6-
<React.StrictMode>
7-
<ProjectMap />
8-
</React.StrictMode>,
9-
document.getElementById('project-map-container')
10-
);
5+
const container = document.getElementById('project-map-container');
6+
if (container) {
7+
const root = createRoot(container);
8+
root.render(
9+
<React.StrictMode>
10+
<ProjectMap />
11+
</React.StrictMode>
12+
);
13+
}

media/src/project/project-map.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,6 @@ export const ProjectMap: React.FC = () => {
469469
}
470470

471471
const handleViewportChange = useCallback(
472-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
473472
(newViewport: React.SetStateAction<ViewportState>) => setViewportState(newViewport),
474473
[]
475474
);
@@ -570,7 +569,7 @@ export const ProjectMap: React.FC = () => {
570569
/>
571570
<DeckGL
572571
layers={[
573-
...rasterLayers as any, // eslint-disable-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, max-len
572+
...rasterLayers as any, // eslint-disable-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, max-len
574573
...mapLayers
575574
]}
576575
viewState={viewportState}

0 commit comments

Comments
 (0)