import { CloseIcon } from '@blocksuite/icons'; import React, { PropsWithChildren, ReactNode, useState } from 'react'; import EditorOptionMenu from './header-right-items/EditorOptionMenu'; import SyncUser from './header-right-items/SyncUser'; import ThemeModeSwitch from './header-right-items/theme-mode-switch'; import TrashButtonGroup from './header-right-items/TrashButtonGroup'; import { StyledBrowserWarning, StyledCloseButton, StyledHeader, StyledHeaderContainer, StyledHeaderRightSide, } from './styles'; import { shouldShowWarning, useWarningMessage } from './utils'; const BrowserWarning = ({ show, onClose, }: { show: boolean; onClose: () => void; }) => { return ( {useWarningMessage()} ); }; type HeaderRightItemNames = | 'editorOptionMenu' | 'trashButtonGroup' | 'themeModeSwitch' | 'syncUser'; const HeaderRightItems: Record = { editorOptionMenu: , trashButtonGroup: , themeModeSwitch: , syncUser: , }; export const Header = ({ rightItems = ['syncUser', 'themeModeSwitch'], children, }: PropsWithChildren<{ rightItems?: HeaderRightItemNames[] }>) => { const [showWarning, setShowWarning] = useState(shouldShowWarning()); return ( { setShowWarning(false); }} /> {children} {rightItems.map(itemName => { return HeaderRightItems[itemName]; })} ); }; export default Header;