1
0
Fork 0

wip(fs.dev): Work on navigation menu

This commit is contained in:
Joost De Cock 2021-12-25 14:14:18 +01:00
parent 519de5e202
commit 3940f458bb
6 changed files with 47 additions and 22 deletions

View file

@ -0,0 +1,36 @@
const Right = props => (
<svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M17 8l4 4m0 0l-4 4m4-4H3" />
</svg>
)
const Left = props => (
<svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 19l-7-7m0 0l7-7m-7 7h18" />
</svg>
)
const Header = ({ app }) => {
return (
<header className={`
bg-primary
p-4
block
sm:hidden
z-10
`}>
<button
className={`
btn border-base-100 text-base-100 btn-sm border border-transparent bg-transparent
hover:border hover:bg-transparent hover:border-base-100
`}
onClick={app.togglePrimaryMenu}>
{app.primaryMenu
? <><Left />&nbsp; Hide menu</>
: <>Show menu &nbsp;<Right /></>
}
</button>
</header>
)
}
export default Header

View file

@ -12,6 +12,7 @@
"serve": "pm2 start npm --name 'freesewing.dev' -- run start" "serve": "pm2 start npm --name 'freesewing.dev' -- run start"
}, },
"dependencies": { "dependencies": {
"@heroicons/react": "^1.0.5",
"@mdx-js/loader": "^2.0.0-rc.2", "@mdx-js/loader": "^2.0.0-rc.2",
"@mdx-js/mdx": "^2.0.0-rc.2", "@mdx-js/mdx": "^2.0.0-rc.2",
"@mdx-js/react": "^2.0.0-rc.2", "@mdx-js/react": "^2.0.0-rc.2",

View file

@ -7,18 +7,7 @@ export default (props) => {
return ( return (
<Page app={app} title='FIXME: Create homepage content'> <Page app={app} title='FIXME: Create homepage content'>
<Logo size={200} theme={app.theme}/> <Logo size={200} theme={app.theme}/>
<p className="bg-secondary hover:bold mr-4 hover:bg-base-100">test</p> <button className="btn btn-primary" onClick={app.togglePrimaryMenu}>toggle menu</button>
<p className="cursor-pointer label justify-start gap-4 font-lg lg:font-xl font-bold border rounded mb-2">saef</p>
<label className="cursor-pointer label justify-start gap-4 font-lg lg:font-xl font-bold">
<input
type="checkbox"
checked={develop}
className="toggle toggle-secondary"
onChange={() => setDevelop(!develop)}
/>
<span className="ml-4 label-text text-secondary">{develop ? 'Disable' : 'Enable'} Developer View</span>
</label>
</Page> </Page>
) )
} }

View file

@ -5,6 +5,8 @@ import Link from 'next/link'
import Logo from 'shared/components/logos/freesewing.js' import Logo from 'shared/components/logos/freesewing.js'
import PrimaryNavigation from 'shared/components/navigation/primary' import PrimaryNavigation from 'shared/components/navigation/primary'
import get from 'lodash.get' import get from 'lodash.get'
// Site components
import Header from 'site/components/header'
const iconSize= 48 const iconSize= 48
@ -71,14 +73,7 @@ const DefaultLayout = ({ app, title=false, children=[]}) => {
bg-base-100 bg-base-100
lg:py-8 lg:py-8
`} data-theme={app.theme}> `} data-theme={app.theme}>
<header className={` <Header app={app}/>
bg-primary
p-4
block
sm:hidden
`}>
header
</header>
<main className={` <main className={`
grow flex flex-row grow flex flex-row
sm:py-8 sm:py-8
@ -89,9 +84,11 @@ const DefaultLayout = ({ app, title=false, children=[]}) => {
<aside className={` <aside className={`
fixed top-0 right-0 fixed top-0 right-0
${app.primaryMenu ? '' : 'translate-x-[-100%]'} transition-transform ${app.primaryMenu ? '' : 'translate-x-[-100%]'} transition-transform
pt-16
sm:pt-4
sm:relative sm:transform-none sm:relative sm:transform-none
h-screen w-screen h-screen w-screen
bg-base-50 bg-base-100
sm:bg-base-50 sm:bg-base-50
sm:max-w-[38.2%] sm:max-w-[38.2%]
sm:flex sm:flex-row-reverse sm:flex sm:flex-row-reverse

View file

@ -156,7 +156,7 @@ const TopTheme = ({ app }) => (
hover:cursor-row-resize hover:cursor-row-resize
hover:bg-base-200 hover:bg-base-200
p-2 p-2
text-primary text-content-base
`}> `}>
<Icon icon='theme' className="text-secondary"/> <Icon icon='theme' className="text-secondary"/>
<div className={`grow`}> <div className={`grow`}>

View file

@ -5,6 +5,8 @@ module.exports = {
content: [ content: [
'./pages/*.js', './pages/*.js',
'./pages/**/*.js', './pages/**/*.js',
'./components/*.js',
'./components/**/*.js',
'../freesewing.shared/components/**/*.js', '../freesewing.shared/components/**/*.js',
], ],
plugins: [ plugins: [