mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-11 20:44:32 -05:00
43 lines
943 B
TypeScript
43 lines
943 B
TypeScript
import { useEffect } from 'react';
|
|
|
|
import { useNavigate } from '@desktop-client/hooks/useNavigate';
|
|
|
|
import * as Platform from 'loot-core/client/platform';
|
|
|
|
export function GlobalKeys() {
|
|
const navigate = useNavigate();
|
|
useEffect(() => {
|
|
const handleKeys = (e: KeyboardEvent) => {
|
|
if (Platform.isBrowser) {
|
|
return;
|
|
}
|
|
|
|
if (e.metaKey) {
|
|
switch (e.key) {
|
|
case '1':
|
|
navigate('/budget');
|
|
break;
|
|
case '2':
|
|
navigate('/reports');
|
|
break;
|
|
case '3':
|
|
navigate('/accounts');
|
|
break;
|
|
case ',':
|
|
if (Platform.OS === 'mac') {
|
|
navigate('/settings');
|
|
}
|
|
break;
|
|
default:
|
|
}
|
|
}
|
|
};
|
|
|
|
document.addEventListener('keydown', handleKeys);
|
|
|
|
return () => document.removeEventListener('keydown', handleKeys);
|
|
}, []);
|
|
|
|
return null;
|
|
}
|