import './sharePage.less'; import React, { useState, useEffect, useCallback } from 'react'; import { Meta } from 'vitreum/headtags'; import Nav from 'client/homebrew/navbar/nav.jsx'; import Navbar from 'client/homebrew/navbar/navbar.jsx'; import MetadataNav from 'client/homebrew/navbar/metadata.navitem.jsx'; import PrintNavItem from 'client/homebrew/navbar/print.navitem.jsx'; import { both as RecentNavItem } from 'client/homebrew/navbar/recent.navitem.jsx'; import Account from 'client/homebrew/navbar/account.navitem.jsx'; import BrewRenderer from '../../brewRenderer/brewRenderer.jsx'; 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 [themeBundle, setThemeBundle] = useState({}); const [currentBrewRendererPageNum, setCurrentBrewRendererPageNum] = useState(1); const handleBrewRendererPageChange = useCallback((pageNumber)=>{ setCurrentBrewRendererPageNum(pageNumber); }, []); const handleControlKeys = (e)=>{ if(!(e.ctrlKey || e.metaKey)) return; const P_KEY = 80; if(e.keyCode === P_KEY) { printCurrentBrew(); e.stopPropagation(); e.preventDefault(); } }; useEffect(()=>{ document.addEventListener('keydown', handleControlKeys); fetchThemeBundle(undefined, setThemeBundle, brew.renderer, brew.theme); return ()=>{ document.removeEventListener('keydown', handleControlKeys); }; }, []); const processShareId = ()=>{ return brew.googleId && !brew.stubbed ? brew.googleId + brew.shareId : brew.shareId; }; const renderEditLink = ()=>{ if(!brew.editId) return null; const editLink = brew.googleId && ! brew.stubbed ? brew.googleId + brew.editId : brew.editId; return ( edit ); }; const titleEl = ( {brew.title} ); return (
{disableMeta ? titleEl : {titleEl}} {brew.shareId && ( <> source view {renderEditLink()} download clone to new )}
); }; export default SharePage;