Skip to content

Commit 78f44d0

Browse files
fix(theme): Hide code block buttons before React hydration (#10866)
1 parent 4d7a289 commit 78f44d0

File tree

1 file changed

+14
-10
lines changed
  • packages/docusaurus-theme-classic/src/theme/CodeBlock/Content

1 file changed

+14
-10
lines changed

packages/docusaurus-theme-classic/src/theme/CodeBlock/Content/String.tsx

+14-10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
getLineNumbersStart,
1616
useCodeWordWrap,
1717
} from '@docusaurus/theme-common/internal';
18+
import useIsBrowser from '@docusaurus/useIsBrowser';
1819
import {Highlight, type Language} from 'prism-react-renderer';
1920
import Line from '@theme/CodeBlock/Line';
2021
import CopyButton from '@theme/CodeBlock/CopyButton';
@@ -48,6 +49,7 @@ export default function CodeBlockString({
4849

4950
const prismTheme = usePrismTheme();
5051
const wordWrap = useCodeWordWrap();
52+
const isBrowser = useIsBrowser();
5153

5254
// We still parse the metastring in case we want to support more syntax in the
5355
// future. Note that MDX doesn't strip quotes when parsing metastring:
@@ -111,16 +113,18 @@ export default function CodeBlockString({
111113
</pre>
112114
)}
113115
</Highlight>
114-
<div className={styles.buttonGroup}>
115-
{(wordWrap.isEnabled || wordWrap.isCodeScrollable) && (
116-
<WordWrapButton
117-
className={styles.codeButton}
118-
onClick={() => wordWrap.toggle()}
119-
isEnabled={wordWrap.isEnabled}
120-
/>
121-
)}
122-
<CopyButton className={styles.codeButton} code={code} />
123-
</div>
116+
{isBrowser ? (
117+
<div className={styles.buttonGroup}>
118+
{(wordWrap.isEnabled || wordWrap.isCodeScrollable) && (
119+
<WordWrapButton
120+
className={styles.codeButton}
121+
onClick={() => wordWrap.toggle()}
122+
isEnabled={wordWrap.isEnabled}
123+
/>
124+
)}
125+
<CopyButton className={styles.codeButton} code={code} />
126+
</div>
127+
) : null}
124128
</div>
125129
</Container>
126130
);

0 commit comments

Comments
 (0)