Code: fix render lines suppression

This commit is contained in:
Enrico Ros
2024-06-18 14:03:30 -07:00
parent 4690891757
commit 8af625b7dc
+13 -11
View File
@@ -127,16 +127,6 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
highlightCode, inferCodeLanguage,
optimizeLightweight,
} = props;
const canRenderLineNumbers = !showSoftWrap;
const renderLineNumbers = showLineNumbers && canRenderLineNumbers;
// heuristic for language, and syntax highlight
const { highlightedCode, inferredCodeLanguage } = React.useMemo(() => {
const inferredCodeLanguage = inferCodeLanguage(blockTitle, blockCode);
const highlightedCode = highlightCode(inferredCodeLanguage, blockCode, renderLineNumbers);
return { highlightedCode, inferredCodeLanguage };
}, [inferCodeLanguage, blockTitle, blockCode, highlightCode, renderLineNumbers]);
// heuristics for specialized rendering
@@ -168,6 +158,18 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
const renderCode = !renderHTML && !renderMermaid && !renderPlantUML && !renderSVG;
const cannotRenderLineNumbers = !renderCode || showSoftWrap;
const renderLineNumbers = showLineNumbers && !cannotRenderLineNumbers;
// heuristic for language, and syntax highlight
const { highlightedCode, inferredCodeLanguage } = React.useMemo(() => {
const inferredCodeLanguage = inferCodeLanguage(blockTitle, blockCode);
const highlightedCode = highlightCode(inferredCodeLanguage, blockCode, renderLineNumbers);
return { highlightedCode, inferredCodeLanguage };
}, [inferCodeLanguage, blockTitle, blockCode, highlightCode, renderLineNumbers]);
const canCodePen = blockComplete && isCodePenSupported(inferredCodeLanguage, isSVG);
const canJSFiddle = blockComplete && isJSFiddleSupported(inferredCodeLanguage, blockCode);
const canStackBlitz = blockComplete && isStackBlitzSupported(inferredCodeLanguage);
@@ -307,7 +309,7 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
{/* Line Numbers toggle */}
{renderCode && (
<Tooltip title={optimizeLightweight ? null : 'Toggle Line Numbers'}>
<OverlayButton disabled={!canRenderLineNumbers || !renderCode} variant={(renderLineNumbers && renderCode) ? 'solid' : 'outlined'} onClick={() => setShowLineNumbers(!showLineNumbers)}>
<OverlayButton disabled={cannotRenderLineNumbers} variant={(renderLineNumbers && renderCode) ? 'solid' : 'outlined'} onClick={() => setShowLineNumbers(!showLineNumbers)}>
<NumbersRoundedIcon />
</OverlayButton>
</Tooltip>