ivue-material-plus
Version:
A high quality UI components Library with Vue.js
20 lines (15 loc) • 547 B
text/typescript
import { computed, inject, unref } from 'vue';
import { useProp } from '../use-prop';
// type
import type { MaybeRef } from '@vueuse/core';
import { FormContextKey } from '../../components/ivue-form/types/form';
// 是否禁用
export const useDisabled = (fallback?: MaybeRef<boolean | undefined>) => {
// 禁用
const disabled = useProp<boolean>('disabled');
// 表单
const form = inject(FormContextKey, undefined);
return computed(
() => disabled.value || unref(fallback) || form?.disabled || false
);
};