import {Link, useLocation} from 'react-router-dom'; import clsx from 'clsx'; import {Fragment, useEffect, useState} from 'react'; import {IconButton} from '../../ui/buttons/icon-button'; import {KeyboardArrowLeftIcon} from '../../icons/material/KeyboardArrowLeft'; import {KeyboardArrowRightIcon} from '../../icons/material/KeyboardArrowRight'; import {Trans} from '../../i18n/trans'; import {MixedText} from '../../i18n/mixed-text'; import {useFormContext} from 'react-hook-form'; import {appearanceState, AppearanceValues} from './appearance-store'; import {AppearanceEditorBreadcrumbItem} from './types/appearance-editor-section'; import {message} from '../../i18n/message'; export function SectionHeader() { const {pathname} = useLocation(); const {getValues} = useFormContext(); const [breadcrumb, setBreadcrumb] = useState< AppearanceEditorBreadcrumbItem[] | null >(null); useEffect(() => { const [, , sectionName] = pathname.split('/').filter(p => !!p); if (sectionName) { const section = appearanceState().config?.sections[sectionName]; if (section) { setBreadcrumb([ { label: message('Appearance'), location: '', }, ...section.buildBreadcrumb(pathname, getValues()), ]); // bail, so breadcrumb is not cleared below return; } } setBreadcrumb(null); }, [pathname, getValues]); // not need to show section header if already at root if (!breadcrumb || breadcrumb.length < 2) { return null; } return (
{breadcrumb.map((item, index) => { const isLast = breadcrumb.length - 1 === index; const isFirst = index === 0; const label = ; if (isFirst) { return null; } return (
{label}
{!isLast && ( )}
); })}
); }