import {usePermission} from '@/hooks/permission'
import { watchEffect } from 'vue';

const {authCodeOpts} =usePermission()

function checkPermission(el,binding) {
  let {value} = binding
  if(value && typeof(value)=='string'){
    // 使用watchEffect来监听authList的变化
    watchEffect(() => {
      // 如果authList还未获取到，则直接返回
      if (!authCodeOpts.value) return;

      // 拿出所有按钮的code
      let buttonCodes = authCodeOpts.value
      if (!buttonCodes.includes(value)) {
        // 没有权限，删除dom
        el.parentNode && el.parentNode.removeChild(el);
      }
    });
  }else{
    throw new Error('permission指令只接受字符串类型')
  }
}

export const permission={
  inserted(el,binding){
    checkPermission(el,binding)
  },
  updated(el,binding) {
    checkPermission(el,binding)
  },
}