import { defineMessages, useEditor, useValue } from '@tldraw/editor' import classNames from 'classnames' import { ReactNode, memo } from 'react' import { PORTRAIT_BREAKPOINT } from '../../constants' import { useBreakpoint } from '../../context/breakpoints' import { TLUiDialogProps } from '../../context/dialogs' import { useTranslation } from '../../hooks/useTranslation/useTranslation' import { TldrawUiMenuContextProvider } from '../primitives/menus/TldrawUiMenuContext' import { TldrawUiDialogBody, TldrawUiDialogCloseButton, TldrawUiDialogHeader, TldrawUiDialogTitle, } from '../primitives/TldrawUiDialog' import { DefaultKeyboardShortcutsDialogContent } from './DefaultKeyboardShortcutsDialogContent' const messages = defineMessages({ shortcutsDialogDisabledNotice: { id: 'shortcuts-dialog.disabled-notice', defaultMessage: 'Keyboard shortcuts are turned off. Turn them back on under Preferences > Accessibility.', }, shortcutsDialogTitle: { id: 'shortcuts-dialog.title', defaultMessage: 'Keyboard shortcuts' }, }) /** @public */ export type TLUiKeyboardShortcutsDialogProps = TLUiDialogProps & { children?: ReactNode } /** @public @react */ export const DefaultKeyboardShortcutsDialog = memo(function DefaultKeyboardShortcutsDialog({ children, }: TLUiKeyboardShortcutsDialogProps) { const editor = useEditor() const msg = useTranslation() const breakpoint = useBreakpoint() const areKeyboardShortcutsEnabled = useValue( 'areKeyboardShortcutsEnabled', () => editor.user.getAreKeyboardShortcutsEnabled(), [editor] ) const content = children ?? return ( <> {msg(messages.shortcutsDialogTitle)} {!areKeyboardShortcutsEnabled && (
{msg(messages.shortcutsDialogDisabledNotice)}
)} {content}
) })