mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-18 06:57:11 +01:00
35 lines
859 B
TypeScript
35 lines
859 B
TypeScript
import classNames from 'classnames';
|
|
import type { HotkeyAction } from '../../hooks/useHotKey';
|
|
import { useFormattedHotkey } from '../../hooks/useHotKey';
|
|
import { HStack } from './Stacks';
|
|
|
|
interface Props {
|
|
action: HotkeyAction | null;
|
|
className?: string;
|
|
variant?: 'text' | 'with-bg';
|
|
}
|
|
|
|
export function HotKey({ action, className, variant }: Props) {
|
|
const labelParts = useFormattedHotkey(action);
|
|
if (labelParts === null) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<HStack
|
|
className={classNames(
|
|
className,
|
|
variant === 'with-bg' && 'rounded border',
|
|
'text-text-subtlest',
|
|
)}
|
|
>
|
|
{labelParts.map((char, index) => (
|
|
// biome-ignore lint/suspicious/noArrayIndexKey: none
|
|
<div key={index} className="min-w-[1.1em] text-center">
|
|
{char}
|
|
</div>
|
|
))}
|
|
</HStack>
|
|
);
|
|
}
|