index.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { createStore } from 'vuex'
  2. import { getters } from './getters'
  3. import { actions } from './actions'
  4. import { mutations } from './mutations'
  5. import { MutationTypes, ActionTypes } from './constants'
  6. import { Slide } from '@/types/slides'
  7. import { slides } from '@/mocks/index'
  8. import { FontName } from '@/configs/fontName'
  9. export { MutationTypes, ActionTypes }
  10. export interface State {
  11. activeElementIdList: string[];
  12. handleElementId: string;
  13. canvasPercentage: number;
  14. canvasScale: number;
  15. thumbnailsFocus: boolean;
  16. editorAreaFocus: boolean;
  17. disableHotkeys: boolean;
  18. showGridLines: boolean;
  19. availableFonts: FontName[];
  20. slides: Slide[];
  21. slideIndex: number;
  22. snapshotCursor: number;
  23. snapshotLength: number;
  24. ctrlKeyState: boolean;
  25. shiftKeyState: boolean;
  26. screening: boolean;
  27. }
  28. const state: State = {
  29. activeElementIdList: [],
  30. handleElementId: '',
  31. canvasPercentage: 90,
  32. canvasScale: 1,
  33. thumbnailsFocus: false,
  34. editorAreaFocus: false,
  35. disableHotkeys: false,
  36. showGridLines: false,
  37. availableFonts: [],
  38. slides: slides,
  39. slideIndex: 0,
  40. snapshotCursor: -1,
  41. snapshotLength: 0,
  42. ctrlKeyState: false,
  43. shiftKeyState: false,
  44. screening: false,
  45. }
  46. export default createStore({
  47. state,
  48. getters,
  49. mutations,
  50. actions,
  51. })