import React from 'react'; import { IPageHasId } from '~/interfaces/page'; import { EditorMode, useEditorMode, } from '~/stores/ui'; import TagLabels from '../Page/TagLabels'; import AuthorInfo from './AuthorInfo'; import DrawerToggler from './DrawerToggler'; import PagePathNav from '../PagePathNav'; import { IUser } from '~/interfaces/user'; type Props = { page: Partial, showDrawerToggler?: boolean, showTagLabel?: boolean, showPageAuthors?: boolean, isGuestUser?: boolean, isDrawerMode?: boolean, isCompactMode?: boolean, tags?: string[], tagsUpdatedHandler?: (newTags: string[]) => Promise, controls?: React.FunctionComponent, additionalClasses?: string[], } export const GrowiSubNavigation = (props: Props): JSX.Element => { const { data: editorMode } = useEditorMode(); const { page, showDrawerToggler, showTagLabel, showPageAuthors, isGuestUser, isDrawerMode, isCompactMode, tags, tagsUpdatedHandler, controls: Controls, additionalClasses = [], } = props; const { _id: pageId, path, creator, lastUpdateUser, createdAt, updatedAt, } = page; const isViewMode = editorMode === EditorMode.View; const isEditorMode = !isViewMode; if (path == null) { return <>; } return (
{/* Left side */}
{ showDrawerToggler && isDrawerMode && (
) }
{ showTagLabel && !isCompactMode && (
) }
{/* Right side */}
{ Controls && }
{/* Page Authors */} { (showPageAuthors && !isCompactMode) && (
) }
); };