diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 771a6aa31..22bb734fb 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -102,6 +102,7 @@ const BrewRenderer = (props)=>{ currentBrewRendererPageNum : 1, themeBundle : {}, onPageChange : ()=>{}, + showToolbar : true, ...props }; @@ -297,6 +298,8 @@ const BrewRenderer = (props)=>{ const renderedStyle = useMemo(()=>renderStyle(), [props.style, props.themeBundle]); renderedPages = useMemo(()=>renderPages(), [props.text, displayOptions]); + const toolbarEl = 0 ? state.visiblePages : [state.centerPage]} totalPages={rawPages.length} headerState={headerState} setHeaderState={setHeaderState}/>; + return ( <> {/*render dummy page while iFrame is mounting.*/} @@ -314,7 +317,7 @@ const BrewRenderer = (props)=>{ - 0 ? state.visiblePages : [state.centerPage]} totalPages={rawPages.length} headerState={headerState} setHeaderState={setHeaderState}/> + {props.showToolbar ? toolbarEl : ''} {/*render in iFrame so broken code doesn't crash the site.*/} {
} /> - } /> + } /> + } /> } /> } /> } /> diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 62778778f..25b9302ef 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -15,7 +15,7 @@ import { DEFAULT_BREW_LOAD } from '../../../../server/brewDefaults.js'; import { printCurrentBrew, fetchThemeBundle } from '../../../../shared/helpers.js'; const SharePage = (props)=>{ - const { brew = DEFAULT_BREW_LOAD, disableMeta = false } = props; + const { brew = DEFAULT_BREW_LOAD, disableMeta = false, share = true } = props; const [themeBundle, setThemeBundle] = useState({}); const [currentBrewRendererPageNum, setCurrentBrewRendererPageNum] = useState(1); @@ -65,40 +65,43 @@ const SharePage = (props)=>{ ); + const showNav = ( + + + {disableMeta ? titleEl : {titleEl}} + + + + {brew.shareId && ( + <> + + + + source + + + view + + {renderEditLink()} + + download + + + clone to new + + + + )} + + + + + ); + return (
- - - {disableMeta ? titleEl : {titleEl}} - - - - {brew.shareId && ( - <> - - - - source - - - view - - {renderEditLink()} - - download - - - clone to new - - - - )} - - - - - + {share ? showNav : ''}
{ onPageChange={handleBrewRendererPageChange} currentBrewRendererPageNum={currentBrewRendererPageNum} allowPrint={true} + showToolbar={share} />
diff --git a/server/app.js b/server/app.js index 1be4cbe77..2cdf6ca0b 100644 --- a/server/app.js +++ b/server/app.js @@ -454,8 +454,8 @@ app.get('/new', asyncHandler(async(req, res, next)=>{ return next(); })); -//Share Page -app.get('/share/:id', dbCheck, asyncHandler(getBrew('share')), asyncHandler(async (req, res, next)=>{ + +const shareEmbedCommon = async (req)=>{ const { brew } = req; req.ogMeta = { ...defaultMetaTags, title : `${req.brew.title || 'Untitled Brew'} - ${req.brew.authors[0] || 'No author.'}`, @@ -478,6 +478,17 @@ app.get('/share/:id', dbCheck, asyncHandler(getBrew('share')), asyncHandler(asyn brew.authors.includes(req.account?.username) ? sanitizeBrew(req.brew, 'shareAuthor') : sanitizeBrew(req.brew, 'share'); splitTextStyleAndMetadata(req.brew); +}; + +//Share Page +app.get('/share/:id', dbCheck, asyncHandler(getBrew('share')), asyncHandler(async (req, res, next)=>{ + shareEmbedCommon(req); + return next(); +})); + +//Embed Page +app.get('/embed/:id', dbCheck, asyncHandler(getBrew('share')), asyncHandler(async (req, res, next)=>{ + shareEmbedCommon(req); return next(); }));