mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-11-05 15:58:47 +00:00
add pagename and title
This commit is contained in:
@@ -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} />} />
|
||||
|
||||
@@ -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)** :
|
||||
|
||||
@@ -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()}>
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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</>}>
|
||||
|
||||
Reference in New Issue
Block a user