aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend/src
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 16:35:42 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 16:40:04 +0100
commit862cb00e40aa6f094aff019a44f52ebfca90ab88 (patch)
tree3c32b6ca6612d07d3d1fcfc5620c86ba9c774b3b /subprojects/frontend/src
parentrefactor(language): simplify syntax (diff)
downloadrefinery-862cb00e40aa6f094aff019a44f52ebfca90ab88.tar.gz
refinery-862cb00e40aa6f094aff019a44f52ebfca90ab88.tar.zst
refinery-862cb00e40aa6f094aff019a44f52ebfca90ab88.zip
fix(frontend): mobx 6.7.0 typing
Also bumps some dependencies and updates tsconfig.json The added workarounds should be remove once https://github.com/mobxjs/mobx/issues/3582 is resolved.
Diffstat (limited to 'subprojects/frontend/src')
-rw-r--r--subprojects/frontend/src/App.tsx2
-rw-r--r--subprojects/frontend/src/Loading.tsx1
-rw-r--r--subprojects/frontend/src/Refinery.tsx1
-rw-r--r--subprojects/frontend/src/RootStoreProvider.tsx2
-rw-r--r--subprojects/frontend/src/ToggleDarkModeButton.tsx1
-rw-r--r--subprojects/frontend/src/TopBar.tsx2
-rw-r--r--subprojects/frontend/src/UpdateNotification.tsx2
-rw-r--r--subprojects/frontend/src/editor/AnimatedButton.tsx2
-rw-r--r--subprojects/frontend/src/editor/ConnectButton.tsx1
-rw-r--r--subprojects/frontend/src/editor/ConnectionStatusNotification.tsx2
-rw-r--r--subprojects/frontend/src/editor/EditorArea.tsx2
-rw-r--r--subprojects/frontend/src/editor/EditorButtons.tsx1
-rw-r--r--subprojects/frontend/src/editor/EditorPane.tsx2
-rw-r--r--subprojects/frontend/src/editor/EditorStore.ts5
-rw-r--r--subprojects/frontend/src/editor/GenerateButton.tsx1
-rw-r--r--subprojects/frontend/src/editor/SearchPanelPortal.tsx1
-rw-r--r--subprojects/frontend/src/editor/SearchToolbar.tsx2
-rw-r--r--subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts2
-rw-r--r--subprojects/frontend/src/editor/scrollbarViewPlugin.ts5
-rw-r--r--subprojects/frontend/src/index.tsx1
-rw-r--r--subprojects/frontend/src/language/problem.grammar2
-rw-r--r--subprojects/frontend/src/language/problemLanguageSupport.ts2
-rw-r--r--subprojects/frontend/src/theme/ThemeProvider.tsx2
-rw-r--r--subprojects/frontend/src/utils/PendingTask.ts1
-rw-r--r--subprojects/frontend/src/utils/useDelayedSnackbar.ts1
-rw-r--r--subprojects/frontend/src/xtext/OccurrencesService.ts2
-rw-r--r--subprojects/frontend/src/xtext/webSocketMachine.ts2
27 files changed, 24 insertions, 26 deletions
diff --git a/subprojects/frontend/src/App.tsx b/subprojects/frontend/src/App.tsx
index a471690b..b162e551 100644
--- a/subprojects/frontend/src/App.tsx
+++ b/subprojects/frontend/src/App.tsx
@@ -1,6 +1,6 @@
1import Box from '@mui/material/Box'; 1import Box from '@mui/material/Box';
2import CssBaseline from '@mui/material/CssBaseline'; 2import CssBaseline from '@mui/material/CssBaseline';
3import React, { StrictMode, Suspense, lazy } from 'react'; 3import { StrictMode, Suspense, lazy } from 'react';
4 4
5import Loading from './Loading'; 5import Loading from './Loading';
6import type RootStore from './RootStore'; 6import type RootStore from './RootStore';
diff --git a/subprojects/frontend/src/Loading.tsx b/subprojects/frontend/src/Loading.tsx
index 8c293239..489563e0 100644
--- a/subprojects/frontend/src/Loading.tsx
+++ b/subprojects/frontend/src/Loading.tsx
@@ -1,6 +1,5 @@
1import CircularProgress from '@mui/material/CircularProgress'; 1import CircularProgress from '@mui/material/CircularProgress';
2import { styled } from '@mui/material/styles'; 2import { styled } from '@mui/material/styles';
3import React from 'react';
4 3
5const LoadingRoot = styled('div')(({ theme }) => ({ 4const LoadingRoot = styled('div')(({ theme }) => ({
6 width: '100%', 5 width: '100%',
diff --git a/subprojects/frontend/src/Refinery.tsx b/subprojects/frontend/src/Refinery.tsx
index 41f835b3..d6bd6159 100644
--- a/subprojects/frontend/src/Refinery.tsx
+++ b/subprojects/frontend/src/Refinery.tsx
@@ -1,7 +1,6 @@
1import Grow from '@mui/material/Grow'; 1import Grow from '@mui/material/Grow';
2import Stack from '@mui/material/Stack'; 2import Stack from '@mui/material/Stack';
3import { SnackbarProvider } from 'notistack'; 3import { SnackbarProvider } from 'notistack';
4import React from 'react';
5 4
6import TopBar from './TopBar'; 5import TopBar from './TopBar';
7import UpdateNotification from './UpdateNotification'; 6import UpdateNotification from './UpdateNotification';
diff --git a/subprojects/frontend/src/RootStoreProvider.tsx b/subprojects/frontend/src/RootStoreProvider.tsx
index 70ac7776..2c11a0f9 100644
--- a/subprojects/frontend/src/RootStoreProvider.tsx
+++ b/subprojects/frontend/src/RootStoreProvider.tsx
@@ -1,4 +1,4 @@
1import React, { type ReactNode, createContext, useContext } from 'react'; 1import { type ReactNode, createContext, useContext } from 'react';
2 2
3import type RootStore from './RootStore'; 3import type RootStore from './RootStore';
4 4
diff --git a/subprojects/frontend/src/ToggleDarkModeButton.tsx b/subprojects/frontend/src/ToggleDarkModeButton.tsx
index 52606242..59714f20 100644
--- a/subprojects/frontend/src/ToggleDarkModeButton.tsx
+++ b/subprojects/frontend/src/ToggleDarkModeButton.tsx
@@ -2,7 +2,6 @@ import DarkModeIcon from '@mui/icons-material/DarkMode';
2import LightModeIcon from '@mui/icons-material/LightMode'; 2import LightModeIcon from '@mui/icons-material/LightMode';
3import IconButton from '@mui/material/IconButton'; 3import IconButton from '@mui/material/IconButton';
4import { observer } from 'mobx-react-lite'; 4import { observer } from 'mobx-react-lite';
5import React from 'react';
6 5
7import { useRootStore } from './RootStoreProvider'; 6import { useRootStore } from './RootStoreProvider';
8 7
diff --git a/subprojects/frontend/src/TopBar.tsx b/subprojects/frontend/src/TopBar.tsx
index 79ea0b65..c943f7c4 100644
--- a/subprojects/frontend/src/TopBar.tsx
+++ b/subprojects/frontend/src/TopBar.tsx
@@ -5,7 +5,7 @@ import { useTheme } from '@mui/material/styles';
5import useMediaQuery from '@mui/material/useMediaQuery'; 5import useMediaQuery from '@mui/material/useMediaQuery';
6import { throttle } from 'lodash-es'; 6import { throttle } from 'lodash-es';
7import { observer } from 'mobx-react-lite'; 7import { observer } from 'mobx-react-lite';
8import React, { useEffect, useMemo, useState } from 'react'; 8import { useEffect, useMemo, useState } from 'react';
9 9
10import { useRootStore } from './RootStoreProvider'; 10import { useRootStore } from './RootStoreProvider';
11import ToggleDarkModeButton from './ToggleDarkModeButton'; 11import ToggleDarkModeButton from './ToggleDarkModeButton';
diff --git a/subprojects/frontend/src/UpdateNotification.tsx b/subprojects/frontend/src/UpdateNotification.tsx
index 8c46186a..07f7f5f7 100644
--- a/subprojects/frontend/src/UpdateNotification.tsx
+++ b/subprojects/frontend/src/UpdateNotification.tsx
@@ -1,6 +1,6 @@
1import Button from '@mui/material/Button'; 1import Button from '@mui/material/Button';
2import { observer } from 'mobx-react-lite'; 2import { observer } from 'mobx-react-lite';
3import React, { useEffect } from 'react'; 3import { useEffect } from 'react';
4 4
5import { useRootStore } from './RootStoreProvider'; 5import { useRootStore } from './RootStoreProvider';
6import { ContrastThemeProvider } from './theme/ThemeProvider'; 6import { ContrastThemeProvider } from './theme/ThemeProvider';
diff --git a/subprojects/frontend/src/editor/AnimatedButton.tsx b/subprojects/frontend/src/editor/AnimatedButton.tsx
index d08decbc..7f6c61f0 100644
--- a/subprojects/frontend/src/editor/AnimatedButton.tsx
+++ b/subprojects/frontend/src/editor/AnimatedButton.tsx
@@ -1,7 +1,7 @@
1import Box from '@mui/material/Box'; 1import Box from '@mui/material/Box';
2import Button from '@mui/material/Button'; 2import Button from '@mui/material/Button';
3import { styled } from '@mui/material/styles'; 3import { styled } from '@mui/material/styles';
4import React, { type ReactNode, useLayoutEffect, useState } from 'react'; 4import { type ReactNode, useLayoutEffect, useState } from 'react';
5 5
6const AnimatedButtonBase = styled(Button, { 6const AnimatedButtonBase = styled(Button, {
7 shouldForwardProp: (prop) => prop !== 'width', 7 shouldForwardProp: (prop) => prop !== 'width',
diff --git a/subprojects/frontend/src/editor/ConnectButton.tsx b/subprojects/frontend/src/editor/ConnectButton.tsx
index 52e7b854..e2d251f3 100644
--- a/subprojects/frontend/src/editor/ConnectButton.tsx
+++ b/subprojects/frontend/src/editor/ConnectButton.tsx
@@ -5,7 +5,6 @@ import SyncProblemIcon from '@mui/icons-material/SyncProblem';
5import IconButton from '@mui/material/IconButton'; 5import IconButton from '@mui/material/IconButton';
6import { keyframes, styled } from '@mui/material/styles'; 6import { keyframes, styled } from '@mui/material/styles';
7import { observer } from 'mobx-react-lite'; 7import { observer } from 'mobx-react-lite';
8import React from 'react';
9 8
10import type EditorStore from './EditorStore'; 9import type EditorStore from './EditorStore';
11 10
diff --git a/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx b/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
index f7f089f0..9b27f45c 100644
--- a/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
+++ b/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
@@ -1,6 +1,6 @@
1import Button from '@mui/material/Button'; 1import Button from '@mui/material/Button';
2import { observer } from 'mobx-react-lite'; 2import { observer } from 'mobx-react-lite';
3import React, { useEffect } from 'react'; 3import { useEffect } from 'react';
4 4
5import { ContrastThemeProvider } from '../theme/ThemeProvider'; 5import { ContrastThemeProvider } from '../theme/ThemeProvider';
6import useDelayedSnackbar from '../utils/useDelayedSnackbar'; 6import useDelayedSnackbar from '../utils/useDelayedSnackbar';
diff --git a/subprojects/frontend/src/editor/EditorArea.tsx b/subprojects/frontend/src/editor/EditorArea.tsx
index 95f0f92e..cfb988b2 100644
--- a/subprojects/frontend/src/editor/EditorArea.tsx
+++ b/subprojects/frontend/src/editor/EditorArea.tsx
@@ -1,7 +1,7 @@
1import Box from '@mui/material/Box'; 1import Box from '@mui/material/Box';
2import { useTheme } from '@mui/material/styles'; 2import { useTheme } from '@mui/material/styles';
3import { observer } from 'mobx-react-lite'; 3import { observer } from 'mobx-react-lite';
4import React, { useCallback, useEffect } from 'react'; 4import { useCallback, useEffect } from 'react';
5 5
6import type EditorStore from './EditorStore'; 6import type EditorStore from './EditorStore';
7import EditorTheme from './EditorTheme'; 7import EditorTheme from './EditorTheme';
diff --git a/subprojects/frontend/src/editor/EditorButtons.tsx b/subprojects/frontend/src/editor/EditorButtons.tsx
index fd046d46..53b06e23 100644
--- a/subprojects/frontend/src/editor/EditorButtons.tsx
+++ b/subprojects/frontend/src/editor/EditorButtons.tsx
@@ -13,7 +13,6 @@ import Stack from '@mui/material/Stack';
13import ToggleButton from '@mui/material/ToggleButton'; 13import ToggleButton from '@mui/material/ToggleButton';
14import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; 14import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
15import { observer } from 'mobx-react-lite'; 15import { observer } from 'mobx-react-lite';
16import React from 'react';
17 16
18import ConnectButton from './ConnectButton'; 17import ConnectButton from './ConnectButton';
19import type EditorStore from './EditorStore'; 18import type EditorStore from './EditorStore';
diff --git a/subprojects/frontend/src/editor/EditorPane.tsx b/subprojects/frontend/src/editor/EditorPane.tsx
index 0db4b892..1d51b3f5 100644
--- a/subprojects/frontend/src/editor/EditorPane.tsx
+++ b/subprojects/frontend/src/editor/EditorPane.tsx
@@ -5,7 +5,7 @@ import Toolbar from '@mui/material/Toolbar';
5import { useTheme } from '@mui/material/styles'; 5import { useTheme } from '@mui/material/styles';
6import useMediaQuery from '@mui/material/useMediaQuery'; 6import useMediaQuery from '@mui/material/useMediaQuery';
7import { observer } from 'mobx-react-lite'; 7import { observer } from 'mobx-react-lite';
8import React, { useState } from 'react'; 8import { useState } from 'react';
9 9
10import { useRootStore } from '../RootStoreProvider'; 10import { useRootStore } from '../RootStoreProvider';
11 11
diff --git a/subprojects/frontend/src/editor/EditorStore.ts b/subprojects/frontend/src/editor/EditorStore.ts
index acad3d09..d966690c 100644
--- a/subprojects/frontend/src/editor/EditorStore.ts
+++ b/subprojects/frontend/src/editor/EditorStore.ts
@@ -1,4 +1,7 @@
1import { CompletionContext, CompletionResult } from '@codemirror/autocomplete'; 1import type {
2 CompletionContext,
3 CompletionResult,
4} from '@codemirror/autocomplete';
2import { redo, redoDepth, undo, undoDepth } from '@codemirror/commands'; 5import { redo, redoDepth, undo, undoDepth } from '@codemirror/commands';
3import { 6import {
4 type Diagnostic, 7 type Diagnostic,
diff --git a/subprojects/frontend/src/editor/GenerateButton.tsx b/subprojects/frontend/src/editor/GenerateButton.tsx
index 8b6ae660..1a32f5ce 100644
--- a/subprojects/frontend/src/editor/GenerateButton.tsx
+++ b/subprojects/frontend/src/editor/GenerateButton.tsx
@@ -2,7 +2,6 @@ import DangerousOutlinedIcon from '@mui/icons-material/DangerousOutlined';
2import PlayArrowIcon from '@mui/icons-material/PlayArrow'; 2import PlayArrowIcon from '@mui/icons-material/PlayArrow';
3import Button from '@mui/material/Button'; 3import Button from '@mui/material/Button';
4import { observer } from 'mobx-react-lite'; 4import { observer } from 'mobx-react-lite';
5import React from 'react';
6 5
7import AnimatedButton from './AnimatedButton'; 6import AnimatedButton from './AnimatedButton';
8import type EditorStore from './EditorStore'; 7import type EditorStore from './EditorStore';
diff --git a/subprojects/frontend/src/editor/SearchPanelPortal.tsx b/subprojects/frontend/src/editor/SearchPanelPortal.tsx
index b6b375e3..5cf1c90e 100644
--- a/subprojects/frontend/src/editor/SearchPanelPortal.tsx
+++ b/subprojects/frontend/src/editor/SearchPanelPortal.tsx
@@ -1,6 +1,5 @@
1import Portal from '@mui/material/Portal'; 1import Portal from '@mui/material/Portal';
2import { observer } from 'mobx-react-lite'; 2import { observer } from 'mobx-react-lite';
3import React from 'react';
4 3
5import type EditorStore from './EditorStore'; 4import type EditorStore from './EditorStore';
6import SearchToolbar from './SearchToolbar'; 5import SearchToolbar from './SearchToolbar';
diff --git a/subprojects/frontend/src/editor/SearchToolbar.tsx b/subprojects/frontend/src/editor/SearchToolbar.tsx
index a9b9811d..54f3dba7 100644
--- a/subprojects/frontend/src/editor/SearchToolbar.tsx
+++ b/subprojects/frontend/src/editor/SearchToolbar.tsx
@@ -14,7 +14,7 @@ import Toolbar from '@mui/material/Toolbar';
14import { styled } from '@mui/material/styles'; 14import { styled } from '@mui/material/styles';
15import useMediaQuery from '@mui/material/useMediaQuery'; 15import useMediaQuery from '@mui/material/useMediaQuery';
16import { observer } from 'mobx-react-lite'; 16import { observer } from 'mobx-react-lite';
17import React, { useCallback, useState } from 'react'; 17import { useCallback, useState } from 'react';
18 18
19import type SearchPanelStore from './SearchPanelStore'; 19import type SearchPanelStore from './SearchPanelStore';
20 20
diff --git a/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts b/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
index 96be0eea..d5ad536b 100644
--- a/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
+++ b/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
@@ -91,7 +91,7 @@ function getNumIndentMarkersForNonEmptyLine(
91) { 91) {
92 let numIndents = 0; 92 let numIndents = 0;
93 let numConsecutiveSpaces = 0; 93 let numConsecutiveSpaces = 0;
94 let prevChar: string | null = null; 94 let prevChar: string | undefined;
95 95
96 for (let char = 0; char < text.length; char += 1) { 96 for (let char = 0; char < text.length; char += 1) {
97 // Bail if we encounter a non-whitespace character 97 // Bail if we encounter a non-whitespace character
diff --git a/subprojects/frontend/src/editor/scrollbarViewPlugin.ts b/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
index c95e581d..0edaeb70 100644
--- a/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
+++ b/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
@@ -128,10 +128,11 @@ export default function scrollbarViewPlugin(
128 Math.max(1, endLine - startLine) * lineHeight, 128 Math.max(1, endLine - startLine) * lineHeight,
129 ); 129 );
130 130
131 let annotation: HTMLDivElement; 131 let annotation: HTMLDivElement | undefined;
132 if (i < annotations.length) { 132 if (i < annotations.length) {
133 annotation = annotations[i]; 133 annotation = annotations[i];
134 } else { 134 }
135 if (annotation === undefined) {
135 annotation = ownerDocument.createElement('div'); 136 annotation = ownerDocument.createElement('div');
136 annotations.push(annotation); 137 annotations.push(annotation);
137 holder.appendChild(annotation); 138 holder.appendChild(annotation);
diff --git a/subprojects/frontend/src/index.tsx b/subprojects/frontend/src/index.tsx
index a40f1762..3e56d941 100644
--- a/subprojects/frontend/src/index.tsx
+++ b/subprojects/frontend/src/index.tsx
@@ -1,5 +1,4 @@
1import { configure } from 'mobx'; 1import { configure } from 'mobx';
2import React from 'react';
3import { type Root, createRoot } from 'react-dom/client'; 2import { type Root, createRoot } from 'react-dom/client';
4 3
5import App from './App'; 4import App from './App';
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar
index c2410913..f4cf1712 100644
--- a/subprojects/frontend/src/language/problem.grammar
+++ b/subprojects/frontend/src/language/problem.grammar
@@ -37,7 +37,7 @@ statement {
37 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." } 37 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." }
38 } | 38 } |
39 FunctionDefinition { 39 FunctionDefinition {
40 PrimitiveType RelationName ParameterList<Parameter>? 40 kw<"fn"> PrimitiveType RelationName ParameterList<Parameter>?
41 FunctionBody { ("=" sep<OrOp, Case>)? "." } 41 FunctionBody { ("=" sep<OrOp, Case>)? "." }
42 } | 42 } |
43 //RuleDefinition { 43 //RuleDefinition {
diff --git a/subprojects/frontend/src/language/problemLanguageSupport.ts b/subprojects/frontend/src/language/problemLanguageSupport.ts
index 497030e2..c3ae7ed9 100644
--- a/subprojects/frontend/src/language/problemLanguageSupport.ts
+++ b/subprojects/frontend/src/language/problemLanguageSupport.ts
@@ -21,7 +21,7 @@ const parserWithMetadata = parser.configure({
21 styleTags({ 21 styleTags({
22 LineComment: t.lineComment, 22 LineComment: t.lineComment,
23 BlockComment: t.blockComment, 23 BlockComment: t.blockComment,
24 'problem class enum pred indiv scope': t.definitionKeyword, 24 'problem class enum pred fn indiv scope': t.definitionKeyword,
25 'abstract extends refers contains container opposite': t.modifier, 25 'abstract extends refers contains container opposite': t.modifier,
26 'default error contained containment': t.modifier, 26 'default error contained containment': t.modifier,
27 'true false unknown error': t.keyword, 27 'true false unknown error': t.keyword,
diff --git a/subprojects/frontend/src/theme/ThemeProvider.tsx b/subprojects/frontend/src/theme/ThemeProvider.tsx
index a00d70fe..9cf870d5 100644
--- a/subprojects/frontend/src/theme/ThemeProvider.tsx
+++ b/subprojects/frontend/src/theme/ThemeProvider.tsx
@@ -12,7 +12,7 @@ import {
12 useTheme, 12 useTheme,
13} from '@mui/material/styles'; 13} from '@mui/material/styles';
14import { observer } from 'mobx-react-lite'; 14import { observer } from 'mobx-react-lite';
15import React, { type ReactNode, createContext, useContext } from 'react'; 15import { type ReactNode, createContext, useContext } from 'react';
16 16
17import { useRootStore } from '../RootStoreProvider'; 17import { useRootStore } from '../RootStoreProvider';
18 18
diff --git a/subprojects/frontend/src/utils/PendingTask.ts b/subprojects/frontend/src/utils/PendingTask.ts
index d0b24c1f..fd52cef1 100644
--- a/subprojects/frontend/src/utils/PendingTask.ts
+++ b/subprojects/frontend/src/utils/PendingTask.ts
@@ -20,6 +20,7 @@ export default class PendingTask<T> {
20 ) { 20 ) {
21 this.resolveCallback = resolveCallback; 21 this.resolveCallback = resolveCallback;
22 this.rejectCallback = rejectCallback; 22 this.rejectCallback = rejectCallback;
23 // @ts-expect-error See https://github.com/mobxjs/mobx/issues/3582 on `@types/node` pollution
23 this.timeout = setTimeout(() => { 24 this.timeout = setTimeout(() => {
24 if (!this.resolved) { 25 if (!this.resolved) {
25 this.reject(new TimeoutError()); 26 this.reject(new TimeoutError());
diff --git a/subprojects/frontend/src/utils/useDelayedSnackbar.ts b/subprojects/frontend/src/utils/useDelayedSnackbar.ts
index 03ad6caa..54716c0c 100644
--- a/subprojects/frontend/src/utils/useDelayedSnackbar.ts
+++ b/subprojects/frontend/src/utils/useDelayedSnackbar.ts
@@ -21,6 +21,7 @@ export default function useDelayedSnackbar(
21 delay = defaultDelay, 21 delay = defaultDelay,
22 ) => { 22 ) => {
23 let key: SnackbarKey | undefined; 23 let key: SnackbarKey | undefined;
24 // @ts-expect-error See https://github.com/mobxjs/mobx/issues/3582 on `@types/node` pollution
24 let timeout: number | undefined = setTimeout(() => { 25 let timeout: number | undefined = setTimeout(() => {
25 timeout = undefined; 26 timeout = undefined;
26 key = enqueueSnackbar(message, options); 27 key = enqueueSnackbar(message, options);
diff --git a/subprojects/frontend/src/xtext/OccurrencesService.ts b/subprojects/frontend/src/xtext/OccurrencesService.ts
index 248a9a87..fc72ead2 100644
--- a/subprojects/frontend/src/xtext/OccurrencesService.ts
+++ b/subprojects/frontend/src/xtext/OccurrencesService.ts
@@ -1,4 +1,4 @@
1import { Transaction } from '@codemirror/state'; 1import type { Transaction } from '@codemirror/state';
2import { debounce } from 'lodash-es'; 2import { debounce } from 'lodash-es';
3import ms from 'ms'; 3import ms from 'ms';
4 4
diff --git a/subprojects/frontend/src/xtext/webSocketMachine.ts b/subprojects/frontend/src/xtext/webSocketMachine.ts
index 5f6bc604..216ed86a 100644
--- a/subprojects/frontend/src/xtext/webSocketMachine.ts
+++ b/subprojects/frontend/src/xtext/webSocketMachine.ts
@@ -205,7 +205,7 @@ export default createMachine(
205 ERROR_WAIT_TIME: ({ errors: { length: retryCount } }) => { 205 ERROR_WAIT_TIME: ({ errors: { length: retryCount } }) => {
206 const { length } = ERROR_WAIT_TIMES; 206 const { length } = ERROR_WAIT_TIMES;
207 const index = retryCount < length ? retryCount : length - 1; 207 const index = retryCount < length ? retryCount : length - 1;
208 return ERROR_WAIT_TIMES[index]; 208 return ERROR_WAIT_TIMES[index] ?? 0;
209 }, 209 },
210 }, 210 },
211 actions: { 211 actions: {