import { For, Show, createSignal, createMemo, createEffect } from 'solid-js' import Private from './Private' import Notifications from './Notifications' import Icon from './Icon' import { Modal } from './Modal' import AuthModal from './AuthModal' import { t } from '../../utils/intl' import { useModalStore, showModal, useWarningsStore } from '../../stores/ui' import { useStore } from '@nanostores/solid' import { session as ssession } from '../../stores/auth' import { route, resource } from '../../stores/router' import './Header.scss' const resources = [ { name: t('zine'), href: '/' }, { name: t('feed'), href: '/feed' }, { name: t('topics'), href: '/topics' } //{ name: t('community'), href: '/community' } ] export const Header = () => { // signals const [fixed, setFixed] = createSignal(false) const [visibleWarnings, setVisibleWarnings] = createSignal(false) // stores const { getWarnings } = useWarningsStore() const session = useStore(ssession) const { getModal } = useModalStore() const subpath = useStore(resource) // methods const toggleWarnings = () => setVisibleWarnings(!visibleWarnings()) const toggleFixed = () => setFixed(!fixed()) // effects createEffect(() => { if (fixed() || getModal()) { document.body.classList.add('fixed') } else { document.body.classList.remove('fixed') } }, [fixed(), getModal()]) // derived const authorized = createMemo(() => session()?.user?.slug) const enterClick = route(() => showModal('auth')) const bellClick = createMemo(() => (authorized() ? route(toggleWarnings) : enterClick)) return (
) }