From 36af1cdb7f150b28cdf15fc97977cbe9cb21451a Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 15 Oct 2024 21:47:27 -0400 Subject: [PATCH 1/3] Update brewRenderer.jsx --- client/homebrew/brewRenderer/brewRenderer.jsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 48f155820..689339349 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -1,7 +1,7 @@ /*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/ require('./brewRenderer.less'); const React = require('react'); -const { useState, useRef, useCallback } = React; +const { useState, useRef, useCallback, useMemo } = React; const _ = require('lodash'); const MarkdownLegacy = require('naturalcrit/markdownLegacy.js'); @@ -44,7 +44,7 @@ const BrewPage = (props)=>{ //v=====--------------------< Brew Renderer Component >-------------------=====v// -const renderedPages = []; +let renderedPages = []; let rawPages = []; const BrewRenderer = (props)=>{ @@ -110,6 +110,8 @@ const BrewRenderer = (props)=>{ return
${cleanStyle} ` }} />; }; + const renderedStyle = useMemo(()=> renderStyle(), [props.style.length, props.themeBundle]); + const renderPage = (pageText, index)=>{ if(props.renderer == 'legacy') { const html = MarkdownLegacy.render(pageText); @@ -122,6 +124,7 @@ const BrewRenderer = (props)=>{ }; const renderPages = ()=>{ + console.log("renderPages") if(props.errors && props.errors.length) return renderedPages; @@ -139,6 +142,8 @@ const BrewRenderer = (props)=>{ return renderedPages; }; + renderedPages = useMemo(() => renderPages(), [props.text.length]); + const handleControlKeys = (e)=>{ if(!(e.ctrlKey || e.metaKey)) return; const P_KEY = 80; @@ -214,9 +219,9 @@ const BrewRenderer = (props)=>{ {state.isMounted && <> - {renderStyle()} + {renderedStyle}
- {renderPages()} + {renderedPages}
} From 321bbba4b8b02077b42732f03c95d2c88c919043 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 15 Oct 2024 22:07:41 -0400 Subject: [PATCH 2/3] Rearrange --- client/homebrew/brewRenderer/brewRenderer.jsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 689339349..8f8752a5b 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -110,8 +110,6 @@ const BrewRenderer = (props)=>{ return
${cleanStyle} ` }} />; }; - const renderedStyle = useMemo(()=> renderStyle(), [props.style.length, props.themeBundle]); - const renderPage = (pageText, index)=>{ if(props.renderer == 'legacy') { const html = MarkdownLegacy.render(pageText); @@ -142,8 +140,6 @@ const BrewRenderer = (props)=>{ return renderedPages; }; - renderedPages = useMemo(() => renderPages(), [props.text.length]); - const handleControlKeys = (e)=>{ if(!(e.ctrlKey || e.metaKey)) return; const P_KEY = 80; @@ -184,6 +180,9 @@ const BrewRenderer = (props)=>{ styleObject.backgroundImage = `url("data:image/svg+xml;utf8,${global.config.deployment}")`; } + const renderedStyle = useMemo(()=> renderStyle(), [props.style.length, props.themeBundle]); + renderedPages = useMemo(() => renderPages(), [props.text.length]); + return ( <> {/*render dummy page while iFrame is mounting.*/} From f1aeea18d48cdcb405f2d07a5668188399f7c5e5 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 15 Oct 2024 22:07:55 -0400 Subject: [PATCH 3/3] Only jump when on `text` panel --- client/homebrew/editor/editor.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 13c22fb81..9fef72cbb 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -314,7 +314,7 @@ const Editor = createClass({ }, brewJump : function(targetPage=this.props.currentEditorCursorPageNum, smooth=true){ - if(!window || isJumping) + if(!window || !this.isText() || isJumping) return; // Get current brewRenderer scroll position and calculate target position @@ -355,7 +355,7 @@ const Editor = createClass({ }, sourceJump : function(targetPage=this.props.currentBrewRendererPageNum, smooth=true){ - if(!this.isText || isJumping) + if(!this.isText() || isJumping) return; const textSplit = this.props.renderer == 'V3' ? /^\\page$/gm : /\\page/;