mutations.js 1.88 KB
Newer Older
wanli's avatar
wanli committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
/* eslint-disable object-curly-newline */
export default {
  /**
   * Set disks
   * @param state
   * @param disks
   */
  setDisks(state, disks) {
    state.disks = disks;
  },

  /**
   * Set clipboard
   * @param state
   * @param type
   * @param disk
   * @param directories
   * @param files
   */
  setClipboard(state, { type, disk, directories, files }) {
    state.clipboard.type = type;
    state.clipboard.disk = disk;
    state.clipboard.directories = directories;
    state.clipboard.files = files;
  },

  /**
   * Truncate clipboard
   * @param state
   * @param type
   * @param path
   */
  truncateClipboard(state, { type, path }) {
    const itemIndex = state.clipboard[type].indexOf(path);

    if (itemIndex !== -1) state.clipboard[type].splice(itemIndex, 1);
    if (!state.clipboard.directories.length && !state.clipboard.files.length) {
      state.clipboard.type = null;
    }
  },

  /**
   * Reset clipboard
   * @param state
   */
  resetClipboard(state) {
    state.clipboard.type = null;
    state.clipboard.disk = null;
    state.clipboard.directories = [];
    state.clipboard.files = [];
  },

  /**
   * Select manager (when shown 2 file manager windows)
   * @param state
   * @param managerName
   */
  setActiveManager(state, managerName) {
    state.activeManager = managerName;
  },

  /**
   * Set file callback
   * @param state
   * @param callback
   */
  setFileCallBack(state, callback) {
    state.fileCallback = callback;
  },

  /**
   * Screen mode toggle - ON/OFF full screen
   * @param state
   */
  screenToggle(state) {
    state.fullScreen = !state.fullScreen;
  },

  /**
   * Reset state
   * @param state
   */
  resetState(state) {
    state.activeManager = 'left';
    state.clipboard = {
      type: null,
      disk: null,
      directories: [],
      files: [],
    };
    state.disks = [];
    state.fileCallback = null;
    state.fullScreen = false;
  },
};