Skip to content

Commit 3a7aa75

Browse files
committed
Soft-wrap as a global preference. Fixes #517
1 parent e4e7ac2 commit 3a7aa75

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/common/state/store-ui.ts

+6
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ interface UIPreferencesStore {
3232
renderMarkdown: boolean;
3333
setRenderMarkdown: (renderMarkdown: boolean) => void;
3434

35+
renderCodeSoftWrap: boolean;
36+
setRenderCodeSoftWrap: (renderCodeSoftWrap: boolean) => void;
37+
3538
// showPersonaExamples: boolean;
3639
// setShowPersonaExamples: (showPersonaExamples: boolean) => void;
3740

@@ -75,6 +78,9 @@ export const useUIPreferencesStore = create<UIPreferencesStore>()(
7578
renderMarkdown: true,
7679
setRenderMarkdown: (renderMarkdown: boolean) => set({ renderMarkdown }),
7780

81+
renderCodeSoftWrap: false,
82+
setRenderCodeSoftWrap: (renderCodeSoftWrap: boolean) => set({ renderCodeSoftWrap }),
83+
7884
// showPersonaExamples: false,
7985
// setShowPersonaExamples: (showPersonaExamples: boolean) => set({ showPersonaExamples }),
8086

src/modules/blocks/code/RenderCode.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import WrapTextIcon from '@mui/icons-material/WrapText';
1212

1313
import { copyToClipboard } from '~/common/util/clipboardUtils';
1414
import { frontendSideFetch } from '~/common/util/clientFetchers';
15+
import { useUIPreferencesStore } from '~/common/state/store-ui';
1516

1617
import type { CodeBlock } from '../blocks';
1718
import { ButtonCodePen, isCodePenSupported } from './ButtonCodePen';
@@ -107,7 +108,7 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
107108
const [showMermaid, setShowMermaid] = React.useState(true);
108109
const [showPlantUML, setShowPlantUML] = React.useState(true);
109110
const [showSVG, setShowSVG] = React.useState(true);
110-
const [softWrap, setSoftWrap] = React.useState(false);
111+
const [softWrap, setSoftWrap] = useUIPreferencesStore(state => [state.renderCodeSoftWrap, state.setRenderCodeSoftWrap]);
111112

112113
// derived props
113114
const {
@@ -274,7 +275,7 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
274275
{/* Soft Wrap toggle */}
275276
{(!renderHTML && !renderMermaid && !renderPlantUML && !renderSVG) && (
276277
<Tooltip title='Toggle Soft Wrap'>
277-
<OverlayButton variant={softWrap ? 'solid' : 'outlined'} onClick={() => setSoftWrap(on => !on)}>
278+
<OverlayButton variant={softWrap ? 'solid' : 'outlined'} onClick={() => setSoftWrap(!softWrap)}>
278279
<WrapTextIcon />
279280
</OverlayButton>
280281
</Tooltip>

0 commit comments

Comments
 (0)