@cclr/react-model 0.1.13 → 0.1.15

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.
package/lib/cjs/index.js CHANGED
@@ -93,29 +93,28 @@ function _unsupportedIterableToArray(r, a) {
93
93
  }
94
94
 
95
95
  /**
96
- * 获取指定模型的状态和操作
97
- * @param modelName
96
+ * 获取精简的模型状态和操作
98
97
  * @param model
99
98
  * @returns
100
99
  */
101
- var useStore = function useStore(modelName, model) {
100
+ var useSimpleStore = function useSimpleStore(model) {
102
101
  var _useState = react.useState({}),
103
102
  _useState2 = _slicedToArray(_useState, 2),
104
103
  setState = _useState2[1];
105
104
  react.useEffect(function () {
106
- return model.subscribe(modelName, function () {
105
+ return model.subscribe(function () {
107
106
  setState({});
108
107
  });
109
108
  }, []);
110
- return [model.getState(modelName), model.getActions(modelName)];
109
+ return [model.getState().value, model.getActions().setValue];
111
110
  };
112
111
 
113
112
  /**
114
- * 获取精简的模型状态和操作
113
+ * 获取精简的模型值
115
114
  * @param model
116
115
  * @returns
117
116
  */
118
- var useSimpleStore = function useSimpleStore(model) {
117
+ var useSimpleValue = function useSimpleValue(model) {
119
118
  var _useState3 = react.useState({}),
120
119
  _useState4 = _slicedToArray(_useState3, 2),
121
120
  setState = _useState4[1];
@@ -124,33 +123,70 @@ var useSimpleStore = function useSimpleStore(model) {
124
123
  setState({});
125
124
  });
126
125
  }, []);
127
- return [model.getState().value, model.getActions().setValue];
126
+ return model.getState().value;
128
127
  };
129
128
 
130
129
  /**
131
- * 获取精简的模型值
130
+ * 获取精简的模型值设置
132
131
  * @param model
133
132
  * @returns
134
133
  */
135
- var useSimpleValue = function useSimpleValue(model) {
136
- var _useState5 = react.useState({}),
137
- _useState6 = _slicedToArray(_useState5, 2),
138
- setState = _useState6[1];
139
- react.useEffect(function () {
140
- return model.subscribe(function () {
141
- setState({});
134
+ var useSimpleSet = function useSimpleSet(model) {
135
+ return model.getActions().setValue;
136
+ };
137
+
138
+ /**
139
+ * 对于对象类型的模型,获取对象的状态和操作
140
+ * 依赖 ModelSimple
141
+ * @param model
142
+ * @returns
143
+ */
144
+ var useObjStore = function useObjStore(model) {
145
+ var _useSimpleStore = useSimpleStore(model),
146
+ _useSimpleStore2 = _slicedToArray(_useSimpleStore, 2),
147
+ val = _useSimpleStore2[0],
148
+ set = _useSimpleStore2[1];
149
+ var handleUpdate = function handleUpdate(key, value) {
150
+ set(function (prev) {
151
+ return _objectSpread2(_objectSpread2({}, prev), {}, _defineProperty({}, key, value));
142
152
  });
143
- }, []);
144
- return model.getState().value;
153
+ };
154
+ var handleForce = function handleForce(map) {
155
+ set(map);
156
+ };
157
+ var handleDel = function handleDel(keys) {
158
+ set(function (prev) {
159
+ var next = _objectSpread2({}, prev);
160
+ keys.forEach(function (key) {
161
+ delete next[key];
162
+ });
163
+ return next;
164
+ });
165
+ };
166
+ return {
167
+ value: val,
168
+ handleUpdate: handleUpdate,
169
+ handleForce: handleForce,
170
+ handleDel: handleDel
171
+ };
145
172
  };
146
173
 
147
174
  /**
148
- * 获取精简的模型值设置
175
+ * 获取指定模型的状态和操作
176
+ * @param modelName
149
177
  * @param model
150
178
  * @returns
151
179
  */
152
- var useSimpleSet = function useSimpleSet(model) {
153
- return model.getActions().setValue;
180
+ var useStore = function useStore(modelName, model) {
181
+ var _useState = react.useState({}),
182
+ _useState2 = _slicedToArray(_useState, 2),
183
+ setState = _useState2[1];
184
+ react.useEffect(function () {
185
+ return model.subscribe(modelName, function () {
186
+ setState({});
187
+ });
188
+ }, []);
189
+ return [model.getState(modelName), model.getActions(modelName)];
154
190
  };
155
191
 
156
192
  var ReactModel = function ReactModel(models) {
@@ -163,6 +199,7 @@ var ReactModel = function ReactModel(models) {
163
199
  };
164
200
 
165
201
  exports.ReactModel = ReactModel;
202
+ exports.useObjStore = useObjStore;
166
203
  exports.useSimpleSet = useSimpleSet;
167
204
  exports.useSimpleStore = useSimpleStore;
168
205
  exports.useSimpleValue = useSimpleValue;
package/lib/esm/index.js CHANGED
@@ -91,29 +91,28 @@ function _unsupportedIterableToArray(r, a) {
91
91
  }
92
92
 
93
93
  /**
94
- * 获取指定模型的状态和操作
95
- * @param modelName
94
+ * 获取精简的模型状态和操作
96
95
  * @param model
97
96
  * @returns
98
97
  */
99
- var useStore = function useStore(modelName, model) {
98
+ var useSimpleStore = function useSimpleStore(model) {
100
99
  var _useState = useState({}),
101
100
  _useState2 = _slicedToArray(_useState, 2),
102
101
  setState = _useState2[1];
103
102
  useEffect(function () {
104
- return model.subscribe(modelName, function () {
103
+ return model.subscribe(function () {
105
104
  setState({});
106
105
  });
107
106
  }, []);
108
- return [model.getState(modelName), model.getActions(modelName)];
107
+ return [model.getState().value, model.getActions().setValue];
109
108
  };
110
109
 
111
110
  /**
112
- * 获取精简的模型状态和操作
111
+ * 获取精简的模型值
113
112
  * @param model
114
113
  * @returns
115
114
  */
116
- var useSimpleStore = function useSimpleStore(model) {
115
+ var useSimpleValue = function useSimpleValue(model) {
117
116
  var _useState3 = useState({}),
118
117
  _useState4 = _slicedToArray(_useState3, 2),
119
118
  setState = _useState4[1];
@@ -122,33 +121,70 @@ var useSimpleStore = function useSimpleStore(model) {
122
121
  setState({});
123
122
  });
124
123
  }, []);
125
- return [model.getState().value, model.getActions().setValue];
124
+ return model.getState().value;
126
125
  };
127
126
 
128
127
  /**
129
- * 获取精简的模型值
128
+ * 获取精简的模型值设置
130
129
  * @param model
131
130
  * @returns
132
131
  */
133
- var useSimpleValue = function useSimpleValue(model) {
134
- var _useState5 = useState({}),
135
- _useState6 = _slicedToArray(_useState5, 2),
136
- setState = _useState6[1];
137
- useEffect(function () {
138
- return model.subscribe(function () {
139
- setState({});
132
+ var useSimpleSet = function useSimpleSet(model) {
133
+ return model.getActions().setValue;
134
+ };
135
+
136
+ /**
137
+ * 对于对象类型的模型,获取对象的状态和操作
138
+ * 依赖 ModelSimple
139
+ * @param model
140
+ * @returns
141
+ */
142
+ var useObjStore = function useObjStore(model) {
143
+ var _useSimpleStore = useSimpleStore(model),
144
+ _useSimpleStore2 = _slicedToArray(_useSimpleStore, 2),
145
+ val = _useSimpleStore2[0],
146
+ set = _useSimpleStore2[1];
147
+ var handleUpdate = function handleUpdate(key, value) {
148
+ set(function (prev) {
149
+ return _objectSpread2(_objectSpread2({}, prev), {}, _defineProperty({}, key, value));
140
150
  });
141
- }, []);
142
- return model.getState().value;
151
+ };
152
+ var handleForce = function handleForce(map) {
153
+ set(map);
154
+ };
155
+ var handleDel = function handleDel(keys) {
156
+ set(function (prev) {
157
+ var next = _objectSpread2({}, prev);
158
+ keys.forEach(function (key) {
159
+ delete next[key];
160
+ });
161
+ return next;
162
+ });
163
+ };
164
+ return {
165
+ value: val,
166
+ handleUpdate: handleUpdate,
167
+ handleForce: handleForce,
168
+ handleDel: handleDel
169
+ };
143
170
  };
144
171
 
145
172
  /**
146
- * 获取精简的模型值设置
173
+ * 获取指定模型的状态和操作
174
+ * @param modelName
147
175
  * @param model
148
176
  * @returns
149
177
  */
150
- var useSimpleSet = function useSimpleSet(model) {
151
- return model.getActions().setValue;
178
+ var useStore = function useStore(modelName, model) {
179
+ var _useState = useState({}),
180
+ _useState2 = _slicedToArray(_useState, 2),
181
+ setState = _useState2[1];
182
+ useEffect(function () {
183
+ return model.subscribe(modelName, function () {
184
+ setState({});
185
+ });
186
+ }, []);
187
+ return [model.getState(modelName), model.getActions(modelName)];
152
188
  };
153
189
 
154
190
  var ReactModel = function ReactModel(models) {
@@ -160,4 +196,4 @@ var ReactModel = function ReactModel(models) {
160
196
  }, model);
161
197
  };
162
198
 
163
- export { ReactModel, useSimpleSet, useSimpleStore, useSimpleValue };
199
+ export { ReactModel, useObjStore, useSimpleSet, useSimpleStore, useSimpleValue };
@@ -1,4 +1,18 @@
1
1
  import { ModelsSingleApi, ModelType, TGetStateType, TGetActionsType, ModelsType, TActionMapApi, TSubscribesFun } from '@cclr/model';
2
+ import { TPlainObject } from '@cclr/lang';
3
+
4
+ /**
5
+ * 对于对象类型的模型,获取对象的状态和操作
6
+ * 依赖 ModelSimple
7
+ * @param model
8
+ * @returns
9
+ */
10
+ declare const useObjStore: <T extends ModelsSingleApi<ModelType>>(model: T) => {
11
+ value: ReturnType<T["getState"]>["value"];
12
+ handleUpdate: (key: string, value: any) => void;
13
+ handleForce: (map: TPlainObject) => void;
14
+ handleDel: (keys: string[]) => void;
15
+ };
2
16
 
3
17
  /**
4
18
  * 获取精简的模型状态和操作
@@ -37,4 +51,4 @@ type TReactModelsApi<MS extends ModelsType> = {
37
51
 
38
52
  declare const ReactModel: <MT extends ModelsType>(models: MT) => TReactModelsApi<MT>;
39
53
 
40
- export { ReactModel, useSimpleSet, useSimpleStore, useSimpleValue };
54
+ export { ReactModel, useObjStore, useSimpleSet, useSimpleStore, useSimpleValue };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cclr/react-model",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "前端开发状态管理",
5
5
  "author": "cclr <18843152354@163.com>",
6
6
  "homepage": "",
@@ -27,14 +27,16 @@
27
27
  "g:test": "vitest run",
28
28
  "g:build": "ccm lib"
29
29
  },
30
- "gitHead": "731ccef207bc8ed3120229b2041a42ee9cb5dd7f",
30
+ "gitHead": "725a0de36f28dadbd785e5c3575d9db26248eaeb",
31
31
  "dependencies": {
32
- "@cclr/lang": "0.1.12",
33
- "@cclr/model": "0.1.12",
34
- "@cclr/utils": "0.1.12",
32
+ "@cclr/lang": "0.1.15",
33
+ "@cclr/model": "0.1.15",
34
+ "@cclr/utils": "0.1.15",
35
+ "immer": "^10.1.1"
36
+ },
37
+ "devDependencies": {
35
38
  "@testing-library/react-hooks": "^8.0.1",
36
39
  "@types/react": "^18.3.12",
37
- "immer": "^10.1.1",
38
40
  "react": "^18.3.1",
39
41
  "react-dom": "^18.3.1"
40
42
  }