context.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { inject, provide, computed } from 'vue';
  2. import { defaultValidateMessages } from './utils/messages';
  3. export const FormContextKey = Symbol('formContextKey');
  4. export const useProvideForm = state => {
  5. provide(FormContextKey, state);
  6. };
  7. export const useInjectForm = () => {
  8. return inject(FormContextKey, {
  9. name: computed(() => undefined),
  10. labelAlign: computed(() => 'right'),
  11. vertical: computed(() => false),
  12. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  13. addField: (_eventKey, _field) => {},
  14. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  15. removeField: _eventKey => {},
  16. model: computed(() => undefined),
  17. rules: computed(() => undefined),
  18. colon: computed(() => undefined),
  19. labelWrap: computed(() => undefined),
  20. labelCol: computed(() => undefined),
  21. requiredMark: computed(() => false),
  22. validateTrigger: computed(() => undefined),
  23. onValidate: () => {},
  24. validateMessages: computed(() => defaultValidateMessages)
  25. });
  26. };
  27. export const FormItemPrefixContextKey = Symbol('formItemPrefixContextKey');
  28. export const useProvideFormItemPrefix = state => {
  29. provide(FormItemPrefixContextKey, state);
  30. };
  31. export const useInjectFormItemPrefix = () => {
  32. return inject(FormItemPrefixContextKey, {
  33. prefixCls: computed(() => '')
  34. });
  35. };