@zat-design/sisyphus-react 3.9.5-beta.1 → 3.9.5-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ModifiedFormInstance } from '../ProForm/utils/useForm';
3
+ type Forms = Record<string, ModifiedFormInstance<any>>;
4
+ export declare const FormsContext: React.Context<Forms>;
5
+ /**
6
+ * @param formKey 表单实例key
7
+ * @param formIst form实例, 如果传了会把传入的实例存入全局
8
+ * @returns 没有入参: 返回表单实例但是不存入全局
9
+ * 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
10
+ */
11
+ export declare const useForms: () => Forms;
12
+ /** 获取所有表单实例 */
13
+ export declare const useContextForms: () => Forms;
14
+ declare const FormsProvider: React.FC;
15
+ export default FormsProvider;
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useContext, useEffect, useRef } from 'react';
3
+ export var FormsContext = /*#__PURE__*/React.createContext({});
4
+ /**
5
+ * @param formKey 表单实例key
6
+ * @param formIst form实例, 如果传了会把传入的实例存入全局
7
+ * @returns 没有入参: 返回表单实例但是不存入全局
8
+ * 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
9
+ */
10
+ export var useForms = function useForms() {
11
+ var forms = useContext(FormsContext);
12
+ return forms;
13
+ };
14
+ /** 获取所有表单实例 */
15
+ export var useContextForms = function useContextForms() {
16
+ var forms = useContext(FormsContext);
17
+ return forms;
18
+ };
19
+ var FormsProvider = function FormsProvider(props) {
20
+ var formsRef = useRef({});
21
+ useEffect(function () {
22
+ // 销毁
23
+ return function () {
24
+ formsRef.current = {};
25
+ };
26
+ }, []);
27
+ return _jsx(FormsContext.Provider, {
28
+ value: formsRef.current,
29
+ children: props.children
30
+ });
31
+ };
32
+ export default FormsProvider;
@@ -20,7 +20,6 @@ interface ConfigContext {
20
20
  export declare const ProConfigContext: React.Context<ConfigContext>;
21
21
  export declare function useProConfig(): ConfigContext;
22
22
  export declare function useProConfig(name: keyof ConfigContext['state']): ConfigContext['state'][keyof ConfigContext['state']];
23
- export declare function useContextForms(): Record<string, FormInstance<any>>;
24
23
  type ActionsType = 'set' | 'setProEnum' | 'setProEnumDic' | 'setWithLocal';
25
24
  interface Actions {
26
25
  type: ActionsType;
@@ -35,11 +35,6 @@ export function useProConfig(name) {
35
35
  var config = useContext(ProConfigContext);
36
36
  return name ? config.state[name] : config;
37
37
  }
38
- export function useContextForms() {
39
- var _config$state;
40
- var config = useContext(ProConfigContext);
41
- return (_config$state = config.state) === null || _config$state === void 0 ? void 0 : _config$state.forms;
42
- }
43
38
  var antdLangMap = {
44
39
  'zh-CN': zhCN,
45
40
  'en-US': enUS // en-US
@@ -2,13 +2,13 @@ import "antd/es/row/style";
2
2
  import _Row from "antd/es/row";
3
3
  import "antd/es/form/style";
4
4
  import _Form from "antd/es/form";
5
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
6
  import "antd/es/col/style";
6
7
  import _Col from "antd/es/col";
7
8
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
9
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
9
10
  import "antd/es/space/style";
10
11
  import _Space from "antd/es/space";
11
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
12
12
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
13
13
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
14
14
  var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
@@ -19,14 +19,15 @@ import React, { forwardRef, useImperativeHandle, useMemo } from 'react';
19
19
  import { isObject, merge, omit } from 'lodash';
20
20
  import { FormFooter, InputRange, ProAddress, ProCascader, ProCertNo, ProCertValidity, ProCombination, ProModalSelect, ProNumberRange, ProRangeBox, ProTimeLimit, transferAddressInfoToRegion, ProUpload, ProTreeModal, ProTree, EnumSelect } from './components';
21
21
  import RenderFields from './components/render/RenderFields';
22
- import { useProConfig, useContextForms } from '../ProConfigProvider';
22
+ import { useProConfig } from '../ProConfigProvider';
23
23
  import { getLayout, splitNameStr, useControlled, initialValuesToNames, filterInternalFields } from './utils/index';
24
24
  import { useForm } from './utils/useForm';
25
25
  import { useFieldProps } from './utils/useFieldProps';
26
26
  import locale from '../locale';
27
27
  import useWatch from './utils/useWatch';
28
+ import { useContextForms, useForms } from '../FormsProvider';
28
29
  var ProForm = function ProForm(props, ref) {
29
- var _forms$formKey, _localStorage, _ref;
30
+ var _localStorage, _ref;
30
31
  var _props$mode = props.mode,
31
32
  mode = _props$mode === void 0 ? 'search' : _props$mode,
32
33
  span = props.span,
@@ -69,17 +70,15 @@ var ProForm = function ProForm(props, ref) {
69
70
  _props$optimize = props.optimize,
70
71
  optimize = _props$optimize === void 0 ? false : _props$optimize,
71
72
  otherProps = _objectWithoutProperties(props, _excluded);
72
- var _useProConfig = useProConfig(),
73
- state = _useProConfig.state,
74
- dispatch = _useProConfig.dispatch;
75
- var config = state.ProForm,
76
- forms = state.forms;
77
- var _useForm = useForm((_forms$formKey = forms[formKey]) !== null && _forms$formKey !== void 0 ? _forms$formKey : originForm, {
73
+ var config = useProConfig('ProForm');
74
+ var _useForm = useForm(originForm, {
78
75
  scrollToError: scrollToError,
79
- optimize: optimize
76
+ optimize: optimize,
77
+ formKey: formKey
80
78
  }),
81
79
  _useForm2 = _slicedToArray(_useForm, 1),
82
80
  form = _useForm2[0];
81
+ // const form = useForms(formKey, originForm, { scrollToError, optimize, formKey });
83
82
  var _useControlled = useControlled({
84
83
  value: expandOpen,
85
84
  onChange: expandOpenChange
@@ -88,32 +87,22 @@ var ProForm = function ProForm(props, ref) {
88
87
  openState = _useControlled2[0],
89
88
  setOpenState = _useControlled2[1];
90
89
  // 把表单实例存入表单组
91
- useMemo(function () {
92
- if (formKey && forms[formKey] !== form) {
93
- forms[formKey] = form;
94
- // fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
95
- setTimeout(function () {
96
- dispatch({
97
- type: 'set',
98
- payload: {
99
- forms: _objectSpread({}, forms)
100
- }
101
- });
102
- }, 300);
103
- }
104
- // 销毁
105
- return function () {
106
- if (formKey && forms[formKey]) {
107
- delete forms[formKey];
108
- dispatch({
109
- type: 'set',
110
- payload: {
111
- forms: _objectSpread({}, forms)
112
- }
113
- });
114
- }
115
- };
116
- }, [formKey, form]);
90
+ // useMemo(() => {
91
+ // if (formKey && forms[formKey] !== form) {
92
+ // forms[formKey] = form;
93
+ // // fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
94
+ // setTimeout(() => {
95
+ // dispatch({ type: 'set', payload: { forms: { ...forms } } });
96
+ // }, 300);
97
+ // }
98
+ // // 销毁
99
+ // return () => {
100
+ // if (formKey && forms[formKey]) {
101
+ // delete forms[formKey];
102
+ // dispatch({ type: 'set', payload: { forms: { ...forms } } });
103
+ // }
104
+ // };
105
+ // }, [formKey, form]);
117
106
  var _getLayout = getLayout({
118
107
  span: span,
119
108
  form: form
@@ -310,7 +299,8 @@ export var ProFormProvider = function ProFormProvider(props) {
310
299
  };
311
300
  ProFormForward.Provider = ProFormProvider; // 包装Provider
312
301
  ProFormForward.useFieldProps = useFieldProps; // 获取每个字段的其他参数 -otherProps
313
- ProFormForward.useContextForms = useContextForms; // 获取 ProConfigProvider中的表单实例map
302
+ ProFormForward.useForms = useForms; // 获取上下文中的共享的表单实例map
303
+ ProFormForward.useContextForms = useContextForms; // 获取上下文中的共享的表单实例map
314
304
  // 内置组合
315
305
  ProFormForward.ProCascader = ProCascader;
316
306
  ProFormForward.ProCombination = ProCombination;
@@ -1,15 +1,16 @@
1
1
  import { FormInstance } from 'antd';
2
2
  import { NamePath } from 'antd/es/form/interface';
3
3
  import { ValuedNotifyInfo } from 'rc-field-form/es/interface';
4
- type ModifiedFormInstance<T> = FormInstance<T> & {
4
+ export type ModifiedFormInstance<T> = FormInstance<T> & {
5
5
  isModified?: boolean;
6
6
  /** 默认清空设置值的报错状态 */
7
7
  setFieldValue: (name: NamePath, value: any, info?: ValuedNotifyInfo) => void;
8
+ formKey?: string;
8
9
  _init?: boolean;
9
10
  };
10
- interface FormInstanceOption {
11
+ export interface FormInstanceOption {
11
12
  scrollToError?: boolean;
12
13
  optimize?: boolean;
14
+ formKey?: string;
13
15
  }
14
16
  export declare const useForm: <T>(originForm?: FormInstanceOption | ModifiedFormInstance<T>, options?: FormInstanceOption) => [ModifiedFormInstance<T>];
15
- export {};
@@ -5,8 +5,10 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
5
  import "antd/es/form/style";
6
6
  import _Form from "antd/es/form";
7
7
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
8
+ import { useContext } from 'react';
8
9
  import { filterInternalFields } from './index';
9
10
  import { handleScrollToError } from '../../ProEditTable/utils/tools';
11
+ import { FormsContext } from '../../FormsProvider';
10
12
  export var useForm = function useForm(originForm, options) {
11
13
  // 如果没有form实例可以直接把options放在第一个参数位置
12
14
  // @ts-ignore
@@ -17,10 +19,17 @@ export var useForm = function useForm(originForm, options) {
17
19
  var _ref = _options || {},
18
20
  _ref$scrollToError = _ref.scrollToError,
19
21
  scrollToError = _ref$scrollToError === void 0 ? true : _ref$scrollToError,
20
- optimize = _ref.optimize;
21
- var _Form$useForm = _Form.useForm(_originForm),
22
+ optimize = _ref.optimize,
23
+ formKey = _ref.formKey;
24
+ // formKey全局共享逻辑
25
+ var forms = useContext(FormsContext);
26
+ var _Form$useForm = _Form.useForm(forms[formKey] || _originForm),
22
27
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
23
28
  form = _Form$useForm2[0];
29
+ if (formKey && forms[formKey] !== form) {
30
+ forms[formKey] = form;
31
+ form.formKey = formKey;
32
+ }
24
33
  var getFieldsValue = form.getFieldsValue,
25
34
  validateFields = form.validateFields,
26
35
  isModified = form.isModified,
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ModifiedFormInstance } from '../ProForm/utils/useForm';
3
+ type Forms = Record<string, ModifiedFormInstance<any>>;
4
+ export declare const FormsContext: React.Context<Forms>;
5
+ /**
6
+ * @param formKey 表单实例key
7
+ * @param formIst form实例, 如果传了会把传入的实例存入全局
8
+ * @returns 没有入参: 返回表单实例但是不存入全局
9
+ * 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
10
+ */
11
+ export declare const useForms: () => Forms;
12
+ /** 获取所有表单实例 */
13
+ export declare const useContextForms: () => Forms;
14
+ declare const FormsProvider: React.FC;
15
+ export default FormsProvider;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useForms = exports.useContextForms = exports.default = exports.FormsContext = void 0;
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var FormsContext = exports.FormsContext = /*#__PURE__*/_react.default.createContext({});
11
+ /**
12
+ * @param formKey 表单实例key
13
+ * @param formIst form实例, 如果传了会把传入的实例存入全局
14
+ * @returns 没有入参: 返回表单实例但是不存入全局
15
+ * 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
16
+ */
17
+ var useForms = exports.useForms = function useForms() {
18
+ var forms = (0, _react.useContext)(FormsContext);
19
+ return forms;
20
+ };
21
+ /** 获取所有表单实例 */
22
+ var useContextForms = exports.useContextForms = function useContextForms() {
23
+ var forms = (0, _react.useContext)(FormsContext);
24
+ return forms;
25
+ };
26
+ var FormsProvider = function FormsProvider(props) {
27
+ var formsRef = (0, _react.useRef)({});
28
+ (0, _react.useEffect)(function () {
29
+ // 销毁
30
+ return function () {
31
+ formsRef.current = {};
32
+ };
33
+ }, []);
34
+ return (0, _jsxRuntime.jsx)(FormsContext.Provider, {
35
+ value: formsRef.current,
36
+ children: props.children
37
+ });
38
+ };
39
+ var _default = exports.default = FormsProvider;
@@ -20,7 +20,6 @@ interface ConfigContext {
20
20
  export declare const ProConfigContext: React.Context<ConfigContext>;
21
21
  export declare function useProConfig(): ConfigContext;
22
22
  export declare function useProConfig(name: keyof ConfigContext['state']): ConfigContext['state'][keyof ConfigContext['state']];
23
- export declare function useContextForms(): Record<string, FormInstance<any>>;
24
23
  type ActionsType = 'set' | 'setProEnum' | 'setProEnumDic' | 'setWithLocal';
25
24
  interface Actions {
26
25
  type: ActionsType;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = exports.ProConfigProvider = exports.ProConfigContext = void 0;
9
- exports.useContextForms = useContextForms;
10
9
  exports.useProConfig = useProConfig;
11
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -44,11 +43,6 @@ function useProConfig(name) {
44
43
  var config = (0, _react.useContext)(ProConfigContext);
45
44
  return name ? config.state[name] : config;
46
45
  }
47
- function useContextForms() {
48
- var _config$state;
49
- var config = (0, _react.useContext)(ProConfigContext);
50
- return (_config$state = config.state) === null || _config$state === void 0 ? void 0 : _config$state.forms;
51
- }
52
46
  var antdLangMap = {
53
47
  'zh-CN': _zh_CN.default,
54
48
  'en-US': _en_US.default // en-US
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = exports.ProFormProvider = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -25,9 +25,10 @@ var _useForm3 = require("./utils/useForm");
25
25
  var _useFieldProps = require("./utils/useFieldProps");
26
26
  var _locale = _interopRequireDefault(require("../locale"));
27
27
  var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
28
+ var _FormsProvider = require("../FormsProvider");
28
29
  var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
29
30
  var ProForm = function ProForm(props, ref) {
30
- var _forms$formKey, _localStorage, _ref;
31
+ var _localStorage, _ref;
31
32
  var _props$mode = props.mode,
32
33
  mode = _props$mode === void 0 ? 'search' : _props$mode,
33
34
  span = props.span,
@@ -70,17 +71,15 @@ var ProForm = function ProForm(props, ref) {
70
71
  _props$optimize = props.optimize,
71
72
  optimize = _props$optimize === void 0 ? false : _props$optimize,
72
73
  otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
73
- var _useProConfig = (0, _ProConfigProvider.useProConfig)(),
74
- state = _useProConfig.state,
75
- dispatch = _useProConfig.dispatch;
76
- var config = state.ProForm,
77
- forms = state.forms;
78
- var _useForm = (0, _useForm3.useForm)((_forms$formKey = forms[formKey]) !== null && _forms$formKey !== void 0 ? _forms$formKey : originForm, {
74
+ var config = (0, _ProConfigProvider.useProConfig)('ProForm');
75
+ var _useForm = (0, _useForm3.useForm)(originForm, {
79
76
  scrollToError: scrollToError,
80
- optimize: optimize
77
+ optimize: optimize,
78
+ formKey: formKey
81
79
  }),
82
80
  _useForm2 = (0, _slicedToArray2.default)(_useForm, 1),
83
81
  form = _useForm2[0];
82
+ // const form = useForms(formKey, originForm, { scrollToError, optimize, formKey });
84
83
  var _useControlled = (0, _index.useControlled)({
85
84
  value: expandOpen,
86
85
  onChange: expandOpenChange
@@ -89,32 +88,22 @@ var ProForm = function ProForm(props, ref) {
89
88
  openState = _useControlled2[0],
90
89
  setOpenState = _useControlled2[1];
91
90
  // 把表单实例存入表单组
92
- (0, _react.useMemo)(function () {
93
- if (formKey && forms[formKey] !== form) {
94
- forms[formKey] = form;
95
- // fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
96
- setTimeout(function () {
97
- dispatch({
98
- type: 'set',
99
- payload: {
100
- forms: (0, _objectSpread2.default)({}, forms)
101
- }
102
- });
103
- }, 300);
104
- }
105
- // 销毁
106
- return function () {
107
- if (formKey && forms[formKey]) {
108
- delete forms[formKey];
109
- dispatch({
110
- type: 'set',
111
- payload: {
112
- forms: (0, _objectSpread2.default)({}, forms)
113
- }
114
- });
115
- }
116
- };
117
- }, [formKey, form]);
91
+ // useMemo(() => {
92
+ // if (formKey && forms[formKey] !== form) {
93
+ // forms[formKey] = form;
94
+ // // fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
95
+ // setTimeout(() => {
96
+ // dispatch({ type: 'set', payload: { forms: { ...forms } } });
97
+ // }, 300);
98
+ // }
99
+ // // 销毁
100
+ // return () => {
101
+ // if (formKey && forms[formKey]) {
102
+ // delete forms[formKey];
103
+ // dispatch({ type: 'set', payload: { forms: { ...forms } } });
104
+ // }
105
+ // };
106
+ // }, [formKey, form]);
118
107
  var _getLayout = (0, _index.getLayout)({
119
108
  span: span,
120
109
  form: form
@@ -311,7 +300,8 @@ var ProFormProvider = exports.ProFormProvider = function ProFormProvider(props)
311
300
  };
312
301
  ProFormForward.Provider = ProFormProvider; // 包装Provider
313
302
  ProFormForward.useFieldProps = _useFieldProps.useFieldProps; // 获取每个字段的其他参数 -otherProps
314
- ProFormForward.useContextForms = _ProConfigProvider.useContextForms; // 获取 ProConfigProvider中的表单实例map
303
+ ProFormForward.useForms = _FormsProvider.useForms; // 获取上下文中的共享的表单实例map
304
+ ProFormForward.useContextForms = _FormsProvider.useContextForms; // 获取上下文中的共享的表单实例map
315
305
  // 内置组合
316
306
  ProFormForward.ProCascader = _components.ProCascader;
317
307
  ProFormForward.ProCombination = _components.ProCombination;
@@ -1,15 +1,16 @@
1
1
  import { FormInstance } from 'antd';
2
2
  import { NamePath } from 'antd/es/form/interface';
3
3
  import { ValuedNotifyInfo } from 'rc-field-form/es/interface';
4
- type ModifiedFormInstance<T> = FormInstance<T> & {
4
+ export type ModifiedFormInstance<T> = FormInstance<T> & {
5
5
  isModified?: boolean;
6
6
  /** 默认清空设置值的报错状态 */
7
7
  setFieldValue: (name: NamePath, value: any, info?: ValuedNotifyInfo) => void;
8
+ formKey?: string;
8
9
  _init?: boolean;
9
10
  };
10
- interface FormInstanceOption {
11
+ export interface FormInstanceOption {
11
12
  scrollToError?: boolean;
12
13
  optimize?: boolean;
14
+ formKey?: string;
13
15
  }
14
16
  export declare const useForm: <T>(originForm?: FormInstanceOption | ModifiedFormInstance<T>, options?: FormInstanceOption) => [ModifiedFormInstance<T>];
15
- export {};
@@ -11,8 +11,10 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
  var _antd = require("antd");
14
+ var _react = require("react");
14
15
  var _index = require("./index");
15
16
  var _tools = require("../../ProEditTable/utils/tools");
17
+ var _FormsProvider = require("../../FormsProvider");
16
18
  var useForm = exports.useForm = function useForm(originForm, options) {
17
19
  // 如果没有form实例可以直接把options放在第一个参数位置
18
20
  // @ts-ignore
@@ -23,10 +25,17 @@ var useForm = exports.useForm = function useForm(originForm, options) {
23
25
  var _ref = _options || {},
24
26
  _ref$scrollToError = _ref.scrollToError,
25
27
  scrollToError = _ref$scrollToError === void 0 ? true : _ref$scrollToError,
26
- optimize = _ref.optimize;
27
- var _Form$useForm = _antd.Form.useForm(_originForm),
28
+ optimize = _ref.optimize,
29
+ formKey = _ref.formKey;
30
+ // formKey全局共享逻辑
31
+ var forms = (0, _react.useContext)(_FormsProvider.FormsContext);
32
+ var _Form$useForm = _antd.Form.useForm(forms[formKey] || _originForm),
28
33
  _Form$useForm2 = (0, _slicedToArray2.default)(_Form$useForm, 1),
29
34
  form = _Form$useForm2[0];
35
+ if (formKey && forms[formKey] !== form) {
36
+ forms[formKey] = form;
37
+ form.formKey = formKey;
38
+ }
30
39
  var getFieldsValue = form.getFieldsValue,
31
40
  validateFields = form.validateFields,
32
41
  isModified = form.isModified,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.9.5-beta.1",
3
+ "version": "3.9.5-beta.3",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -1,5 +0,0 @@
1
- {
2
- "recommendations": [
3
- "kisstkondoros.vscode-codemetrics"
4
- ]
5
- }