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