import { useContext, useMemo } from 'react'
import { PanZoomContext } from 'shared/components/workbench/pattern/pan-zoom-context.mjs'
import { useMobileAction } from 'shared/context/mobile-menubar-context.mjs'
import { useTranslation } from 'next-i18next'
import {
PaperlessIcon,
SaIcon,
RocketIcon,
BulletIcon,
UnitsIcon,
DetailIcon,
IconWrapper,
ClearIcon,
} from 'shared/components/icons.mjs'
import { ClearAllButton } from 'shared/components/workbench/menus/core-settings/index.mjs'
import { shownHeaderSelector } from 'shared/components/wrappers/header.mjs'
export const ns = ['common', 'core-settings', 'ui-settings']
const ZoomInIcon = (props) => (
)
const ZoomOutIcon = (props) => (
)
const IconButton = ({ Icon, onClick, dflt = true, title, hide = false, extraClasses = '' }) => (
)
const smZoomClasses =
'[.mobile-menubar_&]:btn [.mobile-menubar_&]:btn-secondary [.mobile-menubar_&]:btn-circle [.mobile-menubar_&]:my-2'
const ZoomButtons = ({ t, zoomFunctions, zoomed }) => {
if (!zoomFunctions) return null
return (
zoomFunctions.zoomOut()}
title={t('zoomOut')}
dflt
extraClasses={smZoomClasses}
/>
zoomFunctions.zoomIn()}
title={t('zoomIn')}
dflt
extraClasses={smZoomClasses}
/>
)
}
const Spacer = () => |
export const ViewHeader = ({ update, settings, ui, control, setSettings }) => {
const { t } = useTranslation(ns)
const { zoomFunctions, zoomed } = useContext(PanZoomContext)
// make the zoom buttons so we can pass them to the mobile menubar
const headerZoomButtons = useMemo(
() => ,
[zoomed, t, zoomFunctions]
)
// add the zoom buttons as an action on the mobile menubar
useMobileAction('zoom', { order: 0, actionContent: headerZoomButtons })
return (
{headerZoomButtons}
update.toggleSa()}
title={t('core-settings:sabool.t')}
/>
update.settings(['paperless'], !settings.paperless)}
title={t('core-settings:paperless.t')}
/>
update.settings(
['complete'],
typeof settings.complete === 'undefined' ? 0 : settings.complete ? 0 : 1
)
}
title={t('core-settings:complete.t')}
/>
}
dflt={settings.units !== 'imperial'}
onClick={() =>
update.settings(['units'], settings.units === 'imperial' ? 'metric' : 'imperial')
}
title={t('core-settings:units.t')}
/>
{[1, 2, 3, 4, 5].map((score) => (
update.setControl(score)} className="text-primary" key={score}>
= score ? true : false} />
))}
update.ui(['renderer'], ui.renderer === 'react' ? 'svg' : 'react')}
title={t('ui-settings:renderer.t')}
/>
)
}