Skip to content

Commit 773fdab

Browse files
authored
Merge pull request #21213 from storybookjs/fix-emotion-warnings-for-good
Core: Revert Emotion `:first-child` (etc) workarounds
2 parents e9f5b2b + 6f60a54 commit 773fdab

File tree

4 files changed

+19
-25
lines changed

4 files changed

+19
-25
lines changed

code/ui/blocks/src/components/Source.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ComponentProps, FunctionComponent } from 'react';
22
import React from 'react';
3-
import { styled, ThemeProvider, convert, themes } from '@storybook/theming';
3+
import { styled, ThemeProvider, convert, themes, ignoreSsrWarning } from '@storybook/theming';
44
import { SyntaxHighlighter } from '@storybook/components';
55

66
import { EmptyBlock } from './EmptyBlock';
@@ -69,7 +69,7 @@ const SourceSkeletonPlaceholder = styled.div(({ theme }) => ({
6969
marginTop: 1,
7070
width: '60%',
7171

72-
[`&:first-child`]: {
72+
[`&:first-child${ignoreSsrWarning}`]: {
7373
margin: 0,
7474
},
7575
}));

code/ui/components/src/spaced/Spaced.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { FC } from 'react';
22
import React from 'react';
3-
import { styled } from '@storybook/theming';
3+
import { styled, ignoreSsrWarning } from '@storybook/theming';
44

55
const toNumber = (input: any) => (typeof input === 'number' ? input : Number(input));
66

@@ -20,15 +20,15 @@ const Container = styled.div<ContainerProps>(
2020
marginLeft: col * theme.layoutMargin,
2121
verticalAlign: 'inherit',
2222
},
23-
[`& > *:first-child`]: {
23+
[`& > *:first-child${ignoreSsrWarning}`]: {
2424
marginLeft: 0,
2525
},
2626
}
2727
: {
2828
'& > *': {
2929
marginTop: row * theme.layoutMargin,
3030
},
31-
[`& > *:first-child`]: {
31+
[`& > *:first-child${ignoreSsrWarning}`]: {
3232
marginTop: 0,
3333
},
3434
},

code/ui/components/src/tabs/tabs.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ import type { ChildrenList } from './tabs.helpers';
1010
import { childrenToList, VisuallyHidden } from './tabs.helpers';
1111
import { useList } from './tabs.hooks';
1212

13+
const ignoreSsrWarning =
14+
'/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
15+
1316
export interface WrapperProps {
1417
bordered?: boolean;
1518
absolute?: boolean;
@@ -84,7 +87,7 @@ const Content = styled.div<ContentProps>(
8487
bottom: 0 + (bordered ? 1 : 0),
8588
top: 40 + (bordered ? 1 : 0),
8689
overflow: 'auto',
87-
[`& > *:first-child`]: {
90+
[`& > *:first-child${ignoreSsrWarning}`]: {
8891
position: 'absolute',
8992
left: 0 + (bordered ? 1 : 0),
9093
right: 0 + (bordered ? 1 : 0),

code/ui/manager/src/index.tsx

+10-19
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,14 @@ import ReactDOM from 'react-dom';
66
import { Location, LocationProvider, useNavigate } from '@storybook/router';
77
import { Provider as ManagerProvider } from '@storybook/manager-api';
88
import type { Combo } from '@storybook/manager-api';
9-
import {
10-
ThemeProvider,
11-
ensure as ensureTheme,
12-
CacheProvider,
13-
createCache,
14-
} from '@storybook/theming';
9+
import { ThemeProvider, ensure as ensureTheme } from '@storybook/theming';
10+
1511
import { HelmetProvider } from 'react-helmet-async';
1612

1713
import App from './app';
1814

1915
import Provider from './provider';
2016

21-
const emotionCache = createCache({ key: 'sto' });
22-
emotionCache.compat = true;
23-
2417
// @ts-expect-error (Converted from ts-ignore)
2518
ThemeProvider.displayName = 'ThemeProvider';
2619
// @ts-expect-error (Converted from ts-ignore)
@@ -59,16 +52,14 @@ const Main: FC<{ provider: Provider }> = ({ provider }) => {
5952
: !state.previewInitialized;
6053

6154
return (
62-
<CacheProvider value={emotionCache}>
63-
<ThemeProvider key="theme.provider" theme={ensureTheme(state.theme)}>
64-
<App
65-
key="app"
66-
viewMode={state.viewMode}
67-
layout={isLoading ? { ...state.layout, showPanel: false } : state.layout}
68-
panelCount={panelCount}
69-
/>
70-
</ThemeProvider>
71-
</CacheProvider>
55+
<ThemeProvider key="theme.provider" theme={ensureTheme(state.theme)}>
56+
<App
57+
key="app"
58+
viewMode={state.viewMode}
59+
layout={isLoading ? { ...state.layout, showPanel: false } : state.layout}
60+
panelCount={panelCount}
61+
/>
62+
</ThemeProvider>
7263
);
7364
}}
7465
</ManagerProvider>

0 commit comments

Comments
 (0)