0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-08 20:23:39 +00:00

Move Header Navigation button to Toolbar

This commit is contained in:
G.Ambatte
2025-01-06 22:30:03 +13:00
parent 34f104b406
commit cf16566da8
4 changed files with 16 additions and 26 deletions

View File

@@ -103,7 +103,6 @@ const BrewRenderer = (props)=>{
currentBrewRendererPageNum : 1, currentBrewRendererPageNum : 1,
themeBundle : {}, themeBundle : {},
onPageChange : ()=>{}, onPageChange : ()=>{},
showHeaderNav : false,
...props ...props
}; };
@@ -121,6 +120,8 @@ const BrewRenderer = (props)=>{
pageShadows : true pageShadows : true
}); });
const [headerState, setHeaderState] = useState(false);
const mainRef = useRef(null); const mainRef = useRef(null);
const pagesRef = useRef(null); const pagesRef = useRef(null);
@@ -294,7 +295,7 @@ const BrewRenderer = (props)=>{
<NotificationPopup /> <NotificationPopup />
</div> </div>
<ToolBar displayOptions={displayOptions} onDisplayOptionsChange={handleDisplayOptionsChange} visiblePages={state.visiblePages.length > 0 ? state.visiblePages : [state.centerPage]} totalPages={rawPages.length}/> <ToolBar displayOptions={displayOptions} onDisplayOptionsChange={handleDisplayOptionsChange} visiblePages={state.visiblePages.length > 0 ? state.visiblePages : [state.centerPage]} totalPages={rawPages.length} headerState={headerState} setHeaderState={setHeaderState}/>
{/*render in iFrame so broken code doesn't crash the site.*/} {/*render in iFrame so broken code doesn't crash the site.*/}
<Frame id='BrewRenderer' initialContent={INITIAL_CONTENT} <Frame id='BrewRenderer' initialContent={INITIAL_CONTENT}
@@ -319,7 +320,7 @@ const BrewRenderer = (props)=>{
</> </>
} }
</div> </div>
{props.showHeaderNav ? <HeaderNav ref={pagesRef} /> : <></>} {headerState ? <HeaderNav ref={pagesRef} /> : <></>}
</Frame> </Frame>
</> </>
); );

View File

@@ -8,17 +8,6 @@ const MAX_TEXT_LENGTH = 40;
const HeaderNav = React.forwardRef(({}, pagesRef)=>{ const HeaderNav = React.forwardRef(({}, pagesRef)=>{
const [state, setState] = React.useState({
showHeaderNav : false
});
const toggleHeaderNav = ()=>{
setState((prevState)=>({
...prevState,
showHeaderNav : !prevState.showHeaderNav
}));
};
const renderHeaderLinks = ()=>{ const renderHeaderLinks = ()=>{
if(!pagesRef.current) return; if(!pagesRef.current) return;
const elements = pagesRef.current.querySelectorAll('[id]'); const elements = pagesRef.current.querySelectorAll('[id]');
@@ -56,13 +45,8 @@ const HeaderNav = React.forwardRef(({}, pagesRef)=>{
}; };
return <div className={`headerNav ${state.showHeaderNav ? 'active' : ''}`}> return <div className='headerNav'>
<i {renderHeaderLinks()}
className={`navIcon ${state.showHeaderNav ? 'active fa-solid' : 'fa-regular'} fa-rectangle-list`}
onClick={toggleHeaderNav}
title='Navigate by Header'
></i>
{state.showHeaderNav && renderHeaderLinks()}
</div>; </div>;
} }
); );

View File

@@ -9,7 +9,7 @@ import { Anchored, AnchoredBox, AnchoredTrigger } from '../../../components/Anch
const MAX_ZOOM = 300; const MAX_ZOOM = 300;
const MIN_ZOOM = 10; const MIN_ZOOM = 10;
const ToolBar = ({ displayOptions, onDisplayOptionsChange, visiblePages, totalPages })=>{ const ToolBar = ({ displayOptions, onDisplayOptionsChange, visiblePages, totalPages, headerState, setHeaderState })=>{
const [pageNum, setPageNum] = useState(1); const [pageNum, setPageNum] = useState(1);
const [toolsVisible, setToolsVisible] = useState(true); const [toolsVisible, setToolsVisible] = useState(true);
@@ -76,7 +76,10 @@ const ToolBar = ({ displayOptions, onDisplayOptionsChange, visiblePages, totalPa
return ( return (
<div id='preview-toolbar' className={`toolBar ${toolsVisible ? 'visible' : 'hidden'}`} role='toolbar'> <div id='preview-toolbar' className={`toolBar ${toolsVisible ? 'visible' : 'hidden'}`} role='toolbar'>
<button className='toggleButton' title={`${toolsVisible ? 'Hide' : 'Show'} Preview Toolbar`} onClick={()=>{setToolsVisible(!toolsVisible);}}><i className='fas fa-glasses' /></button> <div className='toggleButton'>
<button title={`${toolsVisible ? 'Hide' : 'Show'} Preview Toolbar`} onClick={()=>{setToolsVisible(!toolsVisible);}}><i className='fas fa-glasses' /></button>
<button title={`${headerState ? 'Hide' : 'Show'} Header Navigation`} onClick={()=>{setHeaderState(!headerState);}}><i className='fas fa-rectangle-list' /></button>
</div>
{/*v=====----------------------< Zoom Controls >---------------------=====v*/} {/*v=====----------------------< Zoom Controls >---------------------=====v*/}
<div className='group' role='group' aria-label='Zoom' aria-hidden={!toolsVisible}> <div className='group' role='group' aria-label='Zoom' aria-hidden={!toolsVisible}>
<button <button

View File

@@ -166,7 +166,7 @@
&.hidden { &.hidden {
flex-wrap : nowrap; flex-wrap : nowrap;
width : 32px; width : 92px;
overflow : hidden; overflow : hidden;
background-color : unset; background-color : unset;
opacity : 0.5; opacity : 0.5;
@@ -178,10 +178,12 @@
} }
} }
button.toggleButton { .toggleButton {
position : absolute; position : absolute;
left : 0; left : 0;
z-index : 5; z-index : 5;
width : 32px; width : 32px;
min-width : unset; min-width : unset;
height : 100%;
display : flex;
} }