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,")`;
+ styleObject.backgroundImage = `url("data:image/svg+xml;utf8,")`;
}
+ 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"