0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-12 04:32:41 +00:00

Update brewRenderer.jsx

This commit is contained in:
Trevor Buckner
2024-10-15 21:47:27 -04:00
parent 0813daf01f
commit 36af1cdb7f

View File

@@ -1,7 +1,7 @@
/*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/ /*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/
require('./brewRenderer.less'); require('./brewRenderer.less');
const React = require('react'); const React = require('react');
const { useState, useRef, useCallback } = React; const { useState, useRef, useCallback, useMemo } = React;
const _ = require('lodash'); const _ = require('lodash');
const MarkdownLegacy = require('naturalcrit/markdownLegacy.js'); const MarkdownLegacy = require('naturalcrit/markdownLegacy.js');
@@ -44,7 +44,7 @@ const BrewPage = (props)=>{
//v=====--------------------< Brew Renderer Component >-------------------=====v// //v=====--------------------< Brew Renderer Component >-------------------=====v//
const renderedPages = []; let renderedPages = [];
let rawPages = []; let rawPages = [];
const BrewRenderer = (props)=>{ const BrewRenderer = (props)=>{
@@ -110,6 +110,8 @@ const BrewRenderer = (props)=>{
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `${themeStyles} \n\n <style> ${cleanStyle} </style>` }} />; return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `${themeStyles} \n\n <style> ${cleanStyle} </style>` }} />;
}; };
const renderedStyle = useMemo(()=> renderStyle(), [props.style.length, props.themeBundle]);
const renderPage = (pageText, index)=>{ const renderPage = (pageText, index)=>{
if(props.renderer == 'legacy') { if(props.renderer == 'legacy') {
const html = MarkdownLegacy.render(pageText); const html = MarkdownLegacy.render(pageText);
@@ -122,6 +124,7 @@ const BrewRenderer = (props)=>{
}; };
const renderPages = ()=>{ const renderPages = ()=>{
console.log("renderPages")
if(props.errors && props.errors.length) if(props.errors && props.errors.length)
return renderedPages; return renderedPages;
@@ -139,6 +142,8 @@ const BrewRenderer = (props)=>{
return renderedPages; return renderedPages;
}; };
renderedPages = useMemo(() => renderPages(), [props.text.length]);
const handleControlKeys = (e)=>{ const handleControlKeys = (e)=>{
if(!(e.ctrlKey || e.metaKey)) return; if(!(e.ctrlKey || e.metaKey)) return;
const P_KEY = 80; const P_KEY = 80;
@@ -214,9 +219,9 @@ const BrewRenderer = (props)=>{
{state.isMounted {state.isMounted
&& &&
<> <>
{renderStyle()} {renderedStyle}
<div className='pages' lang={`${props.lang || 'en'}`} style={{ zoom: `${state.zoom}%` }}> <div className='pages' lang={`${props.lang || 'en'}`} style={{ zoom: `${state.zoom}%` }}>
{renderPages()} {renderedPages}
</div> </div>
</> </>
} }