// Hooks
import { useState, useContext } from 'react'
import { useTranslation } from 'next-i18next'
// Context
import { ModalContext } from 'shared/context/modal-context.mjs'
import { LoadingContext } from 'shared/context/loading-context.mjs'
// Components
import {
BeakerIcon,
BriefcaseIcon,
ClearIcon,
CodeIcon,
CutIcon,
HelpIcon,
MenuIcon,
OptionsIcon,
PrintIcon,
UploadIcon,
} from 'shared/components/icons.mjs'
import { Ribbon } from 'shared/components/ribbon.mjs'
import Link from 'next/link'
import { ModalMenu } from 'site/components/navigation/modal-menu.mjs'
export const ns = ['workbench', 'sections']
export const NavButton = ({
href,
label,
color,
children,
onClick = false,
extraClasses = '',
active = false,
}) => {
const className =
'border-0 px-1 lg:px-4 text-base py-3 lg:py-4 text-center flex flex-col items-center 2xl:w-36 ' +
`hover:bg-${color}-400 text-${color}-400 hover:text-neutral grow lg:grow-0 relative ${extraClasses} ${
active ? 'font-heavy' : ''
}`
const span = {label}
return onClick ? (
) : (
{children}
{span}
)
}
export const NavSpacer = () => (
|
)
export const colors = [
'red',
'orange',
'yellow',
'lime',
'green',
'teal',
'cyan',
'blue',
'indigo',
'violet',
'purple',
]
const NavIcons = ({ setModal, setView, view }) => {
const { t } = useTranslation(['header'])
const iconSize = 'h-6 w-6 lg:h-12 lg:w-12'
return (
<>
setModal()}
label={t('workbench:menu')}
color={colors[0]}
>
setView('draft')}
label={t('workbench:draft')}
color={colors[1]}
active={view === 'draft'}
>
setView('test')}
label={t('workbench:test')}
color={colors[2]}
extraClasses="hidden lg:flex"
>
setView('print')}
label={t('workbench:printLayout')}
color={colors[3]}
extraClasses="hidden lg:flex"
>
setView('cut')}
label={t('workbench:cutLayout')}
color={colors[4]}
extraClasses="hidden lg:flex"
>
setView('save')}
label={t('workbench:save')}
color={colors[5]}
extraClasses="hidden lg:flex"
>
setView('export')}
label={t('workbench:export')}
color={colors[6]}
extraClasses="hidden lg:flex"
>
setView('edit')}
label={t('workbench:edit')}
color={colors[7]}
extraClasses="hidden lg:flex"
>
setView('clear')}
label={t('workbench:clear')}
color={colors[8]}
extraClasses="hidden lg:flex"
>
>
)
}
export const WorkbenchHeader = ({ view, setView }) => {
const { setModal } = useContext(ModalContext)
const { loading } = useContext(LoadingContext)
const [show, setShow] = useState(true)
return (
{/* Non-mobile content */}
{/* Mobile content */}
)
}