Files
wehub-resource-sync c48612c494
CI / E2E Tests (push) Has been cancelled
CI / Lint, Typecheck & Unit Tests (push) Has been cancelled
Docs Build / Build docs site (push) Has been cancelled
Publish @openmaic packages / Build, validate & publish (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:03:23 +08:00

34 lines
935 B
TypeScript

import { create } from 'zustand';
export interface KeyboardState {
ctrlKeyState: boolean;
shiftKeyState: boolean;
spaceKeyState: boolean;
// Getters
ctrlOrShiftKeyActive: () => boolean;
// Actions
setCtrlKeyState: (active: boolean) => void;
setShiftKeyState: (active: boolean) => void;
setSpaceKeyState: (active: boolean) => void;
}
export const useKeyboardStore = create<KeyboardState>((set, get) => ({
// Initial state
ctrlKeyState: false, // Ctrl key pressed state
shiftKeyState: false, // Shift key pressed state
spaceKeyState: false, // Space key pressed state
// Getters
ctrlOrShiftKeyActive: () => {
const state = get();
return state.ctrlKeyState || state.shiftKeyState;
},
// Actions
setCtrlKeyState: (active) => set({ ctrlKeyState: active }),
setShiftKeyState: (active) => set({ shiftKeyState: active }),
setSpaceKeyState: (active) => set({ spaceKeyState: active }),
}));