vben
2020-12-03 c303ec1a23c4b1fbad4fbda9007af2147dc327e2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { tabStore } from '/@/store/modules/tab';
import { appStore } from '/@/store/modules/app';
 
export function useTabs() {
  function canIUseFn(): boolean {
    const { multiTabsSetting: { show } = {} } = appStore.getProjectConfig;
    if (!show) {
      throw new Error('The multi-tab page is currently not open, please open it in the settings!');
    }
    return !!show;
  }
 
  return {
    refreshPage: () => canIUseFn() && tabStore.commitRedoPage(),
    closeAll: () => canIUseFn() && tabStore.closeAllTabAction(),
    closeLeft: () => canIUseFn() && tabStore.closeLeftTabAction(tabStore.getCurrentTab),
    closeRight: () => canIUseFn() && tabStore.closeRightTabAction(tabStore.getCurrentTab),
    closeOther: () => canIUseFn() && tabStore.closeOtherTabAction(tabStore.getCurrentTab),
    closeCurrent: () => canIUseFn() && tabStore.closeTabAction(tabStore.getCurrentTab),
  };
}