chore: establish learning module baseline
This commit is contained in:
commit
2d04197f3f
2409 files changed
+533050
No files matched your search
@@ -0,0 +1,33 @@
|
||||
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 }),
|
||||
}));
|
||||
Reference in new issue
Block a user