import { createPortal } from 'react-dom'; import { KeyboardIcon } from './Icons'; import { StyledListItem, StyledModalHeader, StyledShortcutsModal, StyledSubTitle, StyledTitle, } from './style'; import { useMacKeyboardShortcuts, useMacMarkdownShortcuts, useWindowsKeyboardShortcuts, useWinMarkdownShortcuts, } from '@/components/shortcuts-modal/config'; import { MuiSlide } from '@/ui/mui'; import { ModalCloseButton } from '@/ui/modal'; import { getUaHelper } from '@/utils'; import { useTranslation } from '@affine/i18n'; type ModalProps = { open: boolean; onClose: () => void; }; const isMac = () => { return getUaHelper().isMacOs; }; export const ShortcutsModal = ({ open, onClose }: ModalProps) => { const { t } = useTranslation(); const macMarkdownShortcuts = useMacMarkdownShortcuts(); const winMarkdownShortcuts = useWinMarkdownShortcuts(); const macKeyboardShortcuts = useMacKeyboardShortcuts(); const windowsKeyboardShortcuts = useWindowsKeyboardShortcuts(); const markdownShortcuts = isMac() ? macMarkdownShortcuts : winMarkdownShortcuts; const keyboardShortcuts = isMac() ? macKeyboardShortcuts : windowsKeyboardShortcuts; return createPortal( <> {t('Shortcuts')} { onClose(); }} /> {t('Keyboard Shortcuts')} {Object.entries(keyboardShortcuts).map(([title, shortcuts]) => { return ( {title} {shortcuts} ); })} {t('Markdown Syntax')} {Object.entries(markdownShortcuts).map(([title, shortcuts]) => { return ( {title} {shortcuts} ); })} , document.body ); }; export default ShortcutsModal;