@cclr/react-model 0.1.14 → 0.1.16

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,69 @@ 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(map) {
150
+ return set(function (prev) {
151
+ return _objectSpread2(_objectSpread2({}, prev), map);
142
152
  });
143
- }, []);
144
- return model.getState().value;
153
+ };
154
+ var handleForce = function handleForce(map) {
155
+ return set(map);
156
+ };
157
+ var handleDel = function handleDel(keys) {
158
+ return 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 [val, {
167
+ handleUpdate: handleUpdate,
168
+ handleForce: handleForce,
169
+ handleDel: handleDel
170
+ }];
145
171
  };
146
172
 
147
173
  /**
148
- * 获取精简的模型值设置
174
+ * 获取指定模型的状态和操作
175
+ * @param modelName
149
176
  * @param model
150
177
  * @returns
151
178
  */
152
- var useSimpleSet = function useSimpleSet(model) {
153
- return model.getActions().setValue;
179
+ var useStore = function useStore(modelName, model) {
180
+ var _useState = react.useState({}),
181
+ _useState2 = _slicedToArray(_useState, 2),
182
+ setState = _useState2[1];
183
+ react.useEffect(function () {
184
+ return model.subscribe(modelName, function () {
185
+ setState({});
186
+ });
187
+ }, []);
188
+ return [model.getState(modelName), model.getActions(modelName)];
154
189
  };
155
190
 
156
191
  var ReactModel = function ReactModel(models) {
@@ -163,6 +198,7 @@ var ReactModel = function ReactModel(models) {
163
198
  };
164
199
 
165
200
  exports.ReactModel = ReactModel;
201
+ exports.useObjStore = useObjStore;
166
202
  exports.useSimpleSet = useSimpleSet;
167
203
  exports.useSimpleStore = useSimpleStore;
168
204
  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,69 @@ 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(map) {
148
+ return set(function (prev) {
149
+ return _objectSpread2(_objectSpread2({}, prev), map);
140
150
  });
141
- }, []);
142
- return model.getState().value;
151
+ };
152
+ var handleForce = function handleForce(map) {
153
+ return set(map);
154
+ };
155
+ var handleDel = function handleDel(keys) {
156
+ return 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 [val, {
165
+ handleUpdate: handleUpdate,
166
+ handleForce: handleForce,
167
+ handleDel: handleDel
168
+ }];
143
169
  };
144
170
 
145
171
  /**
146
- * 获取精简的模型值设置
172
+ * 获取指定模型的状态和操作
173
+ * @param modelName
147
174
  * @param model
148
175
  * @returns
149
176
  */
150
- var useSimpleSet = function useSimpleSet(model) {
151
- return model.getActions().setValue;
177
+ var useStore = function useStore(modelName, model) {
178
+ var _useState = useState({}),
179
+ _useState2 = _slicedToArray(_useState, 2),
180
+ setState = _useState2[1];
181
+ useEffect(function () {
182
+ return model.subscribe(modelName, function () {
183
+ setState({});
184
+ });
185
+ }, []);
186
+ return [model.getState(modelName), model.getActions(modelName)];
152
187
  };
153
188
 
154
189
  var ReactModel = function ReactModel(models) {
@@ -160,4 +195,4 @@ var ReactModel = function ReactModel(models) {
160
195
  }, model);
161
196
  };
162
197
 
163
- export { ReactModel, useSimpleSet, useSimpleStore, useSimpleValue };
198
+ export { ReactModel, useObjStore, useSimpleSet, useSimpleStore, useSimpleValue };
@@ -1,4 +1,17 @@
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) => readonly [ReturnType<T["getState"]>["value"], {
11
+ readonly handleUpdate: (map: TPlainObject) => Promise<any>;
12
+ readonly handleForce: (map: TPlainObject) => Promise<any>;
13
+ readonly handleDel: (keys: string[]) => Promise<any>;
14
+ }];
2
15
 
3
16
  /**
4
17
  * 获取精简的模型状态和操作
@@ -37,4 +50,4 @@ type TReactModelsApi<MS extends ModelsType> = {
37
50
 
38
51
  declare const ReactModel: <MT extends ModelsType>(models: MT) => TReactModelsApi<MT>;
39
52
 
40
- export { ReactModel, useSimpleSet, useSimpleStore, useSimpleValue };
53
+ 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.14",
3
+ "version": "0.1.16",
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": "c0359e7db68cd14df406cb2c8d56b5fe14a2c3bb",
30
+ "gitHead": "8960f7c796054f1f0bbf0e7d0064af5f6abc4e05",
31
31
  "dependencies": {
32
- "@cclr/lang": "0.1.14",
33
- "@cclr/model": "0.1.14",
34
- "@cclr/utils": "0.1.14",
32
+ "@cclr/lang": "0.1.16",
33
+ "@cclr/model": "0.1.16",
34
+ "@cclr/utils": "0.1.16",
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
  }
package/lib/umd/index.js DELETED
@@ -1 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@cclr/model"),require("react")):"function"==typeof define&&define.amd?define(["exports","@cclr/model","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MyBundle={},e.model,e.react)}(this,(function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,u,c=[],f=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t);else for(;!(f=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);f=!0);}catch(e){l=!0,o=e}finally{try{if(!f&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}e.ReactModel=function(e){var n=t.Model(e);return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({useStore:function(e){return function(e,t){var n=u(r.useState(),2)[1];return r.useEffect((function(){return t.subscribe(e,n),function(){t.unsubscribe(e,n)}}),[]),[t.getState(e),t.getActions(e)]}(e,n)}},n)}}));