aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-07-05 21:50:51 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-07-06 00:20:11 +0200
commit382407bbc131dc215acf0585907e879457d1698c (patch)
tree8302c103a6da1f0ab943042b0bde985b80fb05bf /subprojects/frontend
parentbuild: fix ESLint in VSCode (diff)
downloadrefinery-382407bbc131dc215acf0585907e879457d1698c.tar.gz
refinery-382407bbc131dc215acf0585907e879457d1698c.tar.zst
refinery-382407bbc131dc215acf0585907e879457d1698c.zip
refactor(frontend): fix React warnings
Diffstat (limited to 'subprojects/frontend')
-rw-r--r--subprojects/frontend/package.json4
-rw-r--r--subprojects/frontend/src/DirectionalSplitPane.tsx5
-rw-r--r--subprojects/frontend/src/PaneButtons.tsx6
-rw-r--r--subprojects/frontend/src/RootStoreProvider.tsx4
-rw-r--r--subprojects/frontend/src/Tooltip.tsx18
-rw-r--r--subprojects/frontend/src/editor/AnimatedButton.tsx9
-rw-r--r--subprojects/frontend/src/editor/EditorButtons.tsx20
-rw-r--r--subprojects/frontend/src/editor/GenerateButton.tsx6
-rw-r--r--subprojects/frontend/src/graph/DotGraphVisualizer.tsx13
-rw-r--r--subprojects/frontend/src/graph/RelationName.tsx6
-rw-r--r--subprojects/frontend/src/graph/SlideInDialog.tsx7
-rw-r--r--subprojects/frontend/src/graph/SlideInPanel.tsx4
-rw-r--r--subprojects/frontend/src/graph/VisibilityPanel.tsx3
-rw-r--r--subprojects/frontend/src/graph/ZoomCanvas.tsx11
-rw-r--r--subprojects/frontend/src/theme/ThemeProvider.tsx12
15 files changed, 41 insertions, 87 deletions
diff --git a/subprojects/frontend/package.json b/subprojects/frontend/package.json
index d2774f34..acff57db 100644
--- a/subprojects/frontend/package.json
+++ b/subprojects/frontend/package.json
@@ -51,7 +51,7 @@
51 "@mui/icons-material": "^5.16.0", 51 "@mui/icons-material": "^5.16.0",
52 "@mui/material": "^5.16.0", 52 "@mui/material": "^5.16.0",
53 "@mui/system": "^5.16.0", 53 "@mui/system": "^5.16.0",
54 "@mui/x-data-grid": "^7.8.0", 54 "@mui/x-data-grid": "^7.9.0",
55 "ansi-styles": "^6.2.1", 55 "ansi-styles": "^6.2.1",
56 "csstype": "^3.1.3", 56 "csstype": "^3.1.3",
57 "d3": "^7.9.0", 57 "d3": "^7.9.0",
@@ -88,7 +88,7 @@
88 "@types/lodash-es": "^4.17.12", 88 "@types/lodash-es": "^4.17.12",
89 "@types/micromatch": "^4.0.9", 89 "@types/micromatch": "^4.0.9",
90 "@types/ms": "^0.7.34", 90 "@types/ms": "^0.7.34",
91 "@types/node": "^20.14.9", 91 "@types/node": "^20.14.10",
92 "@types/pnpapi": "^0.0.5", 92 "@types/pnpapi": "^0.0.5",
93 "@types/react": "^18.3.3", 93 "@types/react": "^18.3.3",
94 "@types/react-dom": "^18.3.0", 94 "@types/react-dom": "^18.3.0",
diff --git a/subprojects/frontend/src/DirectionalSplitPane.tsx b/subprojects/frontend/src/DirectionalSplitPane.tsx
index 110bb202..22959e14 100644
--- a/subprojects/frontend/src/DirectionalSplitPane.tsx
+++ b/subprojects/frontend/src/DirectionalSplitPane.tsx
@@ -151,8 +151,3 @@ export default function DirectionalSplitPane({
151 </Stack> 151 </Stack>
152 ); 152 );
153} 153}
154
155DirectionalSplitPane.defaultProps = {
156 primaryOnly: false,
157 secondaryOnly: false,
158};
diff --git a/subprojects/frontend/src/PaneButtons.tsx b/subprojects/frontend/src/PaneButtons.tsx
index 7c759c36..0c265709 100644
--- a/subprojects/frontend/src/PaneButtons.tsx
+++ b/subprojects/frontend/src/PaneButtons.tsx
@@ -92,7 +92,7 @@ function PaneButtons({
92 return ( 92 return (
93 <PaneButtonGroup 93 <PaneButtonGroup
94 size={hideLabel ? 'small' : 'medium'} 94 size={hideLabel ? 'small' : 'medium'}
95 hideLabel={hideLabel ?? PaneButtons.defaultProps.hideLabel} 95 hideLabel={hideLabel ?? false}
96 > 96 >
97 <ToggleButton 97 <ToggleButton
98 value="code" 98 value="code"
@@ -140,8 +140,4 @@ function PaneButtons({
140 ); 140 );
141} 141}
142 142
143PaneButtons.defaultProps = {
144 hideLabel: false,
145};
146
147export default observer(PaneButtons); 143export default observer(PaneButtons);
diff --git a/subprojects/frontend/src/RootStoreProvider.tsx b/subprojects/frontend/src/RootStoreProvider.tsx
index 7cb89af1..40114340 100644
--- a/subprojects/frontend/src/RootStoreProvider.tsx
+++ b/subprojects/frontend/src/RootStoreProvider.tsx
@@ -29,7 +29,3 @@ export default function RootStoreProvider({
29 <StoreContext.Provider value={rootStore}>{children}</StoreContext.Provider> 29 <StoreContext.Provider value={rootStore}>{children}</StoreContext.Provider>
30 ); 30 );
31} 31}
32
33RootStoreProvider.defaultProps = {
34 children: undefined,
35};
diff --git a/subprojects/frontend/src/Tooltip.tsx b/subprojects/frontend/src/Tooltip.tsx
new file mode 100644
index 00000000..b793f1d2
--- /dev/null
+++ b/subprojects/frontend/src/Tooltip.tsx
@@ -0,0 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import MuiTooltip, { TooltipProps } from '@mui/material/Tooltip';
8
9export default function Tooltip({
10 children,
11 ...props
12}: TooltipProps): JSX.Element {
13 return (
14 <MuiTooltip {...props}>
15 <span className="RefineryTooltip-Container">{children}</span>
16 </MuiTooltip>
17 );
18}
diff --git a/subprojects/frontend/src/editor/AnimatedButton.tsx b/subprojects/frontend/src/editor/AnimatedButton.tsx
index 606aabea..8504779f 100644
--- a/subprojects/frontend/src/editor/AnimatedButton.tsx
+++ b/subprojects/frontend/src/editor/AnimatedButton.tsx
@@ -99,12 +99,3 @@ export default function AnimatedButton({
99 </AnimatedButtonBase> 99 </AnimatedButtonBase>
100 ); 100 );
101} 101}
102
103AnimatedButton.defaultProps = {
104 'aria-label': undefined,
105 onClick: undefined,
106 disabled: false,
107 startIcon: undefined,
108 sx: undefined,
109 children: undefined,
110};
diff --git a/subprojects/frontend/src/editor/EditorButtons.tsx b/subprojects/frontend/src/editor/EditorButtons.tsx
index 50cd51dc..0bb5f542 100644
--- a/subprojects/frontend/src/editor/EditorButtons.tsx
+++ b/subprojects/frontend/src/editor/EditorButtons.tsx
@@ -22,9 +22,11 @@ import IconButton from '@mui/material/IconButton';
22import Stack from '@mui/material/Stack'; 22import Stack from '@mui/material/Stack';
23import ToggleButton from '@mui/material/ToggleButton'; 23import ToggleButton from '@mui/material/ToggleButton';
24import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'; 24import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
25import Tooltip from '@mui/material/Tooltip'; 25import MuiTooltip from '@mui/material/Tooltip';
26import { observer } from 'mobx-react-lite'; 26import { observer } from 'mobx-react-lite';
27 27
28import Tooltip from '../Tooltip';
29
28import ConnectButton from './ConnectButton'; 30import ConnectButton from './ConnectButton';
29import type EditorStore from './EditorStore'; 31import type EditorStore from './EditorStore';
30 32
@@ -99,7 +101,7 @@ export default observer(function EditorButtons({
99 </IconButton> 101 </IconButton>
100 </Tooltip> 102 </Tooltip>
101 <ToggleButtonGroup size="small" className="rounded" sx={{ mx: 1 }}> 103 <ToggleButtonGroup size="small" className="rounded" sx={{ mx: 1 }}>
102 <Tooltip title="Line numbers"> 104 <MuiTooltip title="Line numbers">
103 <ToggleButton 105 <ToggleButton
104 selected={editorStore?.showLineNumbers ?? false} 106 selected={editorStore?.showLineNumbers ?? false}
105 disabled={editorStore === undefined} 107 disabled={editorStore === undefined}
@@ -108,8 +110,8 @@ export default observer(function EditorButtons({
108 > 110 >
109 <FormatListNumberedIcon fontSize="small" /> 111 <FormatListNumberedIcon fontSize="small" />
110 </ToggleButton> 112 </ToggleButton>
111 </Tooltip> 113 </MuiTooltip>
112 <Tooltip title="Color identifiers"> 114 <MuiTooltip title="Color identifiers">
113 <ToggleButton 115 <ToggleButton
114 selected={editorStore?.colorIdentifiers ?? false} 116 selected={editorStore?.colorIdentifiers ?? false}
115 disabled={editorStore === undefined} 117 disabled={editorStore === undefined}
@@ -118,8 +120,8 @@ export default observer(function EditorButtons({
118 > 120 >
119 <LooksIcon fontSize="small" /> 121 <LooksIcon fontSize="small" />
120 </ToggleButton> 122 </ToggleButton>
121 </Tooltip> 123 </MuiTooltip>
122 <Tooltip title="Find and replace"> 124 <MuiTooltip title="Find and replace">
123 <ToggleButton 125 <ToggleButton
124 selected={editorStore?.searchPanel?.state ?? false} 126 selected={editorStore?.searchPanel?.state ?? false}
125 disabled={editorStore === undefined} 127 disabled={editorStore === undefined}
@@ -132,8 +134,8 @@ export default observer(function EditorButtons({
132 > 134 >
133 <SearchIcon fontSize="small" /> 135 <SearchIcon fontSize="small" />
134 </ToggleButton> 136 </ToggleButton>
135 </Tooltip> 137 </MuiTooltip>
136 <Tooltip title="Diagnostics panel"> 138 <MuiTooltip title="Diagnostics panel">
137 <ToggleButton 139 <ToggleButton
138 selected={editorStore?.lintPanel?.state ?? false} 140 selected={editorStore?.lintPanel?.state ?? false}
139 disabled={editorStore === undefined} 141 disabled={editorStore === undefined}
@@ -146,7 +148,7 @@ export default observer(function EditorButtons({
146 > 148 >
147 {getLintIcon(editorStore?.delayedErrors?.highestDiagnosticLevel)} 149 {getLintIcon(editorStore?.delayedErrors?.highestDiagnosticLevel)}
148 </ToggleButton> 150 </ToggleButton>
149 </Tooltip> 151 </MuiTooltip>
150 </ToggleButtonGroup> 152 </ToggleButtonGroup>
151 <Tooltip title="Automatic format"> 153 <Tooltip title="Automatic format">
152 <IconButton 154 <IconButton
diff --git a/subprojects/frontend/src/editor/GenerateButton.tsx b/subprojects/frontend/src/editor/GenerateButton.tsx
index b6b1655a..930cbfdb 100644
--- a/subprojects/frontend/src/editor/GenerateButton.tsx
+++ b/subprojects/frontend/src/editor/GenerateButton.tsx
@@ -75,7 +75,7 @@ const GenerateButton = observer(function GenerateButton({
75 if (errorCount > 0) { 75 if (errorCount > 0) {
76 diagnostics.push(`${errorCount} error${errorCount === 1 ? '' : 's'}`); 76 diagnostics.push(`${errorCount} error${errorCount === 1 ? '' : 's'}`);
77 } 77 }
78 if (!(hideWarnings ?? false) && warningCount > 0) { 78 if (!hideWarnings && warningCount > 0) {
79 diagnostics.push(`${warningCount} warning${warningCount === 1 ? '' : 's'}`); 79 diagnostics.push(`${warningCount} warning${warningCount === 1 ? '' : 's'}`);
80 } 80 }
81 const summary = diagnostics.join(' and '); 81 const summary = diagnostics.join(' and ');
@@ -111,8 +111,4 @@ const GenerateButton = observer(function GenerateButton({
111 ); 111 );
112}); 112});
113 113
114GenerateButton.defaultProps = {
115 hideWarnings: false,
116};
117
118export default GenerateButton; 114export default GenerateButton;
diff --git a/subprojects/frontend/src/graph/DotGraphVisualizer.tsx b/subprojects/frontend/src/graph/DotGraphVisualizer.tsx
index 0980ea20..385942e1 100644
--- a/subprojects/frontend/src/graph/DotGraphVisualizer.tsx
+++ b/subprojects/frontend/src/graph/DotGraphVisualizer.tsx
@@ -38,10 +38,8 @@ function DotGraphVisualizer({
38 animateThreshold?: number; 38 animateThreshold?: number;
39 setSvgContainer?: (container: HTMLElement | undefined) => void; 39 setSvgContainer?: (container: HTMLElement | undefined) => void;
40}): JSX.Element { 40}): JSX.Element {
41 const transitionTimeOrDefault = 41 const transitionTimeOrDefault = transitionTime ?? 250;
42 transitionTime ?? DotGraphVisualizer.defaultProps.transitionTime; 42 const animateThresholdOrDefault = animateThreshold ?? 100;
43 const animateThresholdOrDefault =
44 animateThreshold ?? DotGraphVisualizer.defaultProps.animateThreshold;
45 const disposerRef = useRef<IReactionDisposer | undefined>(); 43 const disposerRef = useRef<IReactionDisposer | undefined>();
46 const graphvizRef = useRef< 44 const graphvizRef = useRef<
47 Graphviz<BaseType, unknown, null, undefined> | undefined 45 Graphviz<BaseType, unknown, null, undefined> | undefined
@@ -163,11 +161,4 @@ function DotGraphVisualizer({
163 ); 161 );
164} 162}
165 163
166DotGraphVisualizer.defaultProps = {
167 fitZoom: undefined,
168 transitionTime: 250,
169 animateThreshold: 100,
170 setSvgContainer: undefined,
171};
172
173export default observer(DotGraphVisualizer); 164export default observer(DotGraphVisualizer);
diff --git a/subprojects/frontend/src/graph/RelationName.tsx b/subprojects/frontend/src/graph/RelationName.tsx
index e651cb87..5ae08a20 100644
--- a/subprojects/frontend/src/graph/RelationName.tsx
+++ b/subprojects/frontend/src/graph/RelationName.tsx
@@ -49,7 +49,7 @@ function RelationName({
49 abbreviate?: boolean; 49 abbreviate?: boolean;
50}): JSX.Element { 50}): JSX.Element {
51 const { name, simpleName } = metadata; 51 const { name, simpleName } = metadata;
52 if (abbreviate ?? RelationName.defaultProps.abbreviate) { 52 if (abbreviate) {
53 return <FormattedName name={simpleName} metadata={metadata} />; 53 return <FormattedName name={simpleName} metadata={metadata} />;
54 } 54 }
55 if (name.endsWith(simpleName)) { 55 if (name.endsWith(simpleName)) {
@@ -65,8 +65,4 @@ function RelationName({
65 return <FormattedName name={name} metadata={metadata} />; 65 return <FormattedName name={name} metadata={metadata} />;
66} 66}
67 67
68RelationName.defaultProps = {
69 abbreviate: false,
70};
71
72export default observer(RelationName); 68export default observer(RelationName);
diff --git a/subprojects/frontend/src/graph/SlideInDialog.tsx b/subprojects/frontend/src/graph/SlideInDialog.tsx
index d9060fb0..318b0c0f 100644
--- a/subprojects/frontend/src/graph/SlideInDialog.tsx
+++ b/subprojects/frontend/src/graph/SlideInDialog.tsx
@@ -77,7 +77,7 @@ export default function SlideInDialog({
77 77
78 return ( 78 return (
79 <SlideInDialogRoot 79 <SlideInDialogRoot
80 dialog={dialog ?? SlideInDialog.defaultProps.dialog} 80 dialog={dialog ?? false}
81 aria-labelledby={dialog ? titleId : undefined} 81 aria-labelledby={dialog ? titleId : undefined}
82 > 82 >
83 {dialog && ( 83 {dialog && (
@@ -102,8 +102,3 @@ export default function SlideInDialog({
102 </SlideInDialogRoot> 102 </SlideInDialogRoot>
103 ); 103 );
104} 104}
105
106SlideInDialog.defaultProps = {
107 dialog: false,
108 children: undefined,
109};
diff --git a/subprojects/frontend/src/graph/SlideInPanel.tsx b/subprojects/frontend/src/graph/SlideInPanel.tsx
index 47bbe0a6..13fdce17 100644
--- a/subprojects/frontend/src/graph/SlideInPanel.tsx
+++ b/subprojects/frontend/src/graph/SlideInPanel.tsx
@@ -96,7 +96,3 @@ export default function SlideInPanel({
96 </SlideInPanelRoot> 96 </SlideInPanelRoot>
97 ); 97 );
98} 98}
99
100SlideInPanel.defaultProps = {
101 children: undefined,
102};
diff --git a/subprojects/frontend/src/graph/VisibilityPanel.tsx b/subprojects/frontend/src/graph/VisibilityPanel.tsx
index 619113ef..1cd58769 100644
--- a/subprojects/frontend/src/graph/VisibilityPanel.tsx
+++ b/subprojects/frontend/src/graph/VisibilityPanel.tsx
@@ -16,11 +16,12 @@ import Button from '@mui/material/Button';
16import Checkbox from '@mui/material/Checkbox'; 16import Checkbox from '@mui/material/Checkbox';
17import FormControlLabel from '@mui/material/FormControlLabel'; 17import FormControlLabel from '@mui/material/FormControlLabel';
18import Switch from '@mui/material/Switch'; 18import Switch from '@mui/material/Switch';
19import Tooltip from '@mui/material/Tooltip';
20import { styled } from '@mui/material/styles'; 19import { styled } from '@mui/material/styles';
21import { observer } from 'mobx-react-lite'; 20import { observer } from 'mobx-react-lite';
22import { useCallback } from 'react'; 21import { useCallback } from 'react';
23 22
23import Tooltip from '../Tooltip';
24
24import type GraphStore from './GraphStore'; 25import type GraphStore from './GraphStore';
25import { isVisibilityAllowed } from './GraphStore'; 26import { isVisibilityAllowed } from './GraphStore';
26import RelationName from './RelationName'; 27import RelationName from './RelationName';
diff --git a/subprojects/frontend/src/graph/ZoomCanvas.tsx b/subprojects/frontend/src/graph/ZoomCanvas.tsx
index 07e44a12..57e754f5 100644
--- a/subprojects/frontend/src/graph/ZoomCanvas.tsx
+++ b/subprojects/frontend/src/graph/ZoomCanvas.tsx
@@ -55,9 +55,8 @@ export default function ZoomCanvas({
55 fitPadding?: number; 55 fitPadding?: number;
56 transitionTime?: number; 56 transitionTime?: number;
57}): JSX.Element { 57}): JSX.Element {
58 const fitPaddingOrDefault = fitPadding ?? ZoomCanvas.defaultProps.fitPadding; 58 const fitPaddingOrDefault = fitPadding ?? 8;
59 const transitionTimeOrDefault = 59 const transitionTimeOrDefault = transitionTime ?? 250;
60 transitionTime ?? ZoomCanvas.defaultProps.transitionTime;
61 60
62 const canvasRef = useRef<HTMLDivElement | undefined>(); 61 const canvasRef = useRef<HTMLDivElement | undefined>();
63 const elementRef = useRef<HTMLDivElement | undefined>(); 62 const elementRef = useRef<HTMLDivElement | undefined>();
@@ -235,9 +234,3 @@ export default function ZoomCanvas({
235 </Box> 234 </Box>
236 ); 235 );
237} 236}
238
239ZoomCanvas.defaultProps = {
240 children: undefined,
241 fitPadding: 8,
242 transitionTime: 250,
243};
diff --git a/subprojects/frontend/src/theme/ThemeProvider.tsx b/subprojects/frontend/src/theme/ThemeProvider.tsx
index 1d70dbaf..b8d5ba8d 100644
--- a/subprojects/frontend/src/theme/ThemeProvider.tsx
+++ b/subprojects/frontend/src/theme/ThemeProvider.tsx
@@ -385,10 +385,6 @@ function ThemeAndContrastThemeProvider({
385 ); 385 );
386} 386}
387 387
388ThemeAndContrastThemeProvider.defaultProps = {
389 children: undefined,
390};
391
392export function ContrastThemeProvider({ 388export function ContrastThemeProvider({
393 children, 389 children,
394}: { 390}: {
@@ -405,10 +401,6 @@ export function ContrastThemeProvider({
405 ); 401 );
406} 402}
407 403
408ContrastThemeProvider.defaultProps = {
409 children: undefined,
410};
411
412const ThemeProvider = observer(function ThemeProvider({ 404const ThemeProvider = observer(function ThemeProvider({
413 children, 405 children,
414}: { 406}: {
@@ -428,8 +420,4 @@ const ThemeProvider = observer(function ThemeProvider({
428 ); 420 );
429}); 421});
430 422
431ThemeProvider.defaultProps = {
432 children: undefined,
433};
434
435export default ThemeProvider; 423export default ThemeProvider;