From 5208852ed1f1fb69addc3f73f8b96eb3303fb35e Mon Sep 17 00:00:00 2001 From: joostdecock Date: Mon, 12 Jun 2023 19:38:20 +0200 Subject: [PATCH] wip(shared): Work on #4272 better workbench navigation --- .../new/pattern/[design]/[type]/[id].mjs | 2 +- sites/shared/components/workbench/header.mjs | 116 +++++++++++------- .../workbench/views/draft/index.mjs | 2 +- .../components/workbench/views/test/index.mjs | 2 +- sites/shared/styles/globals.css | 15 +++ 5 files changed, 87 insertions(+), 50 deletions(-) diff --git a/sites/org/pages/new/pattern/[design]/[type]/[id].mjs b/sites/org/pages/new/pattern/[design]/[type]/[id].mjs index b8120dd8988..087a8b0166d 100644 --- a/sites/org/pages/new/pattern/[design]/[type]/[id].mjs +++ b/sites/org/pages/new/pattern/[design]/[type]/[id].mjs @@ -64,7 +64,7 @@ const NewDesignFromSetPage = ({ page, id, design, type }) => { const baseSettings = set?.measies ? { measurements: set.measies } : null return ( - + ) diff --git a/sites/shared/components/workbench/header.mjs b/sites/shared/components/workbench/header.mjs index 6a89f5494f4..2b43b800bb1 100644 --- a/sites/shared/components/workbench/header.mjs +++ b/sites/shared/components/workbench/header.mjs @@ -1,5 +1,5 @@ // Hooks -import { useContext } from 'react' +import { useContext, useState } from 'react' import { useTranslation } from 'next-i18next' // Context import { ModalContext } from 'shared/context/modal-context.mjs' @@ -15,31 +15,63 @@ import { OptionsIcon, PrintIcon, UploadIcon, + RightIcon, + LeftIcon, + DocsIcon, + SearchIcon, } from 'shared/components/icons.mjs' import { Ribbon } from 'shared/components/ribbon.mjs' import { ModalMenu } from 'site/components/navigation/modal-menu.mjs' -import { NavButton, NavSpacer, colors } from 'shared/components/header.mjs' +import Link from 'next/link' export const ns = ['workbench', 'sections'] -const NavIcons = ({ setModal, setView, view }) => { +export const NavButton = ({ + href, + label, + children, + onClick = false, + active = false, + extraClasses = 'bg-neutral text-neutral-content hover:bg-secondary hover:text-secondary-content', +}) => { + const className = `w-full flex flex-row items-center px-4 py-2 ${extraClasses} ${ + active ? 'text-secondary' : '' + }` + const span = {label} + + return onClick ? ( + + ) : ( + + {span} + {children} + + ) +} + +const NavIcons = ({ setModal, setView, setDense, dense, view }) => { const { t } = useTranslation(['header']) - const iconSize = 'h-6 w-6 lg:h-12 lg:w-12' + const iconSize = 'h-6 w-6 grow-0' return ( <> setModal()} - label={t('workbench:menu')} - color={colors[0]} + onClick={() => setDense(!dense)} + label={t('workbench:collapse')} + extraClasses="text-success bg-neutral hover:bg-success hover:text-neutral" > - + {dense ? ( + + ) : ( + + )} - setView('draft')} label={t('workbench:draft')} - color={colors[1]} active={view === 'draft'} > @@ -47,63 +79,61 @@ const NavIcons = ({ setModal, setView, view }) => { setView('test')} label={t('workbench:test')} - color={colors[2]} - extraClasses="hidden lg:flex" + active={view === 'test'} > setView('print')} label={t('workbench:printLayout')} - color={colors[3]} - extraClasses="hidden lg:flex" + active={view === 'print'} > setView('cut')} label={t('workbench:cutLayout')} - color={colors[4]} - extraClasses="hidden lg:flex" + active={view === 'cut'} > - setView('save')} label={t('workbench:save')} - color={colors[5]} - extraClasses="hidden lg:flex" + active={view === 'save'} > setView('export')} label={t('workbench:export')} - color={colors[6]} - extraClasses="hidden lg:flex" + active={view === 'export'} > setView('edit')} label={t('workbench:edit')} - color={colors[7]} - extraClasses="hidden lg:flex" + active={view === 'edit'} > - setView('logs')} + label={t('workbench:logs')} + active={view === 'logs'} > - + - - + setView('inspect')} + label={t('workbench:inspector')} + active={view === 'inspect'} + > + + + + ) @@ -111,32 +141,24 @@ const NavIcons = ({ setModal, setView, view }) => { export const WorkbenchHeader = ({ view, setView, update }) => { const { setModal } = useContext(ModalContext) + const [dense, setDense] = useState(true) return ( ) } diff --git a/sites/shared/components/workbench/views/draft/index.mjs b/sites/shared/components/workbench/views/draft/index.mjs index bc4e5169de8..7174d9cd482 100644 --- a/sites/shared/components/workbench/views/draft/index.mjs +++ b/sites/shared/components/workbench/views/draft/index.mjs @@ -70,7 +70,7 @@ export const DraftView = ({ } return ( -
+
{output}
+

{title}

diff --git a/sites/shared/styles/globals.css b/sites/shared/styles/globals.css index a74bce38f9d..62fc184c5b6 100644 --- a/sites/shared/styles/globals.css +++ b/sites/shared/styles/globals.css @@ -416,6 +416,21 @@ } } +.animate-bounce-right { + animation: bounceright 1s infinite; +} + +@keyframes bounceright { + 0%, + 100% { + transform: translateX(-12.5%); + animation-timing-function: cubic-bezier(0.8, 0, 1, 1); + } + 50% { + transform: translateX(12.5%); + animation-timing-function: cubic-bezier(0, 0, 0.2, 1); + } +} /* Override DaisyUI button text color */ .btn-info { color: var(--btn-info-content);