feat(components): Updated workbench to latest style changes
This commit is contained in:
parent
588a6ccb69
commit
9ec9377295
6 changed files with 243 additions and 163 deletions
|
@ -5,6 +5,7 @@ import Design from '../Design'
|
||||||
import DraftConfigurator from '../../DraftConfigurator'
|
import DraftConfigurator from '../../DraftConfigurator'
|
||||||
import fileSaver from 'file-saver'
|
import fileSaver from 'file-saver'
|
||||||
import theme from '@freesewing/plugin-theme'
|
import theme from '@freesewing/plugin-theme'
|
||||||
|
import Icon from '../../Icon'
|
||||||
import IconButton from '@material-ui/core/IconButton'
|
import IconButton from '@material-ui/core/IconButton'
|
||||||
import DesignIcon from '@material-ui/icons/Fingerprint'
|
import DesignIcon from '@material-ui/icons/Fingerprint'
|
||||||
import DumpIcon from '@material-ui/icons/LocalSee'
|
import DumpIcon from '@material-ui/icons/LocalSee'
|
||||||
|
@ -12,8 +13,10 @@ import ClearIcon from '@material-ui/icons/HighlightOff'
|
||||||
import AdvancedIcon from '@material-ui/icons/Policy'
|
import AdvancedIcon from '@material-ui/icons/Policy'
|
||||||
import PaperlessIcon from '@material-ui/icons/Nature'
|
import PaperlessIcon from '@material-ui/icons/Nature'
|
||||||
import CompleteIcon from '@material-ui/icons/Style'
|
import CompleteIcon from '@material-ui/icons/Style'
|
||||||
import HideIcon from '@material-ui/icons/ChevronLeft'
|
import { FormattedMessage } from 'react-intl'
|
||||||
import Events from './Events'
|
import Events from './Events'
|
||||||
|
import ActionsIcon from '@material-ui/icons/PlayCircleOutline'
|
||||||
|
import Switch from '@material-ui/core/Switch';
|
||||||
|
|
||||||
const DraftPattern = (props) => {
|
const DraftPattern = (props) => {
|
||||||
const styles = {
|
const styles = {
|
||||||
|
@ -48,65 +51,89 @@ const DraftPattern = (props) => {
|
||||||
const color = (check) => (check ? '#40c057' : '#fa5252')
|
const color = (check) => (check ? '#40c057' : '#fa5252')
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<ul id='draft-config'>
|
||||||
<div style={{ margin: '1rem auto 0', textAlign: 'center' }}>
|
<li>
|
||||||
<IconButton onClick={() => props.setHideAside(true)} title="Hide sidebar" {...iconProps}>
|
<span title='Actions'>
|
||||||
<HideIcon />
|
<ActionsIcon />
|
||||||
</IconButton>
|
<FormattedMessage id="app.actions" />
|
||||||
<IconButton
|
</span>
|
||||||
onClick={() => props.setDesign(!props.design)}
|
<ul className="config level-1">
|
||||||
title="Toggle design mode"
|
<li className={`action toggle ${props.design ? 'on' : 'off'}`}>
|
||||||
{...iconProps}
|
<span onClick={() => props.setDesign(!props.design)} title='Toggle design mode'>
|
||||||
>
|
<DesignIcon />
|
||||||
<span style={{ color: color(props.design) }}>
|
<FormattedMessage
|
||||||
<DesignIcon />
|
id={ props.design ? 'cfp.thingIsEnabled' : 'cfp.thingIsDisabled' }
|
||||||
</span>
|
values={{ thing: <FormattedMessage id='cfp.designMode' /> }}
|
||||||
</IconButton>
|
/>
|
||||||
{props.design && (
|
<Switch
|
||||||
<IconButton
|
color="primary"
|
||||||
onClick={() => props.raiseEvent('clearFocusAll', null)}
|
name="design"
|
||||||
title="Clear design mode"
|
checked={props.design}
|
||||||
{...iconProps}
|
onChange={() => props.setDesign(!props.design)}
|
||||||
>
|
/>
|
||||||
<ClearIcon color="primary" />
|
</span>
|
||||||
</IconButton>
|
</li>
|
||||||
)}
|
<li className={`action toggle ${props.gist.settings.advanced ? 'on' : 'off'}`}>
|
||||||
<IconButton
|
<span onClick={() => props.updateGist(!props.gist.settings.advanced, 'settings', 'advanced')} title='Toggle advanced settings'>
|
||||||
onClick={() => console.log(props.pattern)}
|
<AdvancedIcon />
|
||||||
title="console.log(pattern)"
|
<FormattedMessage
|
||||||
{...iconProps}
|
id={ props.gist.settings.advanced ? 'cfp.thingIsEnabled' : 'cfp.thingIsDisabled' }
|
||||||
>
|
values={{ thing: <FormattedMessage id='settings.advanced.title' /> }}
|
||||||
<DumpIcon color="primary" />
|
/>
|
||||||
</IconButton>
|
<Switch
|
||||||
|
|
color="primary"
|
||||||
<IconButton
|
name="advanced"
|
||||||
onClick={() => props.updateGist(!props.gist.settings.advanced, 'settings', 'advanced')}
|
checked={props.gist.settings.advanced || false}
|
||||||
title="Toggle advanced settings"
|
onClick={() => props.updateGist(!props.gist.settings.advanced, 'settings', 'advanced')}
|
||||||
{...iconProps}
|
/>
|
||||||
>
|
</span>
|
||||||
<span style={{ color: color(props.gist.settings.advanced) }}>
|
</li>
|
||||||
<AdvancedIcon />
|
<li className={`action toggle ${props.gist.settings.paperless ? 'on' : 'off'}`}>
|
||||||
</span>
|
<span onClick={() => props.updateGist(!props.gist.settings.paperless, 'settings', 'paperless')} title='Toggle paperless'>
|
||||||
</IconButton>
|
<PaperlessIcon />
|
||||||
<IconButton
|
<FormattedMessage
|
||||||
onClick={() => props.updateGist(!props.gist.settings.paperless, 'settings', 'paperless')}
|
id={ props.gist.settings.paperless ? 'cfp.thingIsEnabled' : 'cfp.thingIsDisabled' }
|
||||||
title="Toggle paperless"
|
values={{ thing: <FormattedMessage id='settings.paperless.title' /> }}
|
||||||
{...iconProps}
|
/>
|
||||||
>
|
<Switch
|
||||||
<span style={{ color: color(props.gist.settings.paperless) }}>
|
color="primary"
|
||||||
<PaperlessIcon />
|
name="paperless"
|
||||||
</span>
|
checked={props.gist.settings.paperless}
|
||||||
</IconButton>
|
onChange={() => props.updateGist(!props.gist.settings.paperless, 'settings', 'paperless')}
|
||||||
<IconButton
|
/>
|
||||||
onClick={() => props.updateGist(!props.gist.settings.complete, 'settings', 'complete')}
|
</span>
|
||||||
title="Toggle complete"
|
</li>
|
||||||
{...iconProps}
|
<li className={`action toggle ${props.gist.settings.complete ? 'on' : 'off'}`}>
|
||||||
>
|
<span onClick={() => props.updateGist(!props.gist.settings.complete, 'settings', 'complete')} title='Toggle complete'>
|
||||||
<span style={{ color: color(props.gist.settings.complete) }}>
|
<CompleteIcon />
|
||||||
<CompleteIcon />
|
<FormattedMessage
|
||||||
</span>
|
id={ props.gist.settings.complete ? 'cfp.thingIsEnabled' : 'cfp.thingIsDisabled' }
|
||||||
</IconButton>
|
values={{ thing: <FormattedMessage id='settings.complete.title' /> }}
|
||||||
</div>
|
/>
|
||||||
|
<Switch
|
||||||
|
color="primary"
|
||||||
|
name="complete"
|
||||||
|
checked={props.gist.settings.complete}
|
||||||
|
onChange={() => props.updateGist(!props.gist.settings.complete, 'settings', 'complete')}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<li className="action">
|
||||||
|
<span onClick={() => console.log(props.pattern)} title='Log pattern object to console'>
|
||||||
|
<DumpIcon color="primary" />
|
||||||
|
console.log(pattern)
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{props.design && (
|
||||||
|
<li className="action">
|
||||||
|
<span onClick={() => props.raiseEvent('clearFocusAll', null)} title='Clear design mode'>
|
||||||
|
<ClearIcon color="primary" />
|
||||||
|
<FormattedMessage id="cfp.clearDesignMode" />
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
)}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
{props.design && (
|
{props.design && (
|
||||||
<Design
|
<Design
|
||||||
focus={props.focus}
|
focus={props.focus}
|
||||||
|
@ -124,10 +151,10 @@ const DraftPattern = (props) => {
|
||||||
freesewing={props.freesewing}
|
freesewing={props.freesewing}
|
||||||
units={props.units || 'metric'}
|
units={props.units || 'metric'}
|
||||||
/>
|
/>
|
||||||
<div style={{ padding: '5px', marginTop: '1rem' }}>
|
<li className='zoombox'>
|
||||||
<Zoombox patternProps={props.patternProps} setViewBox={props.setViewBox} />
|
<Zoombox patternProps={props.patternProps} setViewBox={props.setViewBox} />
|
||||||
</div>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ const DraftPattern = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section>
|
<>
|
||||||
<Draft
|
<Draft
|
||||||
{...props.patternProps}
|
{...props.patternProps}
|
||||||
design={props.design}
|
design={props.design}
|
||||||
|
@ -47,7 +47,7 @@ const DraftPattern = (props) => {
|
||||||
className="freesewing draft shadow"
|
className="freesewing draft shadow"
|
||||||
/>
|
/>
|
||||||
<Events events={props.patternProps.events} />
|
<Events events={props.patternProps.events} />
|
||||||
</section>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
65
packages/components/src/Workbench/Footer.js
Normal file
65
packages/components/src/Workbench/Footer.js
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
import React from 'react'
|
||||||
|
import Logo from '../Logo'
|
||||||
|
|
||||||
|
const Footer = (props) => {
|
||||||
|
|
||||||
|
return (
|
||||||
|
<footer>
|
||||||
|
<div className="cols">
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li className="heading">
|
||||||
|
Wie ben jij?
|
||||||
|
</li>
|
||||||
|
<li>Ik ben <a href="https://github.com/joostdecock">Joost</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li className="heading">
|
||||||
|
Wat is dit?
|
||||||
|
</li>
|
||||||
|
<li>Lessen informatica, maar dan zonder dat geouwehoer dat je in een school te horen krijgt</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li className="heading">
|
||||||
|
Voor wie is het?
|
||||||
|
</li>
|
||||||
|
<li>Origineel voor Katleen en Sorcha, maar voor iedereen mag meedoen</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li className="heading">
|
||||||
|
Klopt er iets niet?
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Dan kan je dat gewoon <a href="https://github.com/joostdecock/cursus">
|
||||||
|
zelf aanpassen op Github
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="logo">
|
||||||
|
<a href="https://freesewing.org/" title='freesewing.org'>
|
||||||
|
<Logo size={100} />
|
||||||
|
</a>
|
||||||
|
<div className="name">
|
||||||
|
<span className="free">Free</span>Sewing
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="slogan">
|
||||||
|
Come for the sewing patterns
|
||||||
|
<br />
|
||||||
|
Stay for the community
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default React.memo(Footer)
|
|
@ -8,67 +8,46 @@ const Welcome = props => {
|
||||||
container: {
|
container: {
|
||||||
textAlign: "center",
|
textAlign: "center",
|
||||||
maxWidth: "500px",
|
maxWidth: "500px",
|
||||||
margin: "2vh auto"
|
margin: "5vh auto",
|
||||||
},
|
minHeight: "65vh"
|
||||||
title: {
|
|
||||||
fontFamily: "Roboto Condensed"
|
|
||||||
},
|
|
||||||
button: {
|
|
||||||
margin: "0.5rem"
|
|
||||||
},
|
},
|
||||||
bigButton: {
|
bigButton: {
|
||||||
margin: "0.5rem",
|
margin: "0.5rem",
|
||||||
width: "calc(100% - 1rem)"
|
width: "calc(100% - 3rem)"
|
||||||
},
|
},
|
||||||
footer: {
|
}
|
||||||
fontFamily: "Roboto Condensed",
|
|
||||||
position: "fixed",
|
|
||||||
bottom: "10px",
|
|
||||||
left: 0,
|
|
||||||
width: "100%",
|
|
||||||
fontSize: "90%"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<section style={styles.container}>
|
||||||
<div />
|
<Logo size={200} />
|
||||||
<div className="fs-sa">
|
<h1>
|
||||||
<section style={styles.container}>
|
<FormattedMessage id="app.welcome" />
|
||||||
<div>
|
</h1>
|
||||||
<Logo size={250} />
|
<p>
|
||||||
</div>
|
<FormattedMessage id="cfp.renderInBrowser" />
|
||||||
<h1 style={styles.title}>
|
<br />
|
||||||
<FormattedMessage id="app.welcome" />
|
<FormattedMessage id="cfp.weWillReRender" />
|
||||||
</h1>
|
</p>
|
||||||
<p>
|
<Button
|
||||||
<FormattedMessage id="cfp.renderInBrowser" />
|
style={styles.bigButton}
|
||||||
<br />
|
variant="contained"
|
||||||
<FormattedMessage id="cfp.weWillReRender" />
|
size="large"
|
||||||
</p>
|
color="primary"
|
||||||
<Button
|
onClick={() => props.setDisplay("draft")}
|
||||||
style={styles.bigButton}
|
>
|
||||||
variant="contained"
|
<FormattedMessage id="cfp.draftYourPattern" />
|
||||||
size="large"
|
</Button>
|
||||||
color="primary"
|
<Button
|
||||||
onClick={() => props.setDisplay("draft")}
|
style={styles.bigButton}
|
||||||
>
|
variant="contained"
|
||||||
<FormattedMessage id="cfp.draftYourPattern" />
|
size="large"
|
||||||
</Button>
|
color="primary"
|
||||||
<Button
|
onClick={() => props.setDisplay("sample")}
|
||||||
style={styles.bigButton}
|
>
|
||||||
variant="contained"
|
<FormattedMessage id="cfp.testYourPattern" />
|
||||||
size="large"
|
</Button>
|
||||||
color="primary"
|
</section>
|
||||||
onClick={() => props.setDisplay("sample")}
|
)
|
||||||
>
|
}
|
||||||
<FormattedMessage id="cfp.testYourPattern" />
|
|
||||||
</Button>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
<div />
|
|
||||||
</React.Fragment>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Welcome;
|
export default Welcome;
|
||||||
|
|
|
@ -24,6 +24,7 @@ import svgattrPlugin from '@freesewing/plugin-svgattr'
|
||||||
import Xport from './Export'
|
import Xport from './Export'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import yaml from 'yaml'
|
import yaml from 'yaml'
|
||||||
|
import Footer from './Footer'
|
||||||
|
|
||||||
const icons = {
|
const icons = {
|
||||||
draft: <DraftIcon />,
|
draft: <DraftIcon />,
|
||||||
|
@ -32,6 +33,8 @@ const icons = {
|
||||||
xport: <ExportIcon />
|
xport: <ExportIcon />
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const extraTranslations = {}
|
||||||
|
|
||||||
const Workbench = ({
|
const Workbench = ({
|
||||||
updateGist,
|
updateGist,
|
||||||
setLanguage,
|
setLanguage,
|
||||||
|
@ -44,8 +47,13 @@ const Workbench = ({
|
||||||
units = 'metric',
|
units = 'metric',
|
||||||
translations = false,
|
translations = false,
|
||||||
addTranslations,
|
addTranslations,
|
||||||
recreate = false
|
recreate = false,
|
||||||
}) => {
|
}) => {
|
||||||
|
|
||||||
|
if (translations) {
|
||||||
|
for (let key in translations) extraTranslations[key] = translations[key]
|
||||||
|
}
|
||||||
|
|
||||||
const [display, setDisplay] = useState(null)
|
const [display, setDisplay] = useState(null)
|
||||||
const [theme, setTheme] = useState('light')
|
const [theme, setTheme] = useState('light')
|
||||||
const [measurements, setMeasurements] = useState(null)
|
const [measurements, setMeasurements] = useState(null)
|
||||||
|
@ -164,7 +172,7 @@ const Workbench = ({
|
||||||
//const raiseEvent = (type = null, data = null) => {}
|
//const raiseEvent = (type = null, data = null) => {}
|
||||||
|
|
||||||
const MainMenu = () => (
|
const MainMenu = () => (
|
||||||
<ul className="aside-main-menu">
|
<ul id="main-menu" className="aside-main-menu">
|
||||||
{Object.keys(icons).map((link) => {
|
{Object.keys(icons).map((link) => {
|
||||||
return (
|
return (
|
||||||
<li key={link}>
|
<li key={link}>
|
||||||
|
@ -211,7 +219,7 @@ const Workbench = ({
|
||||||
}
|
}
|
||||||
|
|
||||||
let main = null
|
let main = null
|
||||||
let context = null
|
let preMenu = null
|
||||||
let pattern
|
let pattern
|
||||||
switch (display) {
|
switch (display) {
|
||||||
case 'languages':
|
case 'languages':
|
||||||
|
@ -223,19 +231,6 @@ const Workbench = ({
|
||||||
{languageButtons()}
|
{languageButtons()}
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
context = (
|
|
||||||
<ul>
|
|
||||||
{Object.keys(languages).map((lang) => {
|
|
||||||
return (
|
|
||||||
<li key={lang}>
|
|
||||||
<a href="#" onClick={() => setLanguage(lang)}>
|
|
||||||
{languages[lang]}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
</ul>
|
|
||||||
)
|
|
||||||
break
|
break
|
||||||
case 'draft':
|
case 'draft':
|
||||||
if (measurementsMissing()) {
|
if (measurementsMissing()) {
|
||||||
|
@ -263,7 +258,7 @@ const Workbench = ({
|
||||||
design={design}
|
design={design}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
context = (
|
preMenu = (
|
||||||
<DraftConfig
|
<DraftConfig
|
||||||
freesewing={freesewing}
|
freesewing={freesewing}
|
||||||
Pattern={Pattern}
|
Pattern={Pattern}
|
||||||
|
@ -292,7 +287,7 @@ const Workbench = ({
|
||||||
setDisplay('measurements')
|
setDisplay('measurements')
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
context = (
|
preMenu = (
|
||||||
<SampleConfigurator
|
<SampleConfigurator
|
||||||
config={config}
|
config={config}
|
||||||
gist={gist}
|
gist={gist}
|
||||||
|
@ -365,22 +360,26 @@ const Workbench = ({
|
||||||
setDisplay={setDisplay}
|
setDisplay={setDisplay}
|
||||||
toggleDarkMode={toggleDarkMode}
|
toggleDarkMode={toggleDarkMode}
|
||||||
config={config}
|
config={config}
|
||||||
|
theme={theme}
|
||||||
/>
|
/>
|
||||||
<div className="fs-sa" style={{ position: 'relative' }}>
|
<div className="layout-wrapper">
|
||||||
{hideAside ? (
|
<div className="layout">
|
||||||
<a href="#" style={styles.unhide} onClick={() => setHideAside(false)}>
|
{hideAside ? (
|
||||||
<UnhideIcon />
|
<a href="#" style={styles.unhide} onClick={() => setHideAside(false)}>
|
||||||
</a>
|
<UnhideIcon />
|
||||||
) : (
|
</a>
|
||||||
<aside>
|
) : (
|
||||||
<div className="sticky">
|
<aside>
|
||||||
<MainMenu />
|
<div className="sticky">
|
||||||
<div className="aside-context">{context}</div>
|
{preMenu}
|
||||||
</div>
|
<MainMenu />
|
||||||
</aside>
|
</div>
|
||||||
)}
|
</aside>
|
||||||
<section>{main}</section>
|
)}
|
||||||
|
<section>{main}</section>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Footer />
|
||||||
</div>
|
</div>
|
||||||
</MuiThemeProvider>
|
</MuiThemeProvider>
|
||||||
)
|
)
|
||||||
|
@ -391,5 +390,5 @@ export default withLanguage(
|
||||||
gist: defaultGist,
|
gist: defaultGist,
|
||||||
store: true
|
store: true
|
||||||
}),
|
}),
|
||||||
'en'
|
'en', false, extraTranslations
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,10 +2,12 @@ import React, { useState } from 'react'
|
||||||
import AppBar from '@material-ui/core/AppBar'
|
import AppBar from '@material-ui/core/AppBar'
|
||||||
import Toolbar from '@material-ui/core/Toolbar'
|
import Toolbar from '@material-ui/core/Toolbar'
|
||||||
import Button from '@material-ui/core/Button'
|
import Button from '@material-ui/core/Button'
|
||||||
|
import IconButton from '@material-ui/core/IconButton'
|
||||||
import Logo from '../Logo'
|
import Logo from '../Logo'
|
||||||
import { FormattedMessage } from 'react-intl'
|
import { FormattedMessage } from 'react-intl'
|
||||||
import Icon from '../Icon'
|
import Icon from '../Icon'
|
||||||
import LanguageIcon from '@material-ui/icons/Translate'
|
import LanguageIcon from '@material-ui/icons/Translate'
|
||||||
|
import LightModeIcon from '@material-ui/icons/WbSunny'
|
||||||
import DarkModeIcon from '@material-ui/icons/Brightness3'
|
import DarkModeIcon from '@material-ui/icons/Brightness3'
|
||||||
|
|
||||||
export default function ButtonAppBar(props) {
|
export default function ButtonAppBar(props) {
|
||||||
|
@ -20,7 +22,7 @@ export default function ButtonAppBar(props) {
|
||||||
width: '100%',
|
width: '100%',
|
||||||
margin: 0,
|
margin: 0,
|
||||||
padding: 0,
|
padding: 0,
|
||||||
background: props.theme === 'dark' ? colors.light : colors.dark,
|
background: '#1a1d21',
|
||||||
zIndex: 15
|
zIndex: 15
|
||||||
},
|
},
|
||||||
logo: {
|
logo: {
|
||||||
|
@ -35,7 +37,6 @@ export default function ButtonAppBar(props) {
|
||||||
padding: '0 18px'
|
padding: '0 18px'
|
||||||
},
|
},
|
||||||
iconButton: {
|
iconButton: {
|
||||||
color: colors[props.theme]
|
|
||||||
},
|
},
|
||||||
icon: {
|
icon: {
|
||||||
maxWidth: '24px',
|
maxWidth: '24px',
|
||||||
|
@ -48,7 +49,8 @@ export default function ButtonAppBar(props) {
|
||||||
darkModeIcon: {
|
darkModeIcon: {
|
||||||
transform: 'rotate(26deg)',
|
transform: 'rotate(26deg)',
|
||||||
maxWidth: '24px',
|
maxWidth: '24px',
|
||||||
maxHeight: '24px'
|
maxHeight: '24px',
|
||||||
|
color: '#ffe066'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,16 +63,15 @@ export default function ButtonAppBar(props) {
|
||||||
|
|
||||||
const iconStyle = {
|
const iconStyle = {
|
||||||
marginRight: '0.5rem',
|
marginRight: '0.5rem',
|
||||||
color: props.theme === 'dark' ? '#b197fc' : '#845ef7'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={style.wrapper}>
|
<div style={style.wrapper}>
|
||||||
<AppBar position="static" color="secondary" elevation={0}>
|
<AppBar position="static" color="transparent" elevation={2}>
|
||||||
<Toolbar disableGutters={true}>
|
<Toolbar disableGutters={true}>
|
||||||
<Button {...buttonProps} href="#" onClick={() => props.setDisplay('null')}>
|
<Button {...buttonProps} href="#" onClick={() => props.setDisplay('null')}>
|
||||||
<span>{props.config.name}</span>
|
<span>{props.config.name}</span>
|
||||||
<span style={{ color: '#845ef7', fontSize: '80%' }}>.FreeSewing.dev</span>
|
<span style={{ color: '#ced4da', fontSize: '80%' }}>.FreeSewing.dev</span>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button {...buttonProps} href="https://chat.freesewing.org/">
|
<Button {...buttonProps} href="https://chat.freesewing.org/">
|
||||||
|
@ -93,9 +94,18 @@ export default function ButtonAppBar(props) {
|
||||||
<LanguageIcon className="nav-icon" />
|
<LanguageIcon className="nav-icon" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button onClick={props.toggleDarkMode} href="#">
|
<IconButton
|
||||||
<DarkModeIcon className="nav-icon moon" />
|
style={style.darkModeButton}
|
||||||
</Button>
|
aria-label="menu"
|
||||||
|
onClick={props.toggleDarkMode}
|
||||||
|
title={props.theme}
|
||||||
|
>
|
||||||
|
{props.theme === 'dark' ? (
|
||||||
|
<LightModeIcon style={style.icon} />
|
||||||
|
) : (
|
||||||
|
<DarkModeIcon style={style.darkModeIcon} />
|
||||||
|
)}
|
||||||
|
</IconButton>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
</AppBar>
|
</AppBar>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue