agent-ecosystem/src/renderer/utils/keyboardUtils.ts
2026-02-21 14:34:25 +05:30

38 lines
1.1 KiB
TypeScript

/**
* Keyboard utility functions for platform-aware shortcuts
*/
/**
* Detect if running on macOS
*/
export function isMacOS(): boolean {
return navigator.userAgent.toLowerCase().includes('mac');
}
/**
* Get the primary modifier key name for the current platform
* @returns 'Cmd' on macOS, 'Ctrl' on other platforms
*/
export function getModifierKeyName(): string {
return isMacOS() ? 'Cmd' : 'Ctrl';
}
/**
* Get the primary modifier key symbol for the current platform
* @returns '⌘' on macOS, 'Ctrl' on other platforms
*/
export function getModifierKeySymbol(): string {
return isMacOS() ? '⌘' : 'Ctrl';
}
/**
* Format a keyboard shortcut for display
* @param key - The key to press (e.g., 'K', 'G', 'Enter')
* @param useSymbol - Whether to use symbols (⌘) or text (Cmd)
* @returns Formatted shortcut string (e.g., '⌘K' or 'Ctrl+K')
*/
export function formatModifierShortcut(key: string, useSymbol = true): string {
const modifier = useSymbol ? getModifierKeySymbol() : getModifierKeyName();
const separator = useSymbol && isMacOS() ? '' : '+';
return `${modifier}${separator}${key}`;
}