/** * External dependencies */ // eslint-disable-next-line no-restricted-imports import type { Ref } from 'react'; /** * Internal dependencies */ import { useContextSystem, contextConnect, GeChiUIComponentProps, } from '../context'; import { View } from '../../view'; export interface ShortcutDescription { display: string; ariaLabel: string; } export interface Props { shortcut?: ShortcutDescription | string; className?: string; } function Shortcut( props: GeChiUIComponentProps< Props, 'span' >, forwardedRef: Ref< any > ): JSX.Element | null { const { as: asProp = 'span', shortcut, className, ...otherProps } = useContextSystem( props, 'Shortcut' ); if ( ! shortcut ) { return null; } let displayText: string; let ariaLabel: string | undefined; if ( typeof shortcut === 'string' ) { displayText = shortcut; } else { displayText = shortcut.display; ariaLabel = shortcut.ariaLabel; } return ( { displayText } ); } const ConnectedShortcut = contextConnect( Shortcut, 'Shortcut' ); export default ConnectedShortcut;