keyboard.ts 769 B

123456789101112131415161718192021222324252627282930313233
  1. import { defineStore } from 'pinia'
  2. export interface KeyboardState {
  3. ctrlKeyState: boolean
  4. shiftKeyState: boolean
  5. spaceKeyState: boolean
  6. }
  7. export const useKeyboardStore = defineStore('keyboard', {
  8. state: (): KeyboardState => ({
  9. ctrlKeyState: false, // ctrl键按下状态
  10. shiftKeyState: false, // shift键按下状态
  11. spaceKeyState: false, // space键按下状态
  12. }),
  13. getters: {
  14. ctrlOrShiftKeyActive(state) {
  15. return state.ctrlKeyState || state.shiftKeyState
  16. },
  17. },
  18. actions: {
  19. setCtrlKeyState(active: boolean) {
  20. this.ctrlKeyState = active
  21. },
  22. setShiftKeyState(active: boolean) {
  23. this.shiftKeyState = active
  24. },
  25. setSpaceKeyState(active: boolean) {
  26. this.spaceKeyState = active
  27. },
  28. },
  29. })