ronds-metadata 1.0.51 → 1.0.52

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.
@@ -3,13 +3,12 @@ import _Button from "antd/es/button";
3
3
  import "antd/es/table/style";
4
4
  import _Table from "antd/es/table";
5
5
  import _extends from "@babel/runtime/helpers/esm/extends";
6
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
7
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
8
6
  import "antd/es/message/style";
9
7
  import _message from "antd/es/message";
8
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
9
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
10
10
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
11
11
  import React from 'react';
12
- import { BehaviorSubject } from 'rxjs';
13
12
  import { pick, isArray } from 'lodash';
14
13
  import EditableCell from './comps/EditableCell';
15
14
  import EditableRow from './comps/EditableRow';
@@ -17,6 +16,8 @@ import { EditableContext } from './interface';
17
16
  import EditableAction from './comps/EditableAction';
18
17
  import { isFreeEditRow, removeCurKeyFromEditRow } from './utils';
19
18
  import EditableHeardCell from './comps/EditableHeardCell';
19
+ import useMemoSubject from '../../framework/rxjs-hooks/useMemoSubject';
20
+ import useObservable from '../../framework/rxjs-hooks/useObservable';
20
21
 
21
22
  var Editable = function Editable(props) {
22
23
  var _props$type = props.type,
@@ -78,38 +79,7 @@ var Editable = function Editable(props) {
78
79
  var lastDataSourceRef = React.useRef();
79
80
  var firstLoadRef = React.useRef(true); // 定义处理编辑表格的数据流
80
81
 
81
- var editableStream = React.useMemo(function () {
82
- return new BehaviorSubject(undefined);
83
- }, []);
84
-
85
- var processAddColumnsData = function processAddColumnsData(data) {
86
- var _columns = addColumnsRef.current.length > 0 ? addColumnsRef.current : columns; // 判断key是否重复
87
-
88
-
89
- if (_columns.findIndex(function (v) {
90
- return v.key === data.key;
91
- }) > -1) {
92
- _message.warning('表格的key不可以重复');
93
-
94
- return;
95
- }
96
-
97
- var idx = _columns.findIndex(function (v) {
98
- return v.dataIndex === data.dataIndex;
99
- });
100
-
101
- var obj = {
102
- title: data.title,
103
- key: data.key,
104
- dataIndex: data.key
105
- };
106
-
107
- _columns.splice(idx + 1, 0, _objectSpread(_objectSpread({}, _columns[0]), obj));
108
-
109
- setAddColumns(_toConsumableArray(_columns));
110
- addColumnsRef.current = _columns; // editableStream.next({ type: 'editHeardCellKey', payload: undefined });
111
- };
112
-
82
+ var editableStream = useMemoSubject();
113
83
  var processStreamFactory = React.useCallback(function (data) {
114
84
  switch (data === null || data === void 0 ? void 0 : data.type) {
115
85
  case 'onValuesChange':
@@ -216,7 +186,38 @@ var Editable = function Editable(props) {
216
186
 
217
187
  break;
218
188
  }
219
- }, [type]); // 返回stream的实例
189
+ }, [type]); // 集中处理数据流
190
+
191
+ useObservable(processStreamFactory, [editableStream]);
192
+
193
+ var processAddColumnsData = function processAddColumnsData(data) {
194
+ var _columns = addColumnsRef.current.length > 0 ? addColumnsRef.current : columns; // 判断key是否重复
195
+
196
+
197
+ if (_columns.findIndex(function (v) {
198
+ return v.key === data.key;
199
+ }) > -1) {
200
+ _message.warning('表格的key不可以重复');
201
+
202
+ return;
203
+ }
204
+
205
+ var idx = _columns.findIndex(function (v) {
206
+ return v.dataIndex === data.dataIndex;
207
+ });
208
+
209
+ var obj = {
210
+ title: data.title,
211
+ key: data.key,
212
+ dataIndex: data.key
213
+ };
214
+
215
+ _columns.splice(idx + 1, 0, _objectSpread(_objectSpread({}, _columns[0]), obj));
216
+
217
+ setAddColumns(_toConsumableArray(_columns));
218
+ addColumnsRef.current = _columns; // editableStream.next({ type: 'editHeardCellKey', payload: undefined });
219
+ }; // 返回stream的实例
220
+
220
221
 
221
222
  React.useEffect(function () {
222
223
  if (firstLoadRef && editableStream) {
@@ -230,16 +231,7 @@ var Editable = function Editable(props) {
230
231
  setRecords(_toConsumableArray(dataSource));
231
232
  recordsRef.current = dataSource;
232
233
  }
233
- }, [dataSource]); // 集中处理数据流
234
-
235
- React.useEffect(function () {
236
- var subscription = editableStream.subscribe(function (p) {
237
- processStreamFactory(p);
238
- });
239
- return function () {
240
- return subscription.unsubscribe();
241
- };
242
- }, [editableStream, processStreamFactory]);
234
+ }, [dataSource]);
243
235
  var getEditColumn = React.useCallback(function (column) {
244
236
  var _column = _objectSpread(_objectSpread({}, column), {}, {
245
237
  children: isArray(column === null || column === void 0 ? void 0 : column.children) ? column.children.map(getEditColumn) : undefined
@@ -0,0 +1,3 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ declare const useMemoSubject: <T>() => BehaviorSubject<T>;
3
+ export default useMemoSubject;
@@ -0,0 +1,16 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2022-03-30 10:12:11
4
+ * @LastEditTime: 2022-03-30 10:39:05
5
+ */
6
+ import React from 'react';
7
+ import { BehaviorSubject } from 'rxjs';
8
+
9
+ var useMemoSubject = function useMemoSubject() {
10
+ var subject$ = React.useMemo(function () {
11
+ return new BehaviorSubject(undefined);
12
+ }, []);
13
+ return subject$;
14
+ };
15
+
16
+ export default useMemoSubject;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const useObservable: <T>(fn: Function, dep?: React.DependencyList) => void;
3
+ export default useObservable;
@@ -0,0 +1,20 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2022-03-30 10:12:11
4
+ * @LastEditTime: 2022-03-30 10:52:51
5
+ */
6
+ import React from 'react';
7
+
8
+ var useObservable = function useObservable(fn) {
9
+ var dep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
10
+ React.useEffect(function () {
11
+ var subscription = dep[0] && dep[0].subscribe(function (p) {
12
+ fn(p);
13
+ });
14
+ return function () {
15
+ return subscription && subscription.unsubscribe();
16
+ };
17
+ }, dep);
18
+ };
19
+
20
+ export default useObservable;
package/es/index.d.ts CHANGED
@@ -8,4 +8,6 @@ export { default as MdEditor } from './comps/MdEdit';
8
8
  export { default as Editable } from './comps/Editable';
9
9
  export * from './framework/metadata/index';
10
10
  export { default as http, addInterceptor } from './framework/http/index';
11
+ export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
12
+ export { default as useObservable } from './framework/rxjs-hooks/useObservable';
11
13
  export { registerMetadataAPI } from './framework/metadata/MetadataService';
package/es/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * @Author:wangxian
3
3
  * @Date: 2021-09-18 14:15:04
4
- * @LastEditTime: 2022-03-16 16:51:12
4
+ * @LastEditTime: 2022-03-30 10:55:03
5
5
  */
6
6
  export { default as MetadataEdit } from './comps/MetadataEdit';
7
7
  export { default as MetaPropsEdit } from './comps/MetadataEdit/components/MetaPropsEdit';
@@ -13,4 +13,6 @@ export { default as MdEditor } from './comps/MdEdit';
13
13
  export { default as Editable } from './comps/Editable';
14
14
  export * from './framework/metadata/index';
15
15
  export { default as http, addInterceptor } from './framework/http/index';
16
+ export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
17
+ export { default as useObservable } from './framework/rxjs-hooks/useObservable';
16
18
  export { registerMetadataAPI } from './framework/metadata/MetadataService';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "public": true,
3
3
  "name": "ronds-metadata",
4
- "version": "1.0.51",
4
+ "version": "1.0.52",
5
5
  "scripts": {
6
6
  "start": "dumi dev",
7
7
  "docs:build": "dumi build",