Skip to content

Commit f55ca09

Browse files
committed
Don't misuse render prop pattern
1 parent 45cf7a8 commit f55ca09

27 files changed

+76
-147
lines changed

apps/demo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"wouter": "3.3.5"
2727
},
2828
"devDependencies": {
29-
"@esrf/eslint-config": "1.0.3",
29+
"@esrf/eslint-config": "1.0.4",
3030
"@types/node": "^22.12.0",
3131
"@types/react": "^18.3.3",
3232
"@types/react-dom": "^18.3.0",

apps/storybook/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"three": "0.172.0"
2929
},
3030
"devDependencies": {
31-
"@esrf/eslint-config": "1.0.3",
31+
"@esrf/eslint-config": "1.0.4",
3232
"@storybook/addon-docs": "8.5.0",
3333
"@storybook/addon-essentials": "8.5.0",
3434
"@storybook/addon-links": "8.5.0",

apps/storybook/src/Toolbar.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,14 @@ export const Default = {
8080

8181
<ToggleBtn
8282
label="Grid"
83-
icon={MdGridOn}
83+
Icon={MdGridOn}
8484
value={showGrid}
8585
onToggle={toggleGrid}
8686
/>
8787
<ToggleBtn
8888
label="Test"
8989
iconOnly
90-
icon={FiTarget}
90+
Icon={FiTarget}
9191
value={withTest}
9292
onToggle={toggleTest}
9393
/>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"postversion": "git push && git push --tags"
4141
},
4242
"devDependencies": {
43-
"@esrf/eslint-config": "1.0.3",
43+
"@esrf/eslint-config": "1.0.4",
4444
"@simonsmith/cypress-image-snapshot": "9.1.0",
4545
"@testing-library/cypress": "10.0.2",
4646
"@types/node": "^22.12.0",

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"zustand": "5.0.3"
6565
},
6666
"devDependencies": {
67-
"@esrf/eslint-config": "1.0.3",
67+
"@esrf/eslint-config": "1.0.4",
6868
"@h5web/shared": "workspace:*",
6969
"@rollup/plugin-alias": "5.1.0",
7070
"@testing-library/dom": "10.4.0",

packages/app/src/breadcrumbs/BreadcrumbsBar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function BreadcrumbsBar(props: Props) {
4343
<div className={styles.bar}>
4444
<ToggleBtn
4545
label="Toggle sidebar"
46-
icon={FiSidebar}
46+
Icon={FiSidebar}
4747
iconOnly
4848
value={isSidebarOpen}
4949
onToggle={onToggleSidebar}
@@ -71,7 +71,7 @@ function BreadcrumbsBar(props: Props) {
7171

7272
{document.fullscreenEnabled && (
7373
<Btn
74-
icon={isFullscreen ? FiMinimize : FiMaximize}
74+
Icon={isFullscreen ? FiMinimize : FiMaximize}
7575
iconOnly
7676
label="Go full screen"
7777
onClick={() => {

packages/app/src/vis-packs/VisBoundary.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ function VisBoundary(props: Props) {
1818

1919
return (
2020
<ErrorBoundary
21-
resetKeys={[resetKey]}
22-
// eslint-disable-next-line react/no-unstable-nested-components
2321
fallbackRender={(args) => (
2422
<ErrorFallback className={visualizerStyles.vis} {...args} />
2523
)}
24+
resetKeys={[resetKey]}
2625
onError={() => valuesStore.evictErrors()}
2726
>
2827
<Suspense fallback={<ValueLoader isSlice={isSlice} />}>

packages/app/src/vis-packs/core/complex/ComplexLineToolbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ function ComplexLineToolbar(props: Props) {
7373

7474
<ToggleBtn
7575
label="Grid"
76-
icon={MdGridOn}
76+
Icon={MdGridOn}
7777
value={showGrid}
7878
onToggle={toggleGrid}
7979
/>

packages/app/src/vis-packs/core/complex/ComplexToolbar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,13 @@ function ComplexToolbar(props: Props) {
7979

8080
<ToggleBtn
8181
label="Keep ratio"
82-
icon={MdAspectRatio}
82+
Icon={MdAspectRatio}
8383
value={keepRatio}
8484
onToggle={toggleKeepRatio}
8585
/>
8686
<ToggleBtn
8787
label="Grid"
88-
icon={MdGridOn}
88+
Icon={MdGridOn}
8989
value={showGrid}
9090
onToggle={toggleGrid}
9191
/>

packages/app/src/vis-packs/core/heatmap/HeatmapToolbar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,28 +79,28 @@ function HeatmapToolbar(props: Props) {
7979
<ToggleBtn
8080
label="X"
8181
aria-label="Flip X"
82-
icon={MdSwapHoriz}
82+
Icon={MdSwapHoriz}
8383
value={flipXAxis}
8484
onToggle={toggleXAxisFlip}
8585
/>
8686
<ToggleBtn
8787
label="Y"
8888
aria-label="Flip Y"
89-
icon={MdSwapVert}
89+
Icon={MdSwapVert}
9090
value={flipYAxis}
9191
onToggle={toggleYAxisFlip}
9292
/>
9393

9494
<ToggleBtn
9595
label="Keep ratio"
96-
icon={MdAspectRatio}
96+
Icon={MdAspectRatio}
9797
value={keepRatio}
9898
onToggle={toggleKeepRatio}
9999
/>
100100

101101
<ToggleBtn
102102
label="Grid"
103-
icon={MdGridOn}
103+
Icon={MdGridOn}
104104
value={showGrid}
105105
onToggle={toggleGrid}
106106
/>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { type IconBaseProps } from 'react-icons';
2+
import { FiItalic } from 'react-icons/fi';
3+
4+
function ErrorsIcon(props: IconBaseProps) {
5+
return (
6+
<FiItalic
7+
transform="skewX(20)"
8+
style={{ marginLeft: '-0.25em', marginRight: '0.0625rem' }}
9+
{...props}
10+
/>
11+
);
12+
}
13+
14+
export default ErrorsIcon;

packages/app/src/vis-packs/core/line/LineToolbar.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import {
1010
} from '@h5web/lib';
1111
import { type Domain, type ExportEntry } from '@h5web/shared/vis-models';
1212
import { AXIS_SCALE_TYPES } from '@h5web/shared/vis-utils';
13-
import { FiItalic } from 'react-icons/fi';
1413
import { MdGridOn } from 'react-icons/md';
1514

1615
import { INTERACTIONS_WITH_AXIAL_ZOOM } from '../utils';
1716
import { type LineConfig } from './config';
17+
import ErrorsIcon from './ErrorsIcon';
1818

1919
interface Props {
2020
dataDomain: Domain;
@@ -69,22 +69,15 @@ function LineToolbar(props: Props) {
6969

7070
<ToggleBtn
7171
label="Errors"
72-
// eslint-disable-next-line react/no-unstable-nested-components
73-
icon={(iconProps) => (
74-
<FiItalic
75-
transform="skewX(20)"
76-
style={{ marginLeft: '-0.25em', marginRight: '0.0625rem' }}
77-
{...iconProps}
78-
/>
79-
)}
72+
Icon={ErrorsIcon}
8073
value={!disableErrors && showErrors}
8174
onToggle={toggleErrors}
8275
disabled={disableErrors}
8376
/>
8477

8578
<ToggleBtn
8679
label="Grid"
87-
icon={MdGridOn}
80+
Icon={MdGridOn}
8881
value={showGrid}
8982
onToggle={toggleGrid}
9083
/>

packages/app/src/vis-packs/core/matrix/MatrixToolbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function MatrixToolbar(props: Props) {
4343

4444
<ToggleBtn
4545
label="Freeze indices"
46-
icon={FiAnchor}
46+
Icon={FiAnchor}
4747
value={sticky}
4848
onToggle={toggleSticky}
4949
/>

packages/app/src/vis-packs/core/raw/RawToolbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function RawToolbar(props: Props) {
1818
<Toolbar>
1919
<ToggleBtn
2020
label="Fit image"
21-
icon={MdOutlineFitScreen}
21+
Icon={MdOutlineFitScreen}
2222
value={fitImage}
2323
disabled={!isImage}
2424
onToggle={toggleFitImage}

packages/app/src/vis-packs/core/rgb/RgbToolbar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,28 +53,28 @@ function RgbToolbar(props: Props) {
5353
<ToggleBtn
5454
label="X"
5555
aria-label="Flip X"
56-
icon={MdSwapHoriz}
56+
Icon={MdSwapHoriz}
5757
value={flipXAxis}
5858
onToggle={toggleXAxisFlip}
5959
/>
6060
<ToggleBtn
6161
label="Y"
6262
aria-label="Flip Y"
63-
icon={MdSwapVert}
63+
Icon={MdSwapVert}
6464
value={flipYAxis}
6565
onToggle={toggleYAxisFlip}
6666
/>
6767

6868
<ToggleBtn
6969
label="Keep ratio"
70-
icon={MdAspectRatio}
70+
Icon={MdAspectRatio}
7171
value={keepRatio}
7272
onToggle={toggleKeepRatio}
7373
/>
7474

7575
<ToggleBtn
7676
label="Grid"
77-
icon={MdGridOn}
77+
Icon={MdGridOn}
7878
value={showGrid}
7979
onToggle={toggleGrid}
8080
/>

packages/app/src/vis-packs/core/scatter/ScatterToolbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ function ScatterToolbar(props: Props) {
8181

8282
<ToggleBtn
8383
label="Grid"
84-
icon={MdGridOn}
84+
Icon={MdGridOn}
8585
value={showGrid}
8686
onToggle={toggleGrid}
8787
/>

packages/h5wasm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"nanoid": "5.0.9"
5252
},
5353
"devDependencies": {
54-
"@esrf/eslint-config": "1.0.3",
54+
"@esrf/eslint-config": "1.0.4",
5555
"@h5web/app": "workspace:*",
5656
"@h5web/shared": "workspace:*",
5757
"@rollup/plugin-alias": "5.1.0",

packages/lib/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
"zustand": "5.0.3"
7676
},
7777
"devDependencies": {
78-
"@esrf/eslint-config": "1.0.3",
78+
"@esrf/eslint-config": "1.0.4",
7979
"@h5web/shared": "workspace:*",
8080
"@react-three/fiber": "8.17.12",
8181
"@rollup/plugin-alias": "5.1.0",

packages/lib/src/toolbar/OverflowMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ function OverflowMenu(props: PropsWithChildren<Props>) {
5858
ref={refs.setReference}
5959
id={referenceId}
6060
label="More controls"
61-
icon={FiMenu}
61+
Icon={FiMenu}
6262
iconOnly
6363
aria-haspopup="dialog"
6464
aria-expanded={isOpen}

packages/lib/src/toolbar/controls/Btn.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
1-
import {
2-
type ComponentType,
3-
forwardRef,
4-
type HTMLAttributes,
5-
type SVGAttributes,
6-
} from 'react';
1+
import { type ComponentType, forwardRef, type HTMLAttributes } from 'react';
72
import { MdArrowDropDown } from 'react-icons/md';
83

94
import styles from '../Toolbar.module.css';
105

116
interface Props extends HTMLAttributes<HTMLButtonElement> {
127
label: string;
13-
icon?: ComponentType<SVGAttributes<SVGElement>>;
8+
Icon?: ComponentType<{ className: string }>;
149
iconOnly?: boolean;
1510
small?: boolean;
1611
raised?: boolean;
@@ -21,7 +16,7 @@ interface Props extends HTMLAttributes<HTMLButtonElement> {
2116
const Btn = forwardRef<HTMLButtonElement, Props>((props, ref) => {
2217
const {
2318
label,
24-
icon: Icon,
19+
Icon,
2520
iconOnly,
2621
small,
2722
raised,

packages/lib/src/toolbar/controls/CellWidthInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ function CellWidthInput(props: Props) {
6363

6464
<Btn
6565
label="Reset"
66-
icon={FiRotateCw}
66+
Icon={FiRotateCw}
6767
iconOnly
6868
small
6969
disabled={!hasValue}

packages/lib/src/toolbar/controls/ColorMapSelector/ColorMapSelector.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function ColorMapSelector(props: Props) {
3434
<ToggleBtn
3535
small
3636
label="Invert"
37-
icon={FiShuffle}
37+
Icon={FiShuffle}
3838
value={invert}
3939
onToggle={onInversionChange}
4040
/>

packages/lib/src/toolbar/controls/DomainWidget/DomainWidget.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ function DomainWidget(props: Props) {
9999
label="Edit domain"
100100
aria-expanded={hovered || isEditing}
101101
aria-controls={POPUP_ID}
102-
icon={FiEdit3}
102+
Icon={FiEdit3}
103103
value={isEditing}
104104
disabled={disabled}
105105
onToggle={() => toggleEditing(!isEditing)}

packages/lib/src/toolbar/controls/ExportMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function ExportMenu(props: Props) {
4747
ref={refs.setReference}
4848
id={referenceId}
4949
label={`Export${isSlice ? ' slice' : ''}`}
50-
icon={FiDownload}
50+
Icon={FiDownload}
5151
withArrow
5252
disabled={entries.length === 0}
5353
aria-haspopup="menu"

packages/lib/src/toolbar/controls/InteractionHelp.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function InteractionHelp(props: Props) {
4747
ref={refs.setReference}
4848
id={referenceId}
4949
label="Show help"
50-
icon={FiHelpCircle}
50+
Icon={FiHelpCircle}
5151
iconOnly
5252
aria-haspopup="dialog"
5353
aria-expanded={isOpen}

packages/shared/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
}
5555
},
5656
"devDependencies": {
57-
"@esrf/eslint-config": "1.0.3",
57+
"@esrf/eslint-config": "1.0.4",
5858
"@types/d3-array": "~3.2.1",
5959
"@types/d3-format": "~3.0.4",
6060
"@types/ndarray": "~1.0.14",

0 commit comments

Comments
 (0)