diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index de8d2a803..c2094be57 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'); @@ -43,7 +43,7 @@ const BrewPage = (props)=>{ }; //v=====--------------------< Brew Renderer Component >-------------------=====v// -const renderedPages = []; +let renderedPages = []; let rawPages = []; const BrewRenderer = (props)=>{ @@ -221,9 +221,12 @@ const BrewRenderer = (props)=>{ const styleObject = {}; if(global.config.deployment) { - styleObject.backgroundImage = `url("data:image/svg+xml;utf8,${global.config.deployment}")`; + 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.*/} @@ -259,9 +262,9 @@ const BrewRenderer = (props)=>{ {state.isMounted && <> - {renderStyle()} + {renderedStyle}
- {renderPages()} + {renderedPages}
} 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/; diff --git a/package.json b/package.json index 5e7191353..a4c6ee38a 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-frame-component": "^4.1.3", - "react-router-dom": "6.26.2", + "react-router-dom": "6.27.0", "sanitize-filename": "1.6.3", "superagent": "^10.1.0", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" @@ -135,7 +135,7 @@ "jest": "^29.7.0", "jest-expect-message": "^1.1.3", "postcss-less": "^6.0.0", - "stylelint": "^16.9.0", + "stylelint": "^16.10.0", "stylelint-config-recess-order": "^5.1.1", "stylelint-config-recommended": "^14.0.1", "supertest": "^7.0.0"