Skip to content

Commit 6163276

Browse files
authored
Replace styled-components with Emotion (#1883)
* Replace styled-components with Emotion in ui * react-dock * Remainder * Fix * Format * Update snapshots * Create bright-sheep-joke.md
1 parent 585d6b9 commit 6163276

File tree

65 files changed

+332
-858
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+332
-858
lines changed

.changeset/bright-sheep-joke.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
'@redux-devtools/app-core': major
3+
'@redux-devtools/app': major
4+
'@redux-devtools/inspector-monitor-test-tab': major
5+
'@redux-devtools/rtk-query-monitor': major
6+
'@redux-devtools/slider-monitor': major
7+
'@redux-devtools/ui': major
8+
---
9+
10+
Replace styled-components with Emotion

extension/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
},
2626
"dependencies": {
2727
"@emotion/react": "^11.14.0",
28+
"@emotion/styled": "^11.14.0",
2829
"@redux-devtools/app": "workspace:^",
2930
"@redux-devtools/core": "workspace:^",
3031
"@redux-devtools/instrument": "workspace:^",
@@ -44,8 +45,7 @@
4445
"react-json-tree": "workspace:^",
4546
"react-redux": "^9.2.0",
4647
"redux": "^5.0.1",
47-
"redux-persist": "^6.0.0",
48-
"styled-components": "^5.3.11"
48+
"redux-persist": "^6.0.0"
4949
},
5050
"devDependencies": {
5151
"@babel/core": "^7.27.1",
@@ -60,7 +60,6 @@
6060
"@types/lodash-es": "^4.17.12",
6161
"@types/react": "^19.1.6",
6262
"@types/react-dom": "^19.1.5",
63-
"@types/styled-components": "^5.1.34",
6463
"chromedriver": "^126.0.5",
6564
"cross-env": "^7.0.3",
6665
"electron": "^31.7.7",

packages/react-dock/demo/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
"type-check": "tsc --noEmit"
1111
},
1212
"dependencies": {
13+
"@emotion/styled": "^11.14.0",
1314
"react": "^19.1.0",
1415
"react-bootstrap": "^2.10.10",
1516
"react-dock": "workspace:^",
1617
"react-dom": "^19.1.0",
1718
"react-icons": "^5.5.0",
18-
"react-is": "^19.1.0",
19-
"styled-components": "^5.3.11"
19+
"react-is": "^19.1.0"
2020
},
2121
"devDependencies": {
2222
"@babel/core": "^7.27.1",
@@ -26,7 +26,6 @@
2626
"@types/node": "^22.15.21",
2727
"@types/react": "^19.1.6",
2828
"@types/react-dom": "^19.1.5",
29-
"@types/styled-components": "^5.1.34",
3029
"babel-loader": "^10.0.0",
3130
"cross-env": "^7.0.3",
3231
"fork-ts-checker-webpack-plugin": "^9.1.0",

packages/react-dock/demo/src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { Component } from 'react';
22
import Button from 'react-bootstrap/Button';
33
import Form from 'react-bootstrap/Form';
44
import { BsX } from 'react-icons/bs';
5-
import styled from 'styled-components';
5+
import styled from '@emotion/styled';
66

77
import { Dock } from 'react-dock';
88

packages/redux-devtools-app-core/package.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"@babel/preset-react": "^7.27.1",
6262
"@babel/preset-typescript": "^7.27.1",
6363
"@emotion/react": "^11.14.0",
64+
"@emotion/styled": "^11.14.0",
6465
"@reduxjs/toolkit": "^2.8.2",
6566
"@rjsf/core": "^5.24.10",
6667
"@testing-library/dom": "^10.4.0",
@@ -72,7 +73,6 @@
7273
"@types/node": "^22.15.21",
7374
"@types/react": "^19.1.6",
7475
"@types/react-dom": "^19.1.5",
75-
"@types/styled-components": "^5.1.34",
7676
"cross-env": "^7.0.3",
7777
"esbuild": "^0.25.4",
7878
"jest": "^29.7.0",
@@ -83,21 +83,19 @@
8383
"redux": "^5.0.1",
8484
"redux-persist": "^6.0.0",
8585
"rimraf": "^6.0.1",
86-
"styled-components": "^5.3.11",
8786
"ts-jest": "^29.3.4",
8887
"ts-node": "^10.9.2",
8988
"typescript": "~5.8.3"
9089
},
9190
"peerDependencies": {
9291
"@emotion/react": "^11.14.0",
92+
"@emotion/styled": "^11.14.0",
9393
"@reduxjs/toolkit": "^1.0.0 || ^2.0.0",
9494
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
95-
"@types/styled-components": "^5.1.34",
9695
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
9796
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
9897
"react-redux": "^8.0.0 || ^9.0.0",
9998
"redux": "^4.0.0 || ^5.0.0",
100-
"redux-persist": "^6.0.0",
101-
"styled-components": "^5.3.11"
99+
"redux-persist": "^6.0.0"
102100
}
103101
}

packages/redux-devtools-app-core/src/containers/DevTools.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { Component } from 'react';
2-
import { withTheme } from 'styled-components';
2+
import { withTheme } from '@emotion/react';
33
import { LiftedAction, LiftedState } from '@redux-devtools/core';
44
import { Action } from 'redux';
55
import getMonitor from '../utils/getMonitor';

packages/redux-devtools-app-core/src/containers/monitors/Dispatcher.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
// Based on https://github.com/YoruNoHikage/redux-devtools-dispatch
22

33
import React, { Component } from 'react';
4-
import styled from 'styled-components';
5-
import { Button, Select, Editor, Toolbar } from '@redux-devtools/ui';
4+
import styled from '@emotion/styled';
5+
import {
6+
Button,
7+
Select,
8+
Editor,
9+
Toolbar,
10+
Base16Theme,
11+
} from '@redux-devtools/ui';
612
import { connect, ResolveThunks } from 'react-redux';
713
import { dispatchRemotely } from '../../actions';
814
import { Options } from '../../reducers/instances';
@@ -12,7 +18,7 @@ export const DispatcherContainer = styled.div`
1218
flex-direction: column;
1319
flex-shrink: 0;
1420
padding-top: 2px;
15-
background: ${(props) => props.theme.base01};
21+
background: ${(props: { theme?: Base16Theme }) => props.theme!.base01};
1622
`;
1723

1824
export const CodeContainer = styled.div`
@@ -24,7 +30,7 @@ export const CodeContainer = styled.div`
2430
export const ActionContainer = styled.div`
2531
display: table;
2632
width: 100%;
27-
color: ${(props) => props.theme.base06};
33+
color: ${(props: { theme?: Base16Theme }) => props.theme!.base06};
2834
2935
> div {
3036
display: table-row;

packages/redux-devtools-app-core/src/containers/monitors/InspectorWrapper/ChartTab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { Component, RefCallback } from 'react';
22
import { connect, ResolveThunks } from 'react-redux';
3-
import { withTheme } from 'styled-components';
3+
import { withTheme } from '@emotion/react';
44
import { tree } from 'd3-state-visualizer';
55
import type { HierarchyPointNode, Node, Options } from 'd3-state-visualizer';
66
import { getPath } from '../ChartMonitorWrapper';

packages/redux-devtools-app-core/src/containers/monitors/InspectorWrapper/VisualDiffTab.tsx

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React, { Component } from 'react';
22
import type { Delta } from 'jsondiffpatch';
33
import * as htmlFormatter from 'jsondiffpatch/formatters/html';
4-
import styled, { ThemedStyledProps } from 'styled-components';
5-
import { effects, Theme } from '@redux-devtools/ui';
4+
import styled from '@emotion/styled';
5+
import { Base16Theme, effects } from '@redux-devtools/ui';
66

77
export const StyledContainer = styled.div`
88
.jsondiffpatch-delta {
@@ -19,8 +19,7 @@ export const StyledContainer = styled.div`
1919
padding: 2px 3px;
2020
border-radius: 3px;
2121
position: relative;
22-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
23-
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base07};
22+
color: ${(props: { theme?: Base16Theme }) => props.theme!.base07};
2423
display: inline-block;
2524
}
2625
@@ -44,25 +43,22 @@ export const StyledContainer = styled.div`
4443
.jsondiffpatch-modified .jsondiffpatch-right-value:before {
4544
vertical-align: top;
4645
padding: 2px;
47-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
48-
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base0E};
46+
color: ${(props) => props.theme.base0E};
4947
content: ' => ';
5048
}
5149
5250
.jsondiffpatch-added .jsondiffpatch-value pre,
5351
.jsondiffpatch-modified .jsondiffpatch-right-value pre,
5452
.jsondiffpatch-textdiff-added {
55-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
56-
background: ${(props: ThemedStyledProps<{}, Theme>) =>
57-
effects.color(props.theme.base0B, 'alpha', 0.2)};
53+
background: ${(props: { theme?: Base16Theme }) =>
54+
effects.color(props.theme!.base0B, 'alpha', 0.2)};
5855
}
5956
6057
.jsondiffpatch-deleted pre,
6158
.jsondiffpatch-modified .jsondiffpatch-left-value pre,
6259
.jsondiffpatch-textdiff-deleted {
63-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
64-
background: ${(props: ThemedStyledProps<{}, Theme>) =>
65-
effects.color(props.theme.base08, 'alpha', 0.2)};
60+
background: ${(props: { theme?: Base16Theme }) =>
61+
effects.color(props.theme!.base08, 'alpha', 0.2)};
6662
text-decoration: line-through;
6763
}
6864
@@ -129,14 +125,12 @@ export const StyledContainer = styled.div`
129125
padding: 2px 0;
130126
padding-right: 5px;
131127
vertical-align: top;
132-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
133-
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base0D};
128+
color: ${(props) => props.theme.base0D};
134129
}
135130
136131
.jsondiffpatch-property-name:after {
137132
content: ': ';
138-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
139-
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base07};
133+
color: ${(props) => props.theme.base07};
140134
}
141135
142136
.jsondiffpatch-child-node-type-array > .jsondiffpatch-property-name:after {
@@ -172,8 +166,7 @@ export const StyledContainer = styled.div`
172166
}
173167
174168
.jsondiffpatch-value pre:after {
175-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
176-
color: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base07};
169+
color: ${(props) => props.theme.base07};
177170
content: ',';
178171
}
179172
@@ -196,8 +189,7 @@ export const StyledContainer = styled.div`
196189
197190
.jsondiffpatch-moved .jsondiffpatch-moved-destination {
198191
display: inline-block;
199-
${/* eslint-disable-next-line @typescript-eslint/no-empty-object-type */ ''}
200-
background: ${(props: ThemedStyledProps<{}, Theme>) => props.theme.base0A};
192+
background: ${(props) => props.theme.base0A};
201193
}
202194
203195
.jsondiffpatch-moved .jsondiffpatch-moved-destination:before {

packages/redux-devtools-app-core/src/containers/monitors/Slider.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import React, { Component } from 'react';
2-
import styled, { withTheme } from 'styled-components';
2+
import styled from '@emotion/styled';
3+
import { withTheme } from '@emotion/react';
34
import { SliderMonitor } from '@redux-devtools/slider-monitor';
45
import { LiftedAction } from '@redux-devtools/core';
56
import { Action } from 'redux';
6-
import { ThemeFromProvider } from '@redux-devtools/ui';
7+
import { Base16Theme, ThemeFromProvider } from '@redux-devtools/ui';
78
import { State } from '../../reducers/instances';
89

910
const SliderWrapper = styled.div`
10-
border-color: ${(props) => props.theme.base02};
11+
border-color: ${(props: { theme?: Base16Theme }) => props.theme!.base02};
1112
border-style: solid;
1213
border-width: 1px 0;
1314
`;

packages/redux-devtools-app/package.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
"@babel/preset-react": "^7.27.1",
5858
"@babel/preset-typescript": "^7.27.1",
5959
"@emotion/react": "^11.14.0",
60+
"@emotion/styled": "^11.14.0",
6061
"@reduxjs/toolkit": "^2.8.2",
6162
"@rjsf/core": "^5.24.10",
6263
"@types/jsan": "^3.1.5",
@@ -65,7 +66,6 @@
6566
"@types/react": "^19.1.6",
6667
"@types/react-dom": "^19.1.5",
6768
"@types/socketcluster-client": "^19.1.0",
68-
"@types/styled-components": "^5.1.34",
6969
"@types/webpack-env": "^1.18.8",
7070
"babel-loader": "^10.0.0",
7171
"cross-env": "^7.0.3",
@@ -79,7 +79,6 @@
7979
"react-dom": "^19.1.0",
8080
"rimraf": "^6.0.1",
8181
"style-loader": "^4.0.0",
82-
"styled-components": "^5.3.11",
8382
"ts-jest": "^29.3.4",
8483
"ts-node": "^10.9.2",
8584
"typescript": "~5.8.3",
@@ -89,11 +88,10 @@
8988
},
9089
"peerDependencies": {
9190
"@emotion/react": "^11.14.0",
91+
"@emotion/styled": "^11.14.0",
9292
"@reduxjs/toolkit": "^1.0.0 || ^2.0.0",
9393
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
94-
"@types/styled-components": "^5.1.34",
9594
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
96-
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
97-
"styled-components": "^5.3.11"
95+
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0"
9896
}
9997
}

packages/redux-devtools-cli/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"dependencies": {
4444
"@apollo/server": "^4.12.1",
4545
"@emotion/react": "^11.14.0",
46+
"@emotion/styled": "^11.14.0",
4647
"@redux-devtools/app": "workspace:^",
4748
"@reduxjs/toolkit": "^2.8.2",
4849
"@types/react": "^19.1.6",
@@ -65,7 +66,6 @@
6566
"semver": "^7.7.2",
6667
"socketcluster-server": "^19.1.1",
6768
"sqlite3": "^5.1.7",
68-
"styled-components": "^5.3.11",
6969
"uuid": "^11.1.0"
7070
},
7171
"devDependencies": {
@@ -81,7 +81,6 @@
8181
"@types/semver": "^7.7.0",
8282
"@types/socketcluster-client": "^19.1.0",
8383
"@types/socketcluster-server": "^19.0.1",
84-
"@types/styled-components": "^5.1.34",
8584
"@types/supertest": "^6.0.3",
8685
"@types/uuid": "^10.0.0",
8786
"globals": "^16.1.0",

packages/redux-devtools-inspector-monitor-test-tab/demo/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
},
1212
"dependencies": {
1313
"@emotion/react": "^11.14.0",
14+
"@emotion/styled": "^11.14.0",
1415
"@redux-devtools/core": "workspace:^",
1516
"@redux-devtools/dock-monitor": "workspace:^",
1617
"@redux-devtools/inspector-monitor": "workspace:^",
@@ -24,8 +25,7 @@
2425
"react-redux": "^9.2.0",
2526
"react-router-dom": "^7.6.1",
2627
"redux": "^5.0.1",
27-
"redux-logger": "^3.0.6",
28-
"styled-components": "^5.3.11"
28+
"redux-logger": "^3.0.6"
2929
},
3030
"devDependencies": {
3131
"@babel/core": "^7.27.1",
@@ -37,7 +37,6 @@
3737
"@types/react": "^19.1.6",
3838
"@types/react-dom": "^19.1.5",
3939
"@types/redux-logger": "^3.0.13",
40-
"@types/styled-components": "^5.1.34",
4140
"@types/webpack-env": "^1.18.8",
4241
"babel-loader": "^10.0.0",
4342
"cross-env": "^7.0.3",

packages/redux-devtools-inspector-monitor-test-tab/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"@babel/preset-react": "^7.27.1",
6262
"@babel/preset-typescript": "^7.27.1",
6363
"@emotion/react": "^11.14.0",
64+
"@emotion/styled": "^11.14.0",
6465
"@redux-devtools/core": "workspace:^",
6566
"@redux-devtools/inspector-monitor": "workspace:^",
6667
"@testing-library/dom": "^10.4.0",
@@ -81,12 +82,11 @@
8182
},
8283
"peerDependencies": {
8384
"@emotion/react": "^11.14.0",
85+
"@emotion/styled": "^11.14.0",
8486
"@redux-devtools/inspector-monitor": "workspace:^",
8587
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
86-
"@types/styled-components": "^5.1.34",
8788
"react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
8889
"react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
89-
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0",
90-
"styled-components": "^5.3.11"
90+
"redux": "^3.4.0 || ^4.0.0 || ^5.0.0"
9191
}
9292
}

0 commit comments

Comments
 (0)