@mic-rexjs/usecases-react 1.6.4 → 1.7.0

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/dist/index.min.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.min.js.LICENSE.txt */
2
- !function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("react"),require("ahooks"),require("@mic-rexjs/usecases"));else if("function"==typeof define&&define.amd)define(["react","ahooks","@mic-rexjs/usecases"],r);else{var t="object"==typeof exports?r(require("react"),require("ahooks"),require("@mic-rexjs/usecases")):r(e.react,e.ahooks,e["@mic-rexjs/usecases"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,((e,r,t)=>(()=>{"use strict";var n={251:(e,r,t)=>{var n=t(156),o=Symbol.for("react.element"),u=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};r.jsx=function(e,r,t){var n,c={},f=null,s=null;for(n in void 0!==t&&(f=""+t),void 0!==r.key&&(f=""+r.key),void 0!==r.ref&&(s=r.ref),r)u.call(r,n)&&!a.hasOwnProperty(n)&&(c[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===c[n]&&(c[n]=r[n]);return{$$typeof:o,type:e,key:f,ref:s,props:c,_owner:i.current}}},893:(e,r,t)=>{e.exports=t(251)},112:e=>{e.exports=t},749:e=>{e.exports=r},156:r=>{r.exports=e}},o={};function u(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return n[e](t,t.exports,u),t.exports}u.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return u.d(r,{a:r}),r},u.d=(e,r)=>{for(var t in r)u.o(r,t)&&!u.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},u.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{u.r(i),u.d(i,{UseCaseFragment:()=>C,useUseCase:()=>P});var e=u(893),r=u(156),t=u.n(r);function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function a(e,r){if(e){if("string"==typeof e)return o(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}function c(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,u,i,a=[],c=!0,f=!1;try{if(u=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=u.call(t)).done)&&(a.push(n.value),a.length!==r);c=!0);}catch(e){f=!0,o=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(e,r)||a(e,r)||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.")}()}var f=u(749),s=function(e){return c((0,r.useState)(e),1)[0]},l=function(e,r){var t=e.length;if(t!==r.length)return!1;for(var n=0;n<t;n++)if(e[n]!==r[n])return!1;return!0};function y(e,r,t){return(r=function(e){var r=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===n(r)?r:String(r)}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var p=u(112),v=["stateless","watch","onChange","options"];function b(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?b(Object(t),!0).forEach((function(r){y(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var m=function(e,r){var t=e.indexOf(r);-1!==t&&e.splice(t,1)};function h(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var O=function(e,r){return"object"===n(e)&&null!==e&&Object.hasOwn(e,r)},g=function e(r,t,n,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],i=void 0,a=c(n.match(/^([^.]+)\.(.+)$/)||[],3),f=a[1],s=void 0===f?n:f,l=a[2],y=void 0===l?"":l,p=O(r,s),v=O(t,s),b=[].concat(h(u),[s]);if(p||v){var d=p?r[s]:i,m=v?t[s]:i;if(y)return void e(d,m,y,o,b);if(d===m)return;o(d,m,b)}else if(!/^\d+^/.test(s))for(var g=Array.isArray(r)?r:[],j=Array.isArray(t)?t:[],S=g.length,w=j.length,x=Math.max(S,w),P=0;P<x;P++)e(g[P],j[P],n,o,[].concat(h(u),["".concat(P)]))},j=function(e,r,t){for(var n=function(){var e=c(u[o],2),n=e[0],i=e[1];g(t,r,n,(function(e,n,o){i({fieldPaths:o,newEntity:r,oldEntity:t,newValue:n,oldValue:e})}))},o=0,u=Object.entries(e);o<u.length;o++)n()},S=new Map,w=(0,r.createContext)({}),x=function(e,r){for(var t={},n={},o=function(){var e=c(i[u],2),o=e[0],a=e[1];n[o]=function(){for(var e=t[o],n=r(),u=arguments.length,i=new Array(u),c=0;c<u;c++)i[c]=arguments[c];if(e&&n){var f=e.parameters,s=e.returnValue;if(l(f,i))return s}var y=a.apply(void 0,i);return n&&(t[o]={parameters:i,returnValue:y}),y}},u=0,i=Object.entries(e);u<i.length;u++)o();return n},P=function(e,o,u,i){var a,y,b,h,O,g,P,C=s("function"==typeof o),_=(C?u:o)||{},E=_.stateless,A=c((0,r.useState)(C&&!E?e:null),2),R=A[0],k=A[1],I=(b=(C?i:u)||[],h=(0,r.useRef)(0),O=(0,r.useRef)([]),g=O.current,P=l(b,g),O.current=b,h.current+=P?0:1,h.current),M=((a=(0,r.useRef)(!0)).current=!0,(0,r.useEffect)((function(){a.current=!1})),a),T=(y=C?o:e,c((0,r.useState)((function(){return y})),1)[0]),U=T,q=function(e,t){return s((function(){var n=S;if(n.has(e))return n.get(e);if(t)return t;var o=(0,r.createContext)({});return n.set(e,o),o}))}(U,C?null:w),D=(0,r.useContext)(q),F=D.entity,L=D.reducers,V=D.optionsRefCollection,$="object"===n(V),z=C||$,N=function(e,r,t){var n=(0,f.useLatest)(t),o=(0,f.useCreation)((function(){return e?[]:r}),[r,e]),u=(0,f.usePrevious)(o);return(0,f.useCreation)((function(){u&&m(u,n),o.push(n)}),[n,o,u]),(0,f.useUnmount)((function(){m(o,n)})),o}(C||!$,V||null,_),B=(0,f.useCreation)((function(){return C?function(e,r,t){return t?"function"==typeof r?r():r:e}(R,e,E):F}),[C,F,E,R,e]),G=(0,f.useMemoizedFn)((function(e,r){E||k(e),function(e,r,t){for(var n=e.length;n>0;n--){var o=e[n-1].current;if(o){var u=o.onChange,i=o.watch;i&&j(i,r,t),null==u||u(r,t)}}}(N,e,r)})),W=(0,f.useMemoizedFn)((function(){var e={},r={};return C?r=function(e,r,t,n){var o=(0,p.entityReducerUseCase)().createEntityReducers,u=(t.stateless,t.watch,t.onChange,t.options);return o(e,r,d(d(d({},function(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(t,v)),u),{},{onChange:n,onGenerate:function(e,r){return r}}))}(B,U,_,G):L?r=L:e=T(_),[e,r]})),Y=C?B:L,H=c((0,f.useCreation)((function(){return W()}),[W,I,Y]),2),J=H[0],K=H[1],Q=function(e,r,n,o){var u=(0,f.useCreation)((function(){return{entity:r,reducers:n,optionsRefCollection:o}}),[r,n,o]),i=(0,f.useLatest)(u);return s((function(){return function(r){var n=r.children,o=e.Provider;return t().createElement(o,{value:i.current},n)}}))}(q,B,K,N),X=(0,f.useMemoizedFn)((function(e,r){return[e,x(r,(function(){return M.current})),C?Q:null]}));return(0,f.useCreation)((function(){return z?X(B,K):J}),[z,B,K,J,X])},C=function(t){var n=t.usecase,o=t.watch,u=t.onChange;return P(n,{watch:o,onChange:u}),(0,e.jsx)(r.Fragment,{})}})(),i})()));
2
+ !function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("react"),require("ahooks"),require("@mic-rexjs/usecases"));else if("function"==typeof define&&define.amd)define(["react","ahooks","@mic-rexjs/usecases"],r);else{var t="object"==typeof exports?r(require("react"),require("ahooks"),require("@mic-rexjs/usecases")):r(e.react,e.ahooks,e["@mic-rexjs/usecases"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,((e,r,t)=>(()=>{"use strict";var n={251:(e,r,t)=>{var n=t(156),o=Symbol.for("react.element"),u=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};r.jsx=function(e,r,t){var n,c={},f=null,s=null;for(n in void 0!==t&&(f=""+t),void 0!==r.key&&(f=""+r.key),void 0!==r.ref&&(s=r.ref),r)u.call(r,n)&&!a.hasOwnProperty(n)&&(c[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===c[n]&&(c[n]=r[n]);return{$$typeof:o,type:e,key:f,ref:s,props:c,_owner:i.current}}},893:(e,r,t)=>{e.exports=t(251)},112:e=>{e.exports=t},749:e=>{e.exports=r},156:r=>{r.exports=e}},o={};function u(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return n[e](t,t.exports,u),t.exports}u.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return u.d(r,{a:r}),r},u.d=(e,r)=>{for(var t in r)u.o(r,t)&&!u.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},u.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{u.r(i),u.d(i,{UseCaseFragment:()=>P,useUseCase:()=>C});var e=u(893),r=u(156),t=u.n(r);function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function a(e,r){if(e){if("string"==typeof e)return o(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}function c(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,u,i,a=[],c=!0,f=!1;try{if(u=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=u.call(t)).done)&&(a.push(n.value),a.length!==r);c=!0);}catch(e){f=!0,o=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(e,r)||a(e,r)||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.")}()}var f=u(749),s=function(e){return c((0,r.useState)(e),1)[0]},l=function(e,r){var t=e.length;if(t!==r.length)return!1;for(var n=0;n<t;n++)if(e[n]!==r[n])return!1;return!0};function y(e,r,t){return(r=function(e){var r=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===n(r)?r:String(r)}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var p=u(112),v=["stateless","watch","onChange","options"];function b(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?b(Object(t),!0).forEach((function(r){y(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var m=function(e,r){var t=e.indexOf(r);-1!==t&&e.splice(t,1)};function h(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var O=function(e,r){return"object"===n(e)&&null!==e&&Object.hasOwn(e,r)},g=function e(r,t,n,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],i=void 0,a=c(n.match(/^([^.]+)\.(.+)$/)||[],3),f=a[1],s=void 0===f?n:f,l=a[2],y=void 0===l?"":l,p=O(r,s),v=O(t,s),b=[].concat(h(u),[s]);if(p||v){var d=p?r[s]:i,m=v?t[s]:i;if(y)return void e(d,m,y,o,b);if(d===m)return;o(d,m,b)}else if(!/^\d+^/.test(s))for(var g=Array.isArray(r)?r:[],j=Array.isArray(t)?t:[],S=g.length,w=j.length,x=Math.max(S,w),C=0;C<x;C++)e(g[C],j[C],n,o,[].concat(h(u),["".concat(C)]))},j=function(e,r,t){for(var n=function(){var e=c(u[o],2),n=e[0],i=e[1];g(t,r,n,(function(e,n,o){i({fieldPaths:o,newEntity:r,oldEntity:t,newValue:n,oldValue:e})}))},o=0,u=Object.entries(e);o<u.length;o++)n()},S=new Map,w=(0,r.createContext)({}),x=function(e,r){for(var t={},n={},o=function(){var e=c(i[u],2),o=e[0],a=e[1];n[o]=function(){for(var e=t[o],n=r(),u=arguments.length,i=new Array(u),c=0;c<u;c++)i[c]=arguments[c];if(e&&n){var f=e.parameters,s=e.returnValue;if(l(f,i))return s}var y=a.apply(void 0,i);return n&&(t[o]={parameters:i,returnValue:y}),y}},u=0,i=Object.entries(e);u<i.length;u++)o();return n},C=function(e,o,u,i){var a,y,b,h,O,g,C,P=s("function"==typeof o),_=(P?u:o)||{},E=_.stateless,A=c((0,r.useState)(P&&!E?e:null),2),R=A[0],k=A[1],M=(b=(P?i:u)||[],h=(0,r.useRef)(0),O=(0,r.useRef)([]),g=O.current,C=l(b,g),O.current=b,h.current+=C?0:1,h.current),I=((a=(0,r.useRef)(!0)).current=!0,(0,r.useEffect)((function(){a.current=!1})),a),T=(y=P?o:e,c((0,r.useState)((function(){return y})),1)[0]),F=T,U=function(e,t){return s((function(){var n=S;if(n.has(e))return n.get(e);if(t)return t;var o=(0,r.createContext)({});return n.set(e,o),o}))}(F,P?null:w),q=(0,r.useContext)(U),D=q.entity,L=q.reducers,z=void 0===L?null:L,V=q.optionsRefCollection,$="object"===n(V),N=P||$,B=function(e,r,t){var n=(0,f.useLatest)(t),o=(0,f.useCreation)((function(){return e?[]:r}),[r,e]),u=(0,f.usePrevious)(o);return(0,f.useCreation)((function(){u&&m(u,n),o.push(n)}),[n,o,u]),(0,f.useUnmount)((function(){m(o,n)})),o}(P||!$,V||null,_),G=(0,f.useCreation)((function(){return P?function(e,r,t){return t?"function"==typeof r?r():r:e}(R,e,E):D}),[P,D,E,R,e]),W=(0,f.useMemoizedFn)((function(e,r){E||k(e),function(e,r,t){for(var n=e.length;n>0;n--){var o=e[n-1].current;if(o){var u=o.onChange,i=o.watch;i&&j(i,r,t),null==u||u(r,t)}}}(B,e,r)})),Y=(0,f.useMemoizedFn)((function(){return function(e,r,t,n){var o=(0,p.entityReducerUseCase)().createEntityReducers,u=(t.stateless,t.watch,t.onChange,t.options);return o(e,r,d(d(d({},function(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(t,v)),u),{},{onChange:n,onGenerate:function(e,r){return r}}))}(G,F,_,W)})),H=(0,f.useMemoizedFn)((function(){return T(_)})),J=(0,f.useCreation)((function(){return P?Y():null}),[P,M,Y]),K=(0,f.useCreation)((function(){return J||z||{}}),[J,z]),Q=(0,f.useCreation)((function(){return N?{}:H()}),[N,M,H]),X=function(e,r,n,o){var u=(0,f.useCreation)((function(){return{entity:r,reducers:n,optionsRefCollection:o}}),[r,n,o]),i=(0,f.useLatest)(u);return s((function(){return function(r){var n=r.children,o=e.Provider;return t().createElement(o,{value:i.current},n)}}))}(U,G,K,B),Z=(0,f.useMemoizedFn)((function(e,r){return[e,x(r,(function(){return I.current})),P?X:null]}));return(0,f.useCreation)((function(){return N?Z(G,K):Q}),[N,G,K,Q,Z])},P=function(t){var n=t.usecase,o=t.watch,u=t.onChange;return C(n,{watch:o,onChange:u}),(0,e.jsx)(r.Fragment,{})}})(),i})()));
@@ -26,7 +26,7 @@ export const useUseCase = (arg1, arg2, arg3, arg4) => {
26
26
  const entityUseCase = usecase;
27
27
  const defaultContext = defaultUseCaseContext;
28
28
  const context = useUseCaseContext(entityUseCase, hasInitialEntity ? null : defaultContext);
29
- const { entity: contextEntity, reducers: contextEntityReducers, optionsRefCollection: contextOptionsRefCollection, } = useContext(context);
29
+ const { entity: contextEntity, reducers: contextEntityReducers = null, optionsRefCollection: contextOptionsRefCollection, } = useContext(context);
30
30
  // 只有 `contextOptionsRefCollection` 是可控的,是当前 `hook` 生成的,所以用其来判断最保险
31
31
  const hasContextOptionsRefCollection = typeof contextOptionsRefCollection === 'object';
32
32
  // 是否需要初始化根 `redurcers`
@@ -47,27 +47,30 @@ export const useUseCase = (arg1, arg2, arg3, arg4) => {
47
47
  }
48
48
  triggerCallbacks(optionsRefCollection, newEntity, oldEntity);
49
49
  });
50
+ const createRootEntityReducers = useMemoizedFn(() => {
51
+ const initOptions = options;
52
+ return initEntityReducers(entity, entityUseCase, initOptions, onEntityChange);
53
+ });
50
54
  const createReducers = useMemoizedFn(() => {
51
- let reducers = {};
52
- let entityReducers = {};
53
- if (hasInitialEntity) {
54
- const initOptions = options;
55
- entityReducers = initEntityReducers(entity, entityUseCase, initOptions, onEntityChange);
56
- }
57
- else if (contextEntityReducers) {
58
- entityReducers = contextEntityReducers;
59
- }
60
- else {
61
- reducers = usecase(options);
62
- }
63
- return [reducers, entityReducers];
55
+ return usecase(options);
64
56
  });
65
- const createReducersDep = hasInitialEntity ? entity : contextEntityReducers;
66
- const [reducers, entityReducers] = useCreation(() => {
57
+ const rootEntityReducers = useCreation(() => {
67
58
  void depsKey;
68
- void createReducersDep;
59
+ if (!hasInitialEntity) {
60
+ return null;
61
+ }
62
+ return createRootEntityReducers();
63
+ }, [hasInitialEntity, depsKey, createRootEntityReducers]);
64
+ const entityReducers = useCreation(() => {
65
+ return rootEntityReducers || contextEntityReducers || {};
66
+ }, [rootEntityReducers, contextEntityReducers]);
67
+ const reducers = useCreation(() => {
68
+ void depsKey;
69
+ if (isContextMode) {
70
+ return {};
71
+ }
69
72
  return createReducers();
70
- }, [createReducers, depsKey, createReducersDep]);
73
+ }, [isContextMode, depsKey, createReducers]);
71
74
  const Provider = useProvider(context, entity, entityReducers, optionsRefCollection);
72
75
  const createCoreCollection = useMemoizedFn((coreEntity, coreReducers) => {
73
76
  return [
@@ -154,6 +154,56 @@ describe('useUseCase', () => {
154
154
  const [, , Provider] = cores;
155
155
  expect(typeof Provider).toBe('function');
156
156
  });
157
+ test('`usecase` should be called only once if deps has not provided', () => {
158
+ const mockUseCase = jest.fn(fileUseCase);
159
+ const { result, rerender } = renderHook(() => {
160
+ return useUseCase(defaultFile, mockUseCase);
161
+ });
162
+ const { current: cores } = result;
163
+ const [, { setEntity }] = cores;
164
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
165
+ act(() => {
166
+ setEntity({
167
+ ...defaultFile,
168
+ });
169
+ });
170
+ rerender();
171
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
172
+ });
173
+ test('`usecase` should be called only once if deps has not changed', () => {
174
+ const mockUseCase = jest.fn(fileUseCase);
175
+ const { result, rerender } = renderHook(() => {
176
+ return useUseCase(defaultFile, mockUseCase, {}, [1, 'x']);
177
+ });
178
+ const { current: cores } = result;
179
+ const [, { setEntity }] = cores;
180
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
181
+ act(() => {
182
+ setEntity({
183
+ ...defaultFile,
184
+ });
185
+ });
186
+ rerender();
187
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
188
+ });
189
+ test('`usecase` should be called if deps has changed', () => {
190
+ let i = 0;
191
+ const mockUseCase = jest.fn(fileUseCase);
192
+ const { result, rerender } = renderHook(() => {
193
+ return useUseCase(defaultFile, mockUseCase, {}, [i++, 'x']);
194
+ });
195
+ const { current: cores } = result;
196
+ const [, { setEntity }] = cores;
197
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
198
+ act(() => {
199
+ setEntity({
200
+ ...defaultFile,
201
+ });
202
+ });
203
+ expect(mockUseCase).toHaveBeenCalledTimes(2);
204
+ rerender();
205
+ expect(mockUseCase).toHaveBeenCalledTimes(3);
206
+ });
157
207
  test('after call non-generator reducer, it should not trigger update', () => {
158
208
  const onUpdate = jest.fn();
159
209
  const onDeepUpdate = jest.fn();
@@ -1077,6 +1127,34 @@ describe('useUseCase', () => {
1077
1127
  const { add } = reducers;
1078
1128
  expect(add(1, 2)).toBe(3);
1079
1129
  });
1130
+ test('`usecase` should be called only once if deps has not provided', () => {
1131
+ const mockUseCase = jest.fn(mathUseCase);
1132
+ const { rerender } = renderHook(() => {
1133
+ return useUseCase(mockUseCase);
1134
+ });
1135
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
1136
+ rerender();
1137
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
1138
+ });
1139
+ test('`usecase` should be called only once if deps has not changed', () => {
1140
+ const mockUseCase = jest.fn(mathUseCase);
1141
+ const { rerender } = renderHook(() => {
1142
+ return useUseCase(mockUseCase, {}, [1, 'x']);
1143
+ });
1144
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
1145
+ rerender();
1146
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
1147
+ });
1148
+ test('`usecase` should be called if deps has changed', () => {
1149
+ let i = 0;
1150
+ const mockUseCase = jest.fn(mathUseCase);
1151
+ const { rerender } = renderHook(() => {
1152
+ return useUseCase(mockUseCase, {}, [i++, 'x']);
1153
+ });
1154
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
1155
+ rerender();
1156
+ expect(mockUseCase).toHaveBeenCalledTimes(2);
1157
+ });
1080
1158
  test('reducer call should not be cached if component is at rendering phase', () => {
1081
1159
  const buttonText = 'button';
1082
1160
  const CacheTestComponent = () => {
@@ -1242,6 +1320,19 @@ describe('useUseCase', () => {
1242
1320
  expect(onPathChange).toHaveBeenCalledWith('');
1243
1321
  expect(onUndefinedEntity).toHaveBeenCalledTimes(0);
1244
1322
  });
1323
+ test('`usecase` should not be called at child component', () => {
1324
+ const mockUseCase = jest.fn(fileUseCase);
1325
+ const A = () => {
1326
+ useUseCase(mockUseCase);
1327
+ return _jsx(Fragment, {});
1328
+ };
1329
+ const B = () => {
1330
+ const [, , Provider] = useUseCase(defaultFile, mockUseCase);
1331
+ return (_jsx(Provider, { children: _jsx(A, {}) }));
1332
+ };
1333
+ render(_jsx(B, {}));
1334
+ expect(mockUseCase).toHaveBeenCalledTimes(1);
1335
+ });
1245
1336
  test('reducer call should be cached if component is at rendering phase in child components', () => {
1246
1337
  const buttonText = 'button';
1247
1338
  const addReducer = jest.fn((entity, substring) => {
@@ -38,7 +38,8 @@ var useUseCase = function useUseCase(arg1, arg2, arg3, arg4) {
38
38
  var context = (0, _useUseCaseContext.useUseCaseContext)(entityUseCase, hasInitialEntity ? null : defaultContext);
39
39
  var _useContext = (0, _react.useContext)(context),
40
40
  contextEntity = _useContext.entity,
41
- contextEntityReducers = _useContext.reducers,
41
+ _useContext$reducers = _useContext.reducers,
42
+ contextEntityReducers = _useContext$reducers === void 0 ? null : _useContext$reducers,
42
43
  contextOptionsRefCollection = _useContext.optionsRefCollection;
43
44
  // 只有 `contextOptionsRefCollection` 是可控的,是当前 `hook` 生成的,所以用其来判断最保险
44
45
  var hasContextOptionsRefCollection = (0, _typeof2["default"])(contextOptionsRefCollection) === 'object';
@@ -60,28 +61,30 @@ var useUseCase = function useUseCase(arg1, arg2, arg3, arg4) {
60
61
  }
61
62
  (0, _triggerCallbacks.triggerCallbacks)(optionsRefCollection, newEntity, oldEntity);
62
63
  });
64
+ var createRootEntityReducers = (0, _ahooks.useMemoizedFn)(function () {
65
+ var initOptions = options;
66
+ return (0, _initEntityReducers.initEntityReducers)(entity, entityUseCase, initOptions, onEntityChange);
67
+ });
63
68
  var createReducers = (0, _ahooks.useMemoizedFn)(function () {
64
- var reducers = {};
65
- var entityReducers = {};
66
- if (hasInitialEntity) {
67
- var initOptions = options;
68
- entityReducers = (0, _initEntityReducers.initEntityReducers)(entity, entityUseCase, initOptions, onEntityChange);
69
- } else if (contextEntityReducers) {
70
- entityReducers = contextEntityReducers;
71
- } else {
72
- reducers = usecase(options);
73
- }
74
- return [reducers, entityReducers];
69
+ return usecase(options);
75
70
  });
76
- var createReducersDep = hasInitialEntity ? entity : contextEntityReducers;
77
- var _useCreation = (0, _ahooks.useCreation)(function () {
78
- void depsKey;
79
- void createReducersDep;
80
- return createReducers();
81
- }, [createReducers, depsKey, createReducersDep]),
82
- _useCreation2 = (0, _slicedToArray2["default"])(_useCreation, 2),
83
- reducers = _useCreation2[0],
84
- entityReducers = _useCreation2[1];
71
+ var rootEntityReducers = (0, _ahooks.useCreation)(function () {
72
+ void depsKey;
73
+ if (!hasInitialEntity) {
74
+ return null;
75
+ }
76
+ return createRootEntityReducers();
77
+ }, [hasInitialEntity, depsKey, createRootEntityReducers]);
78
+ var entityReducers = (0, _ahooks.useCreation)(function () {
79
+ return rootEntityReducers || contextEntityReducers || {};
80
+ }, [rootEntityReducers, contextEntityReducers]);
81
+ var reducers = (0, _ahooks.useCreation)(function () {
82
+ void depsKey;
83
+ if (isContextMode) {
84
+ return {};
85
+ }
86
+ return createReducers();
87
+ }, [isContextMode, depsKey, createReducers]);
85
88
  var Provider = (0, _useProvider.useProvider)(context, entity, entityReducers, optionsRefCollection);
86
89
  var createCoreCollection = (0, _ahooks.useMemoizedFn)(function (coreEntity, coreReducers) {
87
90
  return [coreEntity, (0, _cacheReducerCalls.cacheReducerCalls)(coreReducers, function () {
@@ -282,10 +282,63 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
282
282
  Provider = _cores3[2];
283
283
  (0, _globals.expect)((0, _typeof2["default"])(Provider)).toBe('function');
284
284
  });
285
+ (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
286
+ var mockUseCase = _globals.jest.fn(fileUseCase);
287
+ var _renderHook5 = (0, _react.renderHook)(function () {
288
+ return (0, _.useUseCase)(defaultFile, mockUseCase);
289
+ }),
290
+ result = _renderHook5.result,
291
+ rerender = _renderHook5.rerender;
292
+ var cores = result.current;
293
+ var _cores4 = (0, _slicedToArray2["default"])(cores, 2),
294
+ setEntity = _cores4[1].setEntity;
295
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
296
+ (0, _react.act)(function () {
297
+ setEntity(_objectSpread({}, defaultFile));
298
+ });
299
+ rerender();
300
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
301
+ });
302
+ (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
303
+ var mockUseCase = _globals.jest.fn(fileUseCase);
304
+ var _renderHook6 = (0, _react.renderHook)(function () {
305
+ return (0, _.useUseCase)(defaultFile, mockUseCase, {}, [1, 'x']);
306
+ }),
307
+ result = _renderHook6.result,
308
+ rerender = _renderHook6.rerender;
309
+ var cores = result.current;
310
+ var _cores5 = (0, _slicedToArray2["default"])(cores, 2),
311
+ setEntity = _cores5[1].setEntity;
312
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
313
+ (0, _react.act)(function () {
314
+ setEntity(_objectSpread({}, defaultFile));
315
+ });
316
+ rerender();
317
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
318
+ });
319
+ (0, _globals.test)('`usecase` should be called if deps has changed', function () {
320
+ var i = 0;
321
+ var mockUseCase = _globals.jest.fn(fileUseCase);
322
+ var _renderHook7 = (0, _react.renderHook)(function () {
323
+ return (0, _.useUseCase)(defaultFile, mockUseCase, {}, [i++, 'x']);
324
+ }),
325
+ result = _renderHook7.result,
326
+ rerender = _renderHook7.rerender;
327
+ var cores = result.current;
328
+ var _cores6 = (0, _slicedToArray2["default"])(cores, 2),
329
+ setEntity = _cores6[1].setEntity;
330
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
331
+ (0, _react.act)(function () {
332
+ setEntity(_objectSpread({}, defaultFile));
333
+ });
334
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
335
+ rerender();
336
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(3);
337
+ });
285
338
  (0, _globals.test)('after call non-generator reducer, it should not trigger update', function () {
286
339
  var onUpdate = _globals.jest.fn();
287
340
  var onDeepUpdate = _globals.jest.fn();
288
- var _renderHook5 = (0, _react.renderHook)(function () {
341
+ var _renderHook8 = (0, _react.renderHook)(function () {
289
342
  var context = (0, _.useUseCase)(defaultFile, fileUseCase);
290
343
  var _context4 = (0, _slicedToArray2["default"])(context, 2),
291
344
  reducers = _context4[1];
@@ -305,7 +358,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
305
358
  update();
306
359
  };
307
360
  }),
308
- result = _renderHook5.result;
361
+ result = _renderHook8.result;
309
362
  (0, _react.act)(function () {
310
363
  result.current();
311
364
  });
@@ -319,17 +372,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
319
372
  });
320
373
  (0, _globals.test)('after `yield entity`, it should trigger update', function () {
321
374
  var onUpdate = _globals.jest.fn();
322
- var _renderHook6 = (0, _react.renderHook)(function () {
375
+ var _renderHook9 = (0, _react.renderHook)(function () {
323
376
  (0, _ahooks.useUpdateEffect)(function () {
324
377
  onUpdate();
325
378
  });
326
379
  return (0, _.useUseCase)(defaultFile, fileUseCase);
327
380
  }),
328
- result = _renderHook6.result;
381
+ result = _renderHook9.result;
329
382
  var cores = result.current;
330
- var _cores4 = (0, _slicedToArray2["default"])(cores, 2),
331
- entity = _cores4[0],
332
- reducers = _cores4[1];
383
+ var _cores7 = (0, _slicedToArray2["default"])(cores, 2),
384
+ entity = _cores7[0],
385
+ reducers = _cores7[1];
333
386
  var setPath = reducers.setPath,
334
387
  setEntity = reducers.setEntity;
335
388
  (0, _react.act)(function () {
@@ -350,19 +403,19 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
350
403
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
351
404
  });
352
405
  (0, _globals.test)('after `yield entity` on async mode, it should trigger update', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
353
- var onUpdate, _renderHook7, result, cores, _cores5, entity, reducers, readFile, promise;
406
+ var onUpdate, _renderHook10, result, cores, _cores8, entity, reducers, readFile, promise;
354
407
  return _regenerator["default"].wrap(function _callee3$(_context5) {
355
408
  while (1) switch (_context5.prev = _context5.next) {
356
409
  case 0:
357
410
  onUpdate = _globals.jest.fn();
358
- _renderHook7 = (0, _react.renderHook)(function () {
411
+ _renderHook10 = (0, _react.renderHook)(function () {
359
412
  (0, _ahooks.useUpdateEffect)(function () {
360
413
  onUpdate();
361
414
  });
362
415
  return (0, _.useUseCase)(defaultFile, fileUseCase);
363
- }), result = _renderHook7.result;
416
+ }), result = _renderHook10.result;
364
417
  cores = result.current;
365
- _cores5 = (0, _slicedToArray2["default"])(cores, 2), entity = _cores5[0], reducers = _cores5[1];
418
+ _cores8 = (0, _slicedToArray2["default"])(cores, 2), entity = _cores8[0], reducers = _cores8[1];
366
419
  readFile = reducers.readFile;
367
420
  promise = (0, _react.act)(function () {
368
421
  return readFile(PATH_1);
@@ -388,16 +441,16 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
388
441
  })));
389
442
  (0, _globals.test)('after `yield entity` callbacks, it should trigger update', function () {
390
443
  var onUpdate = _globals.jest.fn();
391
- var _renderHook8 = (0, _react.renderHook)(function () {
444
+ var _renderHook11 = (0, _react.renderHook)(function () {
392
445
  (0, _ahooks.useUpdateEffect)(function () {
393
446
  onUpdate();
394
447
  });
395
448
  return (0, _.useUseCase)(defaultFile, fileUseCase);
396
449
  }),
397
- result = _renderHook8.result;
450
+ result = _renderHook11.result;
398
451
  var cores = result.current;
399
- var _cores6 = (0, _slicedToArray2["default"])(cores, 2),
400
- reducers = _cores6[1];
452
+ var _cores9 = (0, _slicedToArray2["default"])(cores, 2),
453
+ reducers = _cores9[1];
401
454
  var init = reducers.init;
402
455
  (0, _react.act)(function () {
403
456
  init(_objectSpread(_objectSpread({}, defaultFile), {}, {
@@ -531,7 +584,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
531
584
  });
532
585
  (0, _globals.test)('`options.stateless` should not generate new reducers when `yeild entity`', function () {
533
586
  var onUpdate = _globals.jest.fn();
534
- var _renderHook9 = (0, _react.renderHook)(function () {
587
+ var _renderHook12 = (0, _react.renderHook)(function () {
535
588
  var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
536
589
  (0, _ahooks.useUpdateEffect)(function () {
537
590
  onUpdate();
@@ -540,11 +593,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
540
593
  stateless: true
541
594
  });
542
595
  }),
543
- result = _renderHook9.result,
544
- rerender = _renderHook9.rerender;
596
+ result = _renderHook12.result,
597
+ rerender = _renderHook12.rerender;
545
598
  var cores = result.current;
546
- var _cores7 = (0, _slicedToArray2["default"])(cores, 2),
547
- setPath = _cores7[1].setPath;
599
+ var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
600
+ setPath = _cores10[1].setPath;
548
601
  setPath(PATH_1);
549
602
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
550
603
  (0, _globals.expect)(result.current[0].path).toBe('');
@@ -557,7 +610,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
557
610
  });
558
611
  (0, _globals.test)('`options.stateless` should not trigger update when after `yield entity`', function () {
559
612
  var onUpdate = _globals.jest.fn();
560
- var _renderHook10 = (0, _react.renderHook)(function () {
613
+ var _renderHook13 = (0, _react.renderHook)(function () {
561
614
  (0, _ahooks.useUpdateEffect)(function () {
562
615
  onUpdate();
563
616
  });
@@ -565,10 +618,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
565
618
  stateless: true
566
619
  });
567
620
  }),
568
- result = _renderHook10.result;
621
+ result = _renderHook13.result;
569
622
  var cores = result.current;
570
- var _cores8 = (0, _slicedToArray2["default"])(cores, 2),
571
- reducers = _cores8[1];
623
+ var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
624
+ reducers = _cores11[1];
572
625
  var setPath = reducers.setPath;
573
626
  (0, _react.act)(function () {
574
627
  setPath(PATH_1);
@@ -579,15 +632,15 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
579
632
  });
580
633
  (0, _globals.test)('`options.onChange` should be trigger when entity has changed', function () {
581
634
  var onChange = _globals.jest.fn();
582
- var _renderHook11 = (0, _react.renderHook)(function () {
635
+ var _renderHook14 = (0, _react.renderHook)(function () {
583
636
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
584
637
  onChange: onChange
585
638
  });
586
639
  }),
587
- result = _renderHook11.result;
640
+ result = _renderHook14.result;
588
641
  var cores = result.current;
589
- var _cores9 = (0, _slicedToArray2["default"])(cores, 2),
590
- reducers = _cores9[1];
642
+ var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
643
+ reducers = _cores12[1];
591
644
  var setPath = reducers.setPath;
592
645
  (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
593
646
  (0, _react.act)(function () {
@@ -600,7 +653,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
600
653
  }), defaultFile);
601
654
  });
602
655
  (0, _globals.test)('`options.options` should override rest options', function () {
603
- var _renderHook12 = (0, _react.renderHook)(function () {
656
+ var _renderHook15 = (0, _react.renderHook)(function () {
604
657
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
605
658
  pathPrefix: 'xyz/',
606
659
  options: {
@@ -608,11 +661,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
608
661
  }
609
662
  });
610
663
  }),
611
- result = _renderHook12.result;
664
+ result = _renderHook15.result;
612
665
  var cores = result.current;
613
- var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
614
- path = _cores10[0].path,
615
- reducers = _cores10[1];
666
+ var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
667
+ path = _cores13[0].path,
668
+ reducers = _cores13[1];
616
669
  var setPath = reducers.setPath;
617
670
  (0, _globals.expect)(path).toBe('');
618
671
  (0, _react.act)(function () {
@@ -623,7 +676,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
623
676
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
624
677
  var onUpdate = _globals.jest.fn();
625
678
  var onDeepUpdate = _globals.jest.fn();
626
- var _renderHook13 = (0, _react.renderHook)(function () {
679
+ var _renderHook16 = (0, _react.renderHook)(function () {
627
680
  var _useState = (0, _react2.useState)('user/'),
628
681
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
629
682
  pathPrefix = _useState2[0],
@@ -639,7 +692,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
639
692
  }, [context]);
640
693
  return setPathPrefix;
641
694
  }),
642
- result = _renderHook13.result;
695
+ result = _renderHook16.result;
643
696
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
644
697
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
645
698
  (0, _react.act)(function () {
@@ -651,7 +704,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
651
704
  (0, _globals.test)('when `entity` change, it should trigger watchers', function () {
652
705
  var onPathChange = _globals.jest.fn();
653
706
  var onSizeChange = _globals.jest.fn();
654
- var _renderHook14 = (0, _react.renderHook)(function () {
707
+ var _renderHook17 = (0, _react.renderHook)(function () {
655
708
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
656
709
  watch: {
657
710
  path: onPathChange,
@@ -659,10 +712,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
659
712
  }
660
713
  });
661
714
  }),
662
- result = _renderHook14.result;
715
+ result = _renderHook17.result;
663
716
  var cores = result.current;
664
- var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
665
- setPath = _cores11[1].setPath;
717
+ var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
718
+ setPath = _cores14[1].setPath;
666
719
  (0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
667
720
  (0, _react.act)(function () {
668
721
  setPath(PATH_1);
@@ -684,19 +737,19 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
684
737
  var onPathChange1 = _globals.jest.fn();
685
738
  var onPathChange2 = _globals.jest.fn();
686
739
  var onPathChange = onPathChange1;
687
- var _renderHook15 = (0, _react.renderHook)(function () {
740
+ var _renderHook18 = (0, _react.renderHook)(function () {
688
741
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
689
742
  watch: {
690
743
  path: onPathChange
691
744
  }
692
745
  });
693
746
  }),
694
- result = _renderHook15.result;
747
+ result = _renderHook18.result;
695
748
  var cores = result.current;
696
- var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
697
- _cores12$ = _cores12[1],
698
- setPath = _cores12$.setPath,
699
- setEntity = _cores12$.setEntity;
749
+ var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
750
+ _cores15$ = _cores15[1],
751
+ setPath = _cores15$.setPath,
752
+ setEntity = _cores15$.setEntity;
700
753
  onPathChange = onPathChange2;
701
754
  (0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(0);
702
755
  (0, _react.act)(function () {
@@ -737,7 +790,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
737
790
  (0, _globals.test)('when `deps` has changed, it should trigger update', function () {
738
791
  var onUpdate = _globals.jest.fn();
739
792
  var onDeepUpdate = _globals.jest.fn();
740
- var _renderHook16 = (0, _react.renderHook)(function () {
793
+ var _renderHook19 = (0, _react.renderHook)(function () {
741
794
  var _useState3 = (0, _react2.useState)('user/'),
742
795
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
743
796
  pathPrefix = _useState4[0],
@@ -753,7 +806,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
753
806
  }, [context]);
754
807
  return setPathPrefix;
755
808
  }),
756
- result = _renderHook16.result;
809
+ result = _renderHook19.result;
757
810
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
758
811
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
759
812
  (0, _react.act)(function () {
@@ -765,7 +818,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
765
818
  (0, _globals.test)('empty `deps` should not trigger update', function () {
766
819
  var onUpdate = _globals.jest.fn();
767
820
  var onDeepUpdate = _globals.jest.fn();
768
- var _renderHook17 = (0, _react.renderHook)(function () {
821
+ var _renderHook20 = (0, _react.renderHook)(function () {
769
822
  var _useState5 = (0, _react2.useState)('user/'),
770
823
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
771
824
  pathPrefix = _useState6[0],
@@ -781,7 +834,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
781
834
  }, [context]);
782
835
  return setPathPrefix;
783
836
  }),
784
- result = _renderHook17.result;
837
+ result = _renderHook20.result;
785
838
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
786
839
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
787
840
  (0, _react.act)(function () {
@@ -922,7 +975,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
922
975
  (0, _globals.test)('`options.watch` should work with array field path of array', function () {
923
976
  var onExtChange = _globals.jest.fn();
924
977
  var onSizeChange = _globals.jest.fn();
925
- var _renderHook18 = (0, _react.renderHook)(function () {
978
+ var _renderHook21 = (0, _react.renderHook)(function () {
926
979
  return (0, _.useUseCase)({}, fieldPathUseCase, {
927
980
  watch: {
928
981
  'list.ext': onExtChange,
@@ -930,10 +983,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
930
983
  }
931
984
  });
932
985
  }),
933
- result = _renderHook18.result;
986
+ result = _renderHook21.result;
934
987
  var cores = result.current;
935
- var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
936
- setEntity = _cores13[1].setEntity;
988
+ var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
989
+ setEntity = _cores16[1].setEntity;
937
990
  (0, _react.act)(function () {
938
991
  setEntity({
939
992
  list: [defaultFile]
@@ -1218,7 +1271,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1218
1271
  var lengthUseCase = function lengthUseCase() {
1219
1272
  return (0, _usecases.entityUseCase)();
1220
1273
  };
1221
- var _renderHook19 = (0, _react.renderHook)(function () {
1274
+ var _renderHook22 = (0, _react.renderHook)(function () {
1222
1275
  return (0, _.useUseCase)([], lengthUseCase, {
1223
1276
  watch: {
1224
1277
  length: onEntityLengthChange,
@@ -1226,10 +1279,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1226
1279
  }
1227
1280
  });
1228
1281
  }),
1229
- result = _renderHook19.result;
1282
+ result = _renderHook22.result;
1230
1283
  var cores = result.current;
1231
- var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
1232
- setEntity = _cores14[1].setEntity;
1284
+ var _cores17 = (0, _slicedToArray2["default"])(cores, 2),
1285
+ setEntity = _cores17[1].setEntity;
1233
1286
  (0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(0);
1234
1287
  (0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(0);
1235
1288
  (0, _react.act)(function () {
@@ -1260,17 +1313,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1260
1313
  });
1261
1314
  (0, _globals.test)('`options.watch` should work with field path of nested array', function () {
1262
1315
  var onChange = _globals.jest.fn();
1263
- var _renderHook20 = (0, _react.renderHook)(function () {
1316
+ var _renderHook23 = (0, _react.renderHook)(function () {
1264
1317
  return (0, _.useUseCase)({}, fieldPathUseCase, {
1265
1318
  watch: {
1266
1319
  'nestedList.size': onChange
1267
1320
  }
1268
1321
  });
1269
1322
  }),
1270
- result = _renderHook20.result;
1323
+ result = _renderHook23.result;
1271
1324
  var cores = result.current;
1272
- var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
1273
- setEntity = _cores15[1].setEntity;
1325
+ var _cores18 = (0, _slicedToArray2["default"])(cores, 2),
1326
+ setEntity = _cores18[1].setEntity;
1274
1327
  (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
1275
1328
  (0, _react.act)(function () {
1276
1329
  setEntity({
@@ -1354,7 +1407,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1354
1407
  (0, _globals.test)('`options.watch` should work with field path of object', function () {
1355
1408
  var onExtChange = _globals.jest.fn();
1356
1409
  var onSizeChange = _globals.jest.fn();
1357
- var _renderHook21 = (0, _react.renderHook)(function () {
1410
+ var _renderHook24 = (0, _react.renderHook)(function () {
1358
1411
  return (0, _.useUseCase)({}, fieldPathUseCase, {
1359
1412
  watch: {
1360
1413
  'obj.file.ext': onExtChange,
@@ -1362,10 +1415,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1362
1415
  }
1363
1416
  });
1364
1417
  }),
1365
- result = _renderHook21.result;
1418
+ result = _renderHook24.result;
1366
1419
  var cores = result.current;
1367
- var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
1368
- setEntity = _cores16[1].setEntity;
1420
+ var _cores19 = (0, _slicedToArray2["default"])(cores, 2),
1421
+ setEntity = _cores19[1].setEntity;
1369
1422
  (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
1370
1423
  (0, _react.act)(function () {
1371
1424
  setEntity({
@@ -1415,22 +1468,53 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1415
1468
  });
1416
1469
  (0, _globals.describe)('`useUseCase` should work with 1+ arguments on non-entity mode', function () {
1417
1470
  (0, _globals.test)('`entity` should equal `defaultFile`', function () {
1418
- var _renderHook22 = (0, _react.renderHook)(function () {
1471
+ var _renderHook25 = (0, _react.renderHook)(function () {
1419
1472
  return (0, _.useUseCase)(mathUseCase);
1420
1473
  }),
1421
- result = _renderHook22.result;
1474
+ result = _renderHook25.result;
1422
1475
  var reducers = result.current;
1423
1476
  (0, _globals.expect)(Array.isArray(reducers)).toBe(false);
1424
1477
  });
1425
1478
  (0, _globals.test)('returned reducer should work', function () {
1426
- var _renderHook23 = (0, _react.renderHook)(function () {
1479
+ var _renderHook26 = (0, _react.renderHook)(function () {
1427
1480
  return (0, _.useUseCase)(mathUseCase);
1428
1481
  }),
1429
- result = _renderHook23.result;
1482
+ result = _renderHook26.result;
1430
1483
  var reducers = result.current;
1431
1484
  var add = reducers.add;
1432
1485
  (0, _globals.expect)(add(1, 2)).toBe(3);
1433
1486
  });
1487
+ (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
1488
+ var mockUseCase = _globals.jest.fn(mathUseCase);
1489
+ var _renderHook27 = (0, _react.renderHook)(function () {
1490
+ return (0, _.useUseCase)(mockUseCase);
1491
+ }),
1492
+ rerender = _renderHook27.rerender;
1493
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1494
+ rerender();
1495
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1496
+ });
1497
+ (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
1498
+ var mockUseCase = _globals.jest.fn(mathUseCase);
1499
+ var _renderHook28 = (0, _react.renderHook)(function () {
1500
+ return (0, _.useUseCase)(mockUseCase, {}, [1, 'x']);
1501
+ }),
1502
+ rerender = _renderHook28.rerender;
1503
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1504
+ rerender();
1505
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1506
+ });
1507
+ (0, _globals.test)('`usecase` should be called if deps has changed', function () {
1508
+ var i = 0;
1509
+ var mockUseCase = _globals.jest.fn(mathUseCase);
1510
+ var _renderHook29 = (0, _react.renderHook)(function () {
1511
+ return (0, _.useUseCase)(mockUseCase, {}, [i++, 'x']);
1512
+ }),
1513
+ rerender = _renderHook29.rerender;
1514
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1515
+ rerender();
1516
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
1517
+ });
1434
1518
  (0, _globals.test)('reducer call should not be cached if component is at rendering phase', function () {
1435
1519
  var buttonText = 'button';
1436
1520
  var CacheTestComponent = function CacheTestComponent() {
@@ -1510,12 +1594,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1510
1594
  (0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
1511
1595
  });
1512
1596
  (0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
1513
- var _renderHook24 = (0, _react.renderHook)(function () {
1597
+ var _renderHook30 = (0, _react.renderHook)(function () {
1514
1598
  return (0, _.useUseCase)(mathUseCase, {
1515
1599
  extraValue: 5
1516
1600
  });
1517
1601
  }),
1518
- result = _renderHook24.result;
1602
+ result = _renderHook30.result;
1519
1603
  var reducers = result.current;
1520
1604
  var add = reducers.add;
1521
1605
  (0, _globals.expect)(add(1, 2)).toBe(8);
@@ -1523,7 +1607,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1523
1607
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
1524
1608
  var onUpdate = _globals.jest.fn();
1525
1609
  var onDeepUpdate = _globals.jest.fn();
1526
- var _renderHook25 = (0, _react.renderHook)(function () {
1610
+ var _renderHook31 = (0, _react.renderHook)(function () {
1527
1611
  var _useState7 = (0, _react2.useState)(0),
1528
1612
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
1529
1613
  extraValue = _useState8[0],
@@ -1539,7 +1623,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1539
1623
  }, [reducers]);
1540
1624
  return setExtraValue;
1541
1625
  }),
1542
- result = _renderHook25.result;
1626
+ result = _renderHook31.result;
1543
1627
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1544
1628
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1545
1629
  (0, _react.act)(function () {
@@ -1551,7 +1635,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1551
1635
  (0, _globals.test)('when `deps` change, it should update reducers', function () {
1552
1636
  var onUpdate = _globals.jest.fn();
1553
1637
  var onDeepUpdate = _globals.jest.fn();
1554
- var _renderHook26 = (0, _react.renderHook)(function () {
1638
+ var _renderHook32 = (0, _react.renderHook)(function () {
1555
1639
  var _useState9 = (0, _react2.useState)(0),
1556
1640
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
1557
1641
  extraValue = _useState10[0],
@@ -1567,7 +1651,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1567
1651
  }, [reducers]);
1568
1652
  return setExtraValue;
1569
1653
  }),
1570
- result = _renderHook26.result;
1654
+ result = _renderHook32.result;
1571
1655
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1572
1656
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1573
1657
  (0, _react.act)(function () {
@@ -1579,7 +1663,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1579
1663
  (0, _globals.test)('empty `deps` should not update reducers', function () {
1580
1664
  var onUpdate = _globals.jest.fn();
1581
1665
  var onDeepUpdate = _globals.jest.fn();
1582
- var _renderHook27 = (0, _react.renderHook)(function () {
1666
+ var _renderHook33 = (0, _react.renderHook)(function () {
1583
1667
  var _useState11 = (0, _react2.useState)(0),
1584
1668
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
1585
1669
  extraValue = _useState12[0],
@@ -1595,7 +1679,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1595
1679
  }, [reducers]);
1596
1680
  return setExtraValue;
1597
1681
  }),
1598
- result = _renderHook27.result;
1682
+ result = _renderHook33.result;
1599
1683
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1600
1684
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1601
1685
  (0, _react.act)(function () {
@@ -1643,6 +1727,23 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1643
1727
  (0, _globals.expect)(onPathChange).toHaveBeenCalledWith('');
1644
1728
  (0, _globals.expect)(onUndefinedEntity).toHaveBeenCalledTimes(0);
1645
1729
  });
1730
+ (0, _globals.test)('`usecase` should not be called at child component', function () {
1731
+ var mockUseCase = _globals.jest.fn(fileUseCase);
1732
+ var A = function A() {
1733
+ (0, _.useUseCase)(mockUseCase);
1734
+ return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
1735
+ };
1736
+ var B = function B() {
1737
+ var _useUseCase19 = (0, _.useUseCase)(defaultFile, mockUseCase),
1738
+ _useUseCase20 = (0, _slicedToArray2["default"])(_useUseCase19, 3),
1739
+ Provider = _useUseCase20[2];
1740
+ return (0, _jsxRuntime.jsx)(Provider, {
1741
+ children: (0, _jsxRuntime.jsx)(A, {})
1742
+ });
1743
+ };
1744
+ (0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
1745
+ (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1746
+ });
1646
1747
  (0, _globals.test)('reducer call should be cached if component is at rendering phase in child components', function () {
1647
1748
  var buttonText = 'button';
1648
1749
  var addReducer = _globals.jest.fn(function (entity, substring) {
@@ -1655,9 +1756,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1655
1756
  });
1656
1757
  };
1657
1758
  var A = function A() {
1658
- var _useUseCase19 = (0, _.useUseCase)(stringUseCase),
1659
- _useUseCase20 = (0, _slicedToArray2["default"])(_useUseCase19, 2),
1660
- add = _useUseCase20[1].add;
1759
+ var _useUseCase21 = (0, _.useUseCase)(stringUseCase),
1760
+ _useUseCase22 = (0, _slicedToArray2["default"])(_useUseCase21, 2),
1761
+ add = _useUseCase22[1].add;
1661
1762
  var update = (0, _ahooks.useUpdate)();
1662
1763
  var onClick = function onClick() {
1663
1764
  update();
@@ -1669,9 +1770,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1669
1770
  });
1670
1771
  };
1671
1772
  var B = function B() {
1672
- var _useUseCase21 = (0, _.useUseCase)('', stringUseCase),
1673
- _useUseCase22 = (0, _slicedToArray2["default"])(_useUseCase21, 3),
1674
- Provider = _useUseCase22[2];
1773
+ var _useUseCase23 = (0, _.useUseCase)('', stringUseCase),
1774
+ _useUseCase24 = (0, _slicedToArray2["default"])(_useUseCase23, 3),
1775
+ Provider = _useUseCase24[2];
1675
1776
  return (0, _jsxRuntime.jsx)(Provider, {
1676
1777
  children: (0, _jsxRuntime.jsx)(A, {})
1677
1778
  });
@@ -1695,9 +1796,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1695
1796
  });
1696
1797
  };
1697
1798
  var A = function A() {
1698
- var _useUseCase23 = (0, _.useUseCase)(stringUseCase),
1699
- _useUseCase24 = (0, _slicedToArray2["default"])(_useUseCase23, 2),
1700
- add = _useUseCase24[1].add;
1799
+ var _useUseCase25 = (0, _.useUseCase)(stringUseCase),
1800
+ _useUseCase26 = (0, _slicedToArray2["default"])(_useUseCase25, 2),
1801
+ add = _useUseCase26[1].add;
1701
1802
  var onClick = function onClick() {
1702
1803
  add('x');
1703
1804
  };
@@ -1711,9 +1812,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1711
1812
  });
1712
1813
  };
1713
1814
  var B = function B() {
1714
- var _useUseCase25 = (0, _.useUseCase)('', stringUseCase),
1715
- _useUseCase26 = (0, _slicedToArray2["default"])(_useUseCase25, 3),
1716
- Provider = _useUseCase26[2];
1815
+ var _useUseCase27 = (0, _.useUseCase)('', stringUseCase),
1816
+ _useUseCase28 = (0, _slicedToArray2["default"])(_useUseCase27, 3),
1817
+ Provider = _useUseCase28[2];
1717
1818
  return (0, _jsxRuntime.jsx)(Provider, {
1718
1819
  children: (0, _jsxRuntime.jsx)(A, {})
1719
1820
  });
@@ -1741,11 +1842,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1741
1842
  });
1742
1843
  };
1743
1844
  var A = function A() {
1744
- var _useUseCase27 = (0, _.useUseCase)(stringUseCase),
1745
- _useUseCase28 = (0, _slicedToArray2["default"])(_useUseCase27, 2),
1746
- _useUseCase28$ = _useUseCase28[1],
1747
- add = _useUseCase28$.add,
1748
- setEntity = _useUseCase28$.setEntity;
1845
+ var _useUseCase29 = (0, _.useUseCase)(stringUseCase),
1846
+ _useUseCase30 = (0, _slicedToArray2["default"])(_useUseCase29, 2),
1847
+ _useUseCase30$ = _useUseCase30[1],
1848
+ add = _useUseCase30$.add,
1849
+ setEntity = _useUseCase30$.setEntity;
1749
1850
  var update = (0, _ahooks.useUpdate)();
1750
1851
  add(addedText);
1751
1852
  var onSet = function onSet() {
@@ -1765,9 +1866,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1765
1866
  });
1766
1867
  };
1767
1868
  var B = function B() {
1768
- var _useUseCase29 = (0, _.useUseCase)('', stringUseCase),
1769
- _useUseCase30 = (0, _slicedToArray2["default"])(_useUseCase29, 3),
1770
- Provider = _useUseCase30[2];
1869
+ var _useUseCase31 = (0, _.useUseCase)('', stringUseCase),
1870
+ _useUseCase32 = (0, _slicedToArray2["default"])(_useUseCase31, 3),
1871
+ Provider = _useUseCase32[2];
1771
1872
  return (0, _jsxRuntime.jsx)(Provider, {
1772
1873
  children: (0, _jsxRuntime.jsx)(A, {})
1773
1874
  });
@@ -1801,12 +1902,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1801
1902
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
1802
1903
  };
1803
1904
  var B = function B() {
1804
- var _useUseCase31 = (0, _.useUseCase)(defaultFile, fileUseCase, {
1905
+ var _useUseCase33 = (0, _.useUseCase)(defaultFile, fileUseCase, {
1805
1906
  onChange: onParentPathChange
1806
1907
  }),
1807
- _useUseCase32 = (0, _slicedToArray2["default"])(_useUseCase31, 3),
1808
- setPath = _useUseCase32[1].setPath,
1809
- Provider = _useUseCase32[2];
1908
+ _useUseCase34 = (0, _slicedToArray2["default"])(_useUseCase33, 3),
1909
+ setPath = _useUseCase34[1].setPath,
1910
+ Provider = _useUseCase34[2];
1810
1911
  var onFirstClick = function onFirstClick() {
1811
1912
  setPath(PATH_1);
1812
1913
  onChange = onSecondChange;
@@ -1868,12 +1969,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1868
1969
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
1869
1970
  };
1870
1971
  var C = function C() {
1871
- var _useUseCase33 = (0, _.useUseCase)(defaultFile, fileUseCase, {
1972
+ var _useUseCase35 = (0, _.useUseCase)(defaultFile, fileUseCase, {
1872
1973
  onChange: onChangeC
1873
1974
  }),
1874
- _useUseCase34 = (0, _slicedToArray2["default"])(_useUseCase33, 3),
1875
- setPath = _useUseCase34[1].setPath,
1876
- Provider = _useUseCase34[2];
1975
+ _useUseCase36 = (0, _slicedToArray2["default"])(_useUseCase35, 3),
1976
+ setPath = _useUseCase36[1].setPath,
1977
+ Provider = _useUseCase36[2];
1877
1978
  var onFirstClick = function onFirstClick() {
1878
1979
  setPath(PATH_1);
1879
1980
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mic-rexjs/usecases-react",
3
- "version": "1.6.4",
3
+ "version": "1.7.0",
4
4
  "description": "React-based solution for use usecases of Clean Architecture",
5
5
  "private": false,
6
6
  "keywords": [