useContext.ts 743 Bytes
import { Ref, inject, provide } from 'vue';
import { SelectedWidgetKeys } from './index.type';
import { DataActionModeEnum } from '/@/enums/toolEnum';

const selectWidgetKeysKey = Symbol('select-widget-keys');

export const createSelectWidgetKeysContext = (state: Ref<SelectedWidgetKeys>) => {
  provide(selectWidgetKeysKey, state);
};

export const useSelectWidgetKeys = () => {
  return inject(selectWidgetKeysKey) as Ref<SelectedWidgetKeys>;
};

const selectWidgetModeKey = Symbol('select-widget-mode');

export const createSelectWidgetModeContext = (mode: Ref<DataActionModeEnum>) => {
  provide(selectWidgetModeKey, mode);
};

export const useSelectWidgetMode = () => {
  return inject(selectWidgetModeKey) as Ref<DataActionModeEnum>;
};