OpenMAIC-React / src /lib /store /keyboard.ts
muthuk1's picture
Convert OpenMAIC from Next.js to React (Vite)
f56a29b verified
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 }),
}));