import get from 'lodash.get' import Icon from 'shared/components/icon/index.js' import Link from 'next/link' import orderBy from 'lodash.orderby' import Logo from 'shared/components/logos/freesewing.js' import ThemePicker from 'shared/components/theme-picker.js' import { getTagline } from 'site/utils.js' // TODO: Clean this up after restructuring markdown content const hide = ['contributors', 'developers', 'editors', 'translators'] // Don't show children for blog and showcase posts const keepClosed = ['blog', 'showcase', ] // TODO: For now we force tailwind to pickup these styles // At some point this should 'just work' though, but let's not worry about it now const force = [

,

] // Component for the collapse toggle const Chevron = ({w=8, m=2}) => // Helper method to filter out the real children const currentChildren = current => Object.values(current) .filter(entry => (typeof entry === 'object')) const howActive = (slug) => { } // Shared classes for links const linkClasses = "text-lg lg:text-xl py-1 hover:cursor-pointer hover:text-secondary bg-opacity-50" // Component that renders a sublevel of navigation const SubLevel = ({ nodes={}, active }) => (

) // Component that renders a toplevel of navigation const TopLevel = ({ icon, title, nav, current, slug, hasChildren=false, active }) => (
{icon} {title} {hasChildren && } {hasChildren && }
) // Component that renders the logo first entry const TopLogo = ({ app }) => (
freesewing.{app.site}

{getTagline()}

) // Component that renders the theme picker first entry const TopTheme = ({ app }) => ( <>
Theme
) // TODO: Get rid of this when markdown has been restructured const remove = ['contributors', 'developers', 'editors', 'translators'] const Navigation = ({ app, active }) => { if (!app.navigation) return null const output = [] for (const key of Object.keys(app.navigation).sort()) { if (hide.indexOf(key) === -1) output.push(} title={key} slug={key} key={key} hasChildren={keepClosed.indexOf(key) === -1} nav={app.navigation} current={orderBy(app.navigation[key], ['__order', '__title'], ['asc', 'asc'])} active={active} />) } return output } const PrimaryMenu = ({ app, active }) => { return ( ) } export default PrimaryMenu