add pagename and title

This commit is contained in:
Víctor Losada Hernández
2026-10-10 01:10:10 +02:00
parent efef243d2b
commit 58dedde541
8 changed files with 28 additions and 38 deletions
+1 -1
View File
@@ -80,7 +80,7 @@ const Homebrew = (props)=>{
<Route path='/new' element={<WithRoute el={NewPage} userThemes={userThemes}/> } />
<Route path='/user/:username' element={<WithRoute el={UserPage} brews={brews} />} />
<Route path='/vault' element={<WithRoute el={VaultPage}/>}/>
<Route path='/changelog' element={<WithRoute el={SharePage} brew={brew} disableMeta={true} />} />
<Route path='/changelog' element={<WithRoute el={SharePage} brew={brew} pageName={'changelog'} title={'Changelog: version ' + version} disableMeta={true} />} />
<Route path='/faq' element={<WithRoute el={SharePage} brew={brew} disableMeta={true} />} />
<Route path='/migrate' element={<WithRoute el={SharePage} brew={brew} disableMeta={true} />} />
<Route path='/account' element={<WithRoute el={AccountPage} brew={brew} accountDetails={brew.accountDetails} />} />
-3
View File
@@ -5,9 +5,6 @@ import Nav from './nav.jsx';
export default function(props){
return <div className='nav-section'>
<Nav.item color='grey' icon='fas fa-question-circle'>
need help?
</Nav.item>
<Nav.item color='red' icon='fas fa-fw fa-bug'
href={`https://www.reddit.com/r/homebrewery/submit?selftext=true&text=${encodeURIComponent(dedent`
- **Browser(s)** :
+1 -1
View File
@@ -68,7 +68,7 @@ const MetadataNav = createReactClass({
},
render : function(){
if(!this.props.brew.shareId) return <></>
if(!this.props.brew?.shareId) return <></>
return <Nav.item icon='fas fa-info-circle' color='grey' className='metadata'
onClick={()=>this.toggleMetaWindow()}>
+20 -26
View File
@@ -12,12 +12,13 @@ import AccountNavItem from './account.navitem.jsx';
const { both: RecentNavItem } = RecentNavItems;
import Nav from './nav.jsx';
const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
const Navbar = ({ children, brew, pageName, editor, title, currentPage, props }) => {
const version = global.version || '0.0.0';
const isMac = navigator.platform.toUpperCase().includes('MAC');
const mod = isMac ? '⌘' : 'Ctrl';
const isBrew = !!brew && brew.shareId;
const isBrew = !!brew &&(brew.shareId || pageName === 'homePage' || pageName === 'newPage');
const account = global.account;
const generalPage = pageName === 'vaultPage' || pageName === 'changelog' || pageName === 'faq' || pageName === 'migrate';
const slots = React.Children.toArray(children).reduce((acc, child) => {
if (React.isValidElement(child)) {
@@ -28,16 +29,6 @@ const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
return acc;
}, {});
const renderTitle = () => {
const cleanTitle = title.replace(/^\/+|\/+$/g, '');
if (!isBrew) return <Nav.item className='brewTitle'>{cleanTitle || 'Home'}</Nav.item>;
return (
<Nav.item className='brewTitle' style={title.includes('edit') ? { cursor: 'default' } : {}}>
{brew.title}
</Nav.item>
);
};
const renderDownloadLink = () => {
if (!isBrew) return <Nav.item disabled={!isBrew}>Get txt</Nav.item>;
let shareLink = brew.shareId;
@@ -65,14 +56,15 @@ const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
return (
<Dropdown groupName={'File'} customTrigger={<>File</>} icon={null} key={'file'}>
<NewBrewNavItem />
<Nav.item className='beta' disabled={!isBrew}>
Save document
</Nav.item>
<div className='nav-section'>
<PrintNavItem disabled={!isBrew} />
{renderDownloadLink()}
</div>
<div className='nav-section'>
<Nav.item href={`/new/${brew?.shareId}`} disabled={!isBrew}>
Clone File
</Nav.item>
{/*
<Nav.item className='beta' disabled={!isBrew}>
Delete File
</Nav.item>
@@ -82,6 +74,7 @@ const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
<Nav.item className='beta' disabled={!isBrew}>
Transfer File
</Nav.item>
*/}
</div>
{slots.file?.props.children}
</Dropdown>
@@ -92,32 +85,32 @@ const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
return (
<Dropdown groupName={'Edit'} customTrigger={<>Edit</>} icon={null} key={'edit'}>
<div className='nav-section'>
<Nav.item onClick={() => editor?.undo()} kbd={mod + ' + z'} disabled={!isBrew}>
<Nav.item onClick={() => editor?.undo()} kbd={mod + ' + z'} disabled={!editor}>
Undo
</Nav.item>
<Nav.item onClick={() => editor?.redo()} kbd={mod + ' + Shift + z'} disabled={!isBrew}>
<Nav.item onClick={() => editor?.redo()} kbd={mod + ' + Shift + z'} disabled={!editor}>
Redo
</Nav.item>
<Nav.item onClick={() => editor?.find()} kbd={mod + ' + f'} disabled={!isBrew}>
<Nav.item onClick={() => editor?.find()} kbd={mod + ' + f'} disabled={!editor}>
Find / Replace
</Nav.item>
<Nav.item onClick={() => editor?.foldCode()} disabled={!isBrew}>
<Nav.item onClick={() => editor?.foldCode()} disabled={!editor}>
Fold all lines
</Nav.item>
<Nav.item onClick={() => editor?.unfoldCode()} disabled={!isBrew}>
<Nav.item onClick={() => editor?.unfoldCode()} disabled={!editor}>
Unfold all lines
</Nav.item>
</div>
{slots.edit?.props.children}
{/*
<div className="nav-section">
<Nav.item onClick={()=>editor?.cut()} kbd={mod + ' + x'} disabled={!isBrew}>
<Nav.item onClick={()=>editor?.cut()} kbd={mod + ' + x'} disabled={!editor}>
cut
</Nav.item>
<Nav.item onClick={()=>editor?.copy()} kbd={mod + ' + c'} disabled={!isBrew}>
<Nav.item onClick={()=>editor?.copy()} kbd={mod + ' + c'} disabled={!editor}>
copy
</Nav.item>
<Nav.item onClick={()=>editor?.paste()} kbd={mod + ' + v'} disabled={!isBrew}>
<Nav.item onClick={()=>editor?.paste()} kbd={mod + ' + v'} disabled={!editor}>
paste
</Nav.item>
</div>
@@ -130,15 +123,15 @@ const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
return (
<Dropdown groupName={'Go'} customTrigger={<>Go</>} icon={null} key={'go'}>
{renderEditLink()}
<ShareNavItem brew={brew} disabled={!isBrew} currentPage={'' /*how the hell do i get it here?*/} />
<ShareNavItem brew={brew} disabled={!brew?.shareId} currentPage={'' /*how the hell do i get it here?*/} />
<div className='nav-section'>
<Nav.item className='patreon' newTab={true} href='https://www.patreon.com/NaturalCrit' color='green' icon='fas fa-heart'>
Patreon
</Nav.item>
<Nav.item color='purple' icon='fas fa-dungeon' href='/vault' newTab={false} rel='noopener noreferrer'>
<Nav.item icon='fas fa-dungeon' href='/vault' newTab={false} rel='noopener noreferrer'>
Vault
</Nav.item>
<Nav.item color='purple' icon='fas fa-dungeon' href='/changelog' newTab={false} rel='noopener noreferrer'>
<Nav.item icon='far fa-file-alt' href='/changelog' newTab={false} rel='noopener noreferrer'>
Changelog
</Nav.item>
</div>
@@ -162,6 +155,7 @@ const Navbar = ({ children, brew, pageName, editor, title = '', props }) => {
<HelpNavItem />
</Dropdown>
</ul>
{generalPage && <Nav.item className='brewTitle'>{title}</Nav.item>}
<MetadataNavItem brew={brew}></MetadataNavItem>
<ul>
<Dropdown groupName={account.username} customTrigger={<>{account.username}</>} icon={null} key={account.username}>
+2 -2
View File
@@ -1,6 +1,6 @@
@import '@sharedStyles/core.less';
@navbarHeight: 28px;
@navbarHeight: 29px;
@viewerToolsHeight: 32px;
@keyframes glideDropDown {
@@ -203,7 +203,7 @@
.navItem,
.menu-wrapper {
--activeTriggerColor: #666;
&:has(ul):not(:has(ul button:not(:disabled))) {
&:has(ul):not(:has(ul :is(button, a):not(:disabled))) {
color: grey; //faux disabled if all buttons are disabled
}
&:hover {
@@ -5,7 +5,6 @@ const Meta = Headtags.Meta;
import BrewRenderer from '../../brewRenderer/brewRenderer.jsx';
import Navbar from '../../navbar/navbar.jsx';
import Nav from '../../navbar/nav.jsx';
import request from '../../utils/request-middleware.js';
import { DEFAULT_BREW_LOAD } from '../../../../server/brewDefaults.js';
@@ -64,11 +63,11 @@ const SharePage = (props)=>{
document.removeEventListener('keydown', handleControlKeys);
};
}, []);
console.log('brew: ',currentBrew);
return (
<div className='sharePage sitePage'>
<Meta name='robots' content='noindex, nofollow' />
<Navbar brew={currentBrew} pageName='sharePage' />
<Navbar brew={currentBrew} pageName={props.pageName || 'sharePage'} title={props.title || 'sharePage'} />
<div className='content'>
<BrewRenderer
text={currentBrew.text}
@@ -393,7 +393,7 @@ const VaultPage = (props)=>{
<div className='sitePage vaultPage'>
<link href='/themes/V3/Blank/style.css' rel='stylesheet' />
<link href='/themes/V3/5ePHB/style.css' rel='stylesheet' />
<Navbar pageName={'vaultPage'}/>
<Navbar pageName={'vaultPage'} title='Vault: Search for brews'/>
<div className='content'>
<SplitPane showDividerButtons={false}>
<div className='form dataGroup'>{renderForm()}</div>
@@ -379,7 +379,7 @@ export default function useCommonEditPageFunctions(dependencies) {
<div className= {`${pageName} sitePage`}>
<Meta name='google-site-verification' content='NwnAQSSJZzAT7N-p5MY6ydQ7Njm67dtbu73ZSyE5Fy4' />
{(pageName == 'editPage') && <Meta name='robots' content='noindex, nofollow' />}
<Navbar brew={currentBrew} editor={editorRef.current} pageName={pageName} account={global.account}>
<Navbar brew={currentBrew} editor={editorRef.current} pageName={pageName} account={global.account} currentPage={currentBrewRendererPageNum}>
<Navbar.File>
{error
? (<ErrorNavItem error={error} clearError={clearError} />) : (<Dropdown className='save-menu' customTrigger={<>Save</>}>