| 123456789101112131415161718192021222324252627282930313233 |
- 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 }),
- }));
|