icode-hooks 0.3.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/README.md +65 -0
- package/dist/icode-hooks.js +1 -0
- package/es/createUpdateEffect/index.d.ts +4 -0
- package/es/createUpdateEffect/index.js +22 -0
- package/es/index.d.ts +9 -0
- package/es/index.js +9 -0
- package/es/useBoolean/index.d.ts +8 -0
- package/es/useBoolean/index.js +27 -0
- package/es/useCreation/index.d.ts +2 -0
- package/es/useCreation/index.js +21 -0
- package/es/useLatest/index.d.ts +3 -0
- package/es/useLatest/index.js +7 -0
- package/es/useMemoizedFn/index.d.ts +3 -0
- package/es/useMemoizedFn/index.js +31 -0
- package/es/useMount/index.d.ts +2 -0
- package/es/useMount/index.js +15 -0
- package/es/usePrescription/api.d.ts +7 -0
- package/es/usePrescription/api.js +17 -0
- package/es/usePrescription/index.d.ts +36 -0
- package/es/usePrescription/index.js +119 -0
- package/es/usePrescription/types.d.ts +15 -0
- package/es/usePrescription/types.js +1 -0
- package/es/useRequest/index.d.ts +4 -0
- package/es/useRequest/index.js +4 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/cancel.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/cancel.js +56 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/default.d.ts +6 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/default.js +30 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/lifeCycle.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/lifeCycle.js +55 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRun.d.ts +7 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRun.js +53 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.d.ts +7 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.js +67 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/mutate.d.ts +6 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/mutate.js +68 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/params.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/params.js +44 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/refresh.d.ts +6 -0
- package/es/useRequest/routes-doc/use-request/demos/basic/refresh.js +35 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/cacheKey.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/cacheKey.js +41 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/clearCache.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/clearCache.js +80 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/params.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/params.js +65 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/setCache.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/setCache.js +48 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/share.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/share.js +37 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/staleTime.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/cache/staleTime.js +43 -0
- package/es/useRequest/routes-doc/use-request/demos/debounce/debounce.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/debounce/debounce.js +41 -0
- package/es/useRequest/routes-doc/use-request/demos/index/default.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/index/default.js +23 -0
- package/es/useRequest/routes-doc/use-request/demos/index/manual.d.ts +7 -0
- package/es/useRequest/routes-doc/use-request/demos/index/manual.js +50 -0
- package/es/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.js +29 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/polling.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/polling.js +31 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/pollingError.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/polling/pollingError.js +37 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/manualReady.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/manualReady.js +36 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/ready.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/ready/ready.js +28 -0
- package/es/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.js +60 -0
- package/es/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.js +18 -0
- package/es/useRequest/routes-doc/use-request/demos/retry/retry.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/retry/retry.js +42 -0
- package/es/useRequest/routes-doc/use-request/demos/throttle/throttle.d.ts +3 -0
- package/es/useRequest/routes-doc/use-request/demos/throttle/throttle.js +41 -0
- package/es/useRequest/src/Fetch.d.ts +20 -0
- package/es/useRequest/src/Fetch.js +161 -0
- package/es/useRequest/src/plugins/useAutoRunPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useAutoRunPlugin.js +56 -0
- package/es/useRequest/src/plugins/useCachePlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useCachePlugin.js +143 -0
- package/es/useRequest/src/plugins/useDebouncePlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useDebouncePlugin.js +61 -0
- package/es/useRequest/src/plugins/useLoadingDelayPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useLoadingDelayPlugin.js +40 -0
- package/es/useRequest/src/plugins/usePollingPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/usePollingPlugin.js +65 -0
- package/es/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.js +30 -0
- package/es/useRequest/src/plugins/useRetryPlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useRetryPlugin.js +45 -0
- package/es/useRequest/src/plugins/useThrottlePlugin.d.ts +3 -0
- package/es/useRequest/src/plugins/useThrottlePlugin.js +53 -0
- package/es/useRequest/src/types.d.ts +73 -0
- package/es/useRequest/src/types.js +1 -0
- package/es/useRequest/src/useRequest.d.ts +3 -0
- package/es/useRequest/src/useRequest.js +14 -0
- package/es/useRequest/src/useRequestImplement.d.ts +5 -0
- package/es/useRequest/src/useRequestImplement.js +72 -0
- package/es/useRequest/src/utils/cache.d.ts +14 -0
- package/es/useRequest/src/utils/cache.js +32 -0
- package/es/useRequest/src/utils/cachePromise.d.ts +4 -0
- package/es/useRequest/src/utils/cachePromise.js +17 -0
- package/es/useRequest/src/utils/cacheSubscribe.d.ts +4 -0
- package/es/useRequest/src/utils/cacheSubscribe.js +19 -0
- package/es/useRequest/src/utils/isDocumentVisible.d.ts +1 -0
- package/es/useRequest/src/utils/isDocumentVisible.js +7 -0
- package/es/useRequest/src/utils/isOnline.d.ts +1 -0
- package/es/useRequest/src/utils/isOnline.js +7 -0
- package/es/useRequest/src/utils/limit.d.ts +1 -0
- package/es/useRequest/src/utils/limit.js +17 -0
- package/es/useRequest/src/utils/subscribeFocus.d.ts +3 -0
- package/es/useRequest/src/utils/subscribeFocus.js +27 -0
- package/es/useRequest/src/utils/subscribeReVisible.d.ts +3 -0
- package/es/useRequest/src/utils/subscribeReVisible.js +21 -0
- package/es/useToggle/index.d.ts +10 -0
- package/es/useToggle/index.js +41 -0
- package/es/useUnmount/index.d.ts +2 -0
- package/es/useUnmount/index.js +17 -0
- package/es/useUpdate/index.d.ts +2 -0
- package/es/useUpdate/index.js +10 -0
- package/es/useUpdateEffect/index.d.ts +3 -0
- package/es/useUpdateEffect/index.js +3 -0
- package/es/utils/createEffectWithTarget.d.ts +4 -0
- package/es/utils/createEffectWithTarget.js +48 -0
- package/es/utils/depsAreSame.d.ts +2 -0
- package/es/utils/depsAreSame.js +8 -0
- package/es/utils/depsEqual.d.ts +2 -0
- package/es/utils/depsEqual.js +11 -0
- package/es/utils/domTarget.d.ts +6 -0
- package/es/utils/domTarget.js +20 -0
- package/es/utils/getDocumentOrShadow.d.ts +3 -0
- package/es/utils/getDocumentOrShadow.js +28 -0
- package/es/utils/index.d.ts +6 -0
- package/es/utils/index.js +18 -0
- package/es/utils/isAppleDevice.d.ts +2 -0
- package/es/utils/isAppleDevice.js +3 -0
- package/es/utils/isBrowser.d.ts +2 -0
- package/es/utils/isBrowser.js +2 -0
- package/es/utils/isDev.d.ts +2 -0
- package/es/utils/isDev.js +3 -0
- package/es/utils/lodash-polyfill.d.ts +2 -0
- package/es/utils/lodash-polyfill.js +11 -0
- package/es/utils/testingHelpers.d.ts +2 -0
- package/es/utils/testingHelpers.js +19 -0
- package/es/utils/tests.d.ts +4 -0
- package/es/utils/tests.js +12 -0
- package/es/utils/useDeepCompareWithTarget.d.ts +4 -0
- package/es/utils/useDeepCompareWithTarget.js +14 -0
- package/es/utils/useEffectWithTarget.d.ts +2 -0
- package/es/utils/useEffectWithTarget.js +5 -0
- package/es/utils/useIsomorphicLayoutEffectWithTarget.d.ts +2 -0
- package/es/utils/useIsomorphicLayoutEffectWithTarget.js +5 -0
- package/es/utils/useLayoutEffectWithTarget.d.ts +2 -0
- package/es/utils/useLayoutEffectWithTarget.js +4 -0
- package/lib/createUpdateEffect/index.d.ts +4 -0
- package/lib/createUpdateEffect/index.js +28 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +69 -0
- package/lib/useBoolean/index.d.ts +8 -0
- package/lib/useBoolean/index.js +33 -0
- package/lib/useCreation/index.d.ts +2 -0
- package/lib/useCreation/index.js +28 -0
- package/lib/useLatest/index.d.ts +3 -0
- package/lib/useLatest/index.js +13 -0
- package/lib/useMemoizedFn/index.d.ts +3 -0
- package/lib/useMemoizedFn/index.js +40 -0
- package/lib/useMount/index.d.ts +2 -0
- package/lib/useMount/index.js +23 -0
- package/lib/usePrescription/api.d.ts +7 -0
- package/lib/usePrescription/api.js +23 -0
- package/lib/usePrescription/index.d.ts +36 -0
- package/lib/usePrescription/index.js +127 -0
- package/lib/usePrescription/types.d.ts +15 -0
- package/lib/usePrescription/types.js +5 -0
- package/lib/useRequest/index.d.ts +4 -0
- package/lib/useRequest/index.js +16 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/cancel.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/cancel.js +65 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/default.d.ts +6 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/default.js +38 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/lifeCycle.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/lifeCycle.js +64 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRun.d.ts +7 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRun.js +63 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.d.ts +7 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/manualRunAsync.js +77 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/mutate.d.ts +6 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/mutate.js +78 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/params.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/params.js +53 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/refresh.d.ts +6 -0
- package/lib/useRequest/routes-doc/use-request/demos/basic/refresh.js +45 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/cacheKey.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/cacheKey.js +48 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/clearCache.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/clearCache.js +87 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/params.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/params.js +74 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/setCache.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/setCache.js +55 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/share.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/share.js +44 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/staleTime.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/cache/staleTime.js +50 -0
- package/lib/useRequest/routes-doc/use-request/demos/debounce/debounce.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/debounce/debounce.js +48 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/default.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/default.js +30 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/manual.d.ts +7 -0
- package/lib/useRequest/routes-doc/use-request/demos/index/manual.js +60 -0
- package/lib/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/loadingDelay/loadingDelay.js +36 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/polling.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/polling.js +38 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/pollingError.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/polling/pollingError.js +44 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/manualReady.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/manualReady.js +43 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/ready.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/ready/ready.js +35 -0
- package/lib/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/refresh/refreshDeps.js +69 -0
- package/lib/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/refreshOnWindowFocus/refreshOnWindowFocus.js +25 -0
- package/lib/useRequest/routes-doc/use-request/demos/retry/retry.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/retry/retry.js +51 -0
- package/lib/useRequest/routes-doc/use-request/demos/throttle/throttle.d.ts +3 -0
- package/lib/useRequest/routes-doc/use-request/demos/throttle/throttle.js +48 -0
- package/lib/useRequest/src/Fetch.d.ts +20 -0
- package/lib/useRequest/src/Fetch.js +168 -0
- package/lib/useRequest/src/plugins/useAutoRunPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useAutoRunPlugin.js +63 -0
- package/lib/useRequest/src/plugins/useCachePlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useCachePlugin.js +150 -0
- package/lib/useRequest/src/plugins/useDebouncePlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useDebouncePlugin.js +67 -0
- package/lib/useRequest/src/plugins/useLoadingDelayPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useLoadingDelayPlugin.js +46 -0
- package/lib/useRequest/src/plugins/usePollingPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/usePollingPlugin.js +72 -0
- package/lib/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useRefreshOnWindowFocusPlugin.js +37 -0
- package/lib/useRequest/src/plugins/useRetryPlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useRetryPlugin.js +51 -0
- package/lib/useRequest/src/plugins/useThrottlePlugin.d.ts +3 -0
- package/lib/useRequest/src/plugins/useThrottlePlugin.js +59 -0
- package/lib/useRequest/src/types.d.ts +73 -0
- package/lib/useRequest/src/types.js +5 -0
- package/lib/useRequest/src/useRequest.d.ts +3 -0
- package/lib/useRequest/src/useRequest.js +21 -0
- package/lib/useRequest/src/useRequestImplement.d.ts +5 -0
- package/lib/useRequest/src/useRequestImplement.js +80 -0
- package/lib/useRequest/src/utils/cache.d.ts +14 -0
- package/lib/useRequest/src/utils/cache.js +37 -0
- package/lib/useRequest/src/utils/cachePromise.d.ts +4 -0
- package/lib/useRequest/src/utils/cachePromise.js +22 -0
- package/lib/useRequest/src/utils/cacheSubscribe.d.ts +4 -0
- package/lib/useRequest/src/utils/cacheSubscribe.js +24 -0
- package/lib/useRequest/src/utils/isDocumentVisible.d.ts +1 -0
- package/lib/useRequest/src/utils/isDocumentVisible.js +14 -0
- package/lib/useRequest/src/utils/isOnline.d.ts +1 -0
- package/lib/useRequest/src/utils/isOnline.js +14 -0
- package/lib/useRequest/src/utils/limit.d.ts +1 -0
- package/lib/useRequest/src/utils/limit.js +23 -0
- package/lib/useRequest/src/utils/subscribeFocus.d.ts +3 -0
- package/lib/useRequest/src/utils/subscribeFocus.js +35 -0
- package/lib/useRequest/src/utils/subscribeReVisible.d.ts +3 -0
- package/lib/useRequest/src/utils/subscribeReVisible.js +28 -0
- package/lib/useToggle/index.d.ts +10 -0
- package/lib/useToggle/index.js +47 -0
- package/lib/useUnmount/index.d.ts +2 -0
- package/lib/useUnmount/index.js +25 -0
- package/lib/useUpdate/index.d.ts +2 -0
- package/lib/useUpdate/index.js +16 -0
- package/lib/useUpdateEffect/index.d.ts +3 -0
- package/lib/useUpdateEffect/index.js +9 -0
- package/lib/utils/createEffectWithTarget.d.ts +4 -0
- package/lib/utils/createEffectWithTarget.js +55 -0
- package/lib/utils/depsAreSame.d.ts +2 -0
- package/lib/utils/depsAreSame.js +14 -0
- package/lib/utils/depsEqual.d.ts +2 -0
- package/lib/utils/depsEqual.js +17 -0
- package/lib/utils/domTarget.d.ts +6 -0
- package/lib/utils/domTarget.js +27 -0
- package/lib/utils/getDocumentOrShadow.d.ts +3 -0
- package/lib/utils/getDocumentOrShadow.js +34 -0
- package/lib/utils/index.d.ts +6 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/isAppleDevice.d.ts +2 -0
- package/lib/utils/isAppleDevice.js +9 -0
- package/lib/utils/isBrowser.d.ts +2 -0
- package/lib/utils/isBrowser.js +8 -0
- package/lib/utils/isDev.d.ts +2 -0
- package/lib/utils/isDev.js +9 -0
- package/lib/utils/lodash-polyfill.d.ts +2 -0
- package/lib/utils/lodash-polyfill.js +23 -0
- package/lib/utils/testingHelpers.d.ts +2 -0
- package/lib/utils/testingHelpers.js +26 -0
- package/lib/utils/tests.d.ts +4 -0
- package/lib/utils/tests.js +30 -0
- package/lib/utils/useDeepCompareWithTarget.d.ts +4 -0
- package/lib/utils/useDeepCompareWithTarget.js +21 -0
- package/lib/utils/useEffectWithTarget.d.ts +2 -0
- package/lib/utils/useEffectWithTarget.js +12 -0
- package/lib/utils/useIsomorphicLayoutEffectWithTarget.d.ts +2 -0
- package/lib/utils/useIsomorphicLayoutEffectWithTarget.js +12 -0
- package/lib/utils/useLayoutEffectWithTarget.d.ts +2 -0
- package/lib/utils/useLayoutEffectWithTarget.js +11 -0
- package/package.json +28 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getTargetElement } from '../utils/domTarget';
|
|
2
|
+
// 检查所有目标元素是否都在 Shadow DOM 中
|
|
3
|
+
var checkIfAllInShadow = function (targets) {
|
|
4
|
+
return targets.every(function (item) {
|
|
5
|
+
var targetElement = getTargetElement(item);
|
|
6
|
+
if (!targetElement) return false;
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
if (targetElement.getRootNode() instanceof ShadowRoot) return true;
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var getShadow = function (node) {
|
|
12
|
+
if (!node) {
|
|
13
|
+
return document;
|
|
14
|
+
}
|
|
15
|
+
return node.getRootNode();
|
|
16
|
+
};
|
|
17
|
+
// 获取文档或 Shadow DOM
|
|
18
|
+
var getDocumentOrShadow = function (target) {
|
|
19
|
+
if (!target || !document.getRootNode) {
|
|
20
|
+
return document;
|
|
21
|
+
}
|
|
22
|
+
var targets = Array.isArray(target) ? target : [target];
|
|
23
|
+
if (checkIfAllInShadow(targets)) {
|
|
24
|
+
return getShadow(getTargetElement(targets[0]));
|
|
25
|
+
}
|
|
26
|
+
return document;
|
|
27
|
+
};
|
|
28
|
+
export default getDocumentOrShadow;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const isObject: (value: unknown) => value is Record<any, any>;
|
|
2
|
+
export declare const isFunction: (value: unknown) => value is (...args: any) => any;
|
|
3
|
+
export declare const isString: (value: unknown) => value is string;
|
|
4
|
+
export declare const isBoolean: (value: unknown) => value is boolean;
|
|
5
|
+
export declare const isNumber: (value: unknown) => value is number;
|
|
6
|
+
export declare const isUndef: (value: unknown) => value is undefined;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export var isObject = function (value) {
|
|
2
|
+
return value !== null && typeof value === 'object';
|
|
3
|
+
};
|
|
4
|
+
export var isFunction = function (value) {
|
|
5
|
+
return typeof value === 'function';
|
|
6
|
+
};
|
|
7
|
+
export var isString = function (value) {
|
|
8
|
+
return typeof value === 'string';
|
|
9
|
+
};
|
|
10
|
+
export var isBoolean = function (value) {
|
|
11
|
+
return typeof value === 'boolean';
|
|
12
|
+
};
|
|
13
|
+
export var isNumber = function (value) {
|
|
14
|
+
return typeof value === 'number';
|
|
15
|
+
};
|
|
16
|
+
export var isUndef = function (value) {
|
|
17
|
+
return typeof value === 'undefined';
|
|
18
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { debounce } from 'lodash-es';
|
|
2
|
+
// 判断是否是Node环境
|
|
3
|
+
function isNodeOrWeb() {
|
|
4
|
+
var freeGlobal = (typeof global === 'undefined' ? 'undefined' : typeof global) == 'object' && global && global.Object === Object && global;
|
|
5
|
+
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
|
|
6
|
+
return freeGlobal || freeSelf;
|
|
7
|
+
}
|
|
8
|
+
if (!isNodeOrWeb()) {
|
|
9
|
+
global.Date = Date;
|
|
10
|
+
}
|
|
11
|
+
export { debounce };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function sleep(time) {
|
|
2
|
+
return new Promise(function (resolve) {
|
|
3
|
+
setTimeout(function () {
|
|
4
|
+
resolve();
|
|
5
|
+
}, time);
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
// 模拟请求
|
|
9
|
+
export function request(req) {
|
|
10
|
+
return new Promise(function (resolve, reject) {
|
|
11
|
+
return setTimeout(function () {
|
|
12
|
+
if (req === 0) {
|
|
13
|
+
reject(new Error('fail'));
|
|
14
|
+
} else {
|
|
15
|
+
resolve('success');
|
|
16
|
+
}
|
|
17
|
+
}, 1000);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { StrictMode } from 'react';
|
|
3
|
+
import { renderHook } from '@testing-library/react';
|
|
4
|
+
export * from '@testing-library/react';
|
|
5
|
+
var Wrapper = process.env.REACT_MODE === 'strict' ? StrictMode : undefined;
|
|
6
|
+
// 自定义渲染
|
|
7
|
+
var customRender = function (ui, options) {
|
|
8
|
+
return renderHook(ui, __assign({
|
|
9
|
+
wrapper: Wrapper
|
|
10
|
+
}, options));
|
|
11
|
+
};
|
|
12
|
+
export { customRender as renderHook };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DependencyList, EffectCallback } from 'react';
|
|
2
|
+
import type { BasicTarget } from './domTarget';
|
|
3
|
+
declare const useDeepCompareEffectWithTarget: (effect: EffectCallback, deps: DependencyList, target: BasicTarget<any> | BasicTarget<any>[]) => void;
|
|
4
|
+
export default useDeepCompareEffectWithTarget;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import useEffectWithTarget from './useEffectWithTarget';
|
|
3
|
+
import { depsEqual } from './depsEqual';
|
|
4
|
+
// 使用深度比较的 effect 函数,用于在组件渲染时执行副作用,并且可以指定依赖项和目标元素
|
|
5
|
+
var useDeepCompareEffectWithTarget = function (effect, deps, target) {
|
|
6
|
+
var ref = useRef();
|
|
7
|
+
var signalRef = useRef(0);
|
|
8
|
+
if (!depsEqual(deps, ref.current)) {
|
|
9
|
+
ref.current = deps;
|
|
10
|
+
signalRef.current += 1;
|
|
11
|
+
}
|
|
12
|
+
useEffectWithTarget(effect, [signalRef.current], target);
|
|
13
|
+
};
|
|
14
|
+
export default useDeepCompareEffectWithTarget;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const useIsomorphicLayoutEffectWithTarget: (effect: import("react").EffectCallback, deps: import("react").DependencyList, target: import("./domTarget").BasicTarget<any> | import("./domTarget").BasicTarget<any>[]) => void;
|
|
2
|
+
export default useIsomorphicLayoutEffectWithTarget;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import isBrowser from './isBrowser';
|
|
2
|
+
import useEffectWithTarget from './useEffectWithTarget';
|
|
3
|
+
import useLayoutEffectWithTarget from './useLayoutEffectWithTarget';
|
|
4
|
+
var useIsomorphicLayoutEffectWithTarget = isBrowser ? useLayoutEffectWithTarget : useEffectWithTarget;
|
|
5
|
+
export default useIsomorphicLayoutEffectWithTarget;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.createUpdateEffect = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var createUpdateEffect = exports.createUpdateEffect = function createUpdateEffect(hook) {
|
|
9
|
+
return function (effect, deps) {
|
|
10
|
+
var isMounted = (0, _react.useRef)(false);
|
|
11
|
+
// hook 传递进来就是useEffect或者useLayoutEffect,所以这里可以调用它 并且返回一个函数,这个函数在组件卸载时调用
|
|
12
|
+
hook(function () {
|
|
13
|
+
return function () {
|
|
14
|
+
isMounted.current = false;
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
17
|
+
// 如果组件已经挂载,则执行effect
|
|
18
|
+
hook(function () {
|
|
19
|
+
if (!isMounted.current) {
|
|
20
|
+
// 如果没有挂载说明是初始化第一次 只需要做记录标志位
|
|
21
|
+
isMounted.current = true;
|
|
22
|
+
} else {
|
|
23
|
+
return effect(); // 如果已经挂载,则执行effect
|
|
24
|
+
}
|
|
25
|
+
}, deps);
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
var _default = exports["default"] = createUpdateEffect;
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as useBoolean } from './useBoolean';
|
|
2
|
+
export { default as useToggle } from './useToggle';
|
|
3
|
+
export { default as useLatest } from './useLatest';
|
|
4
|
+
export { default as useMemoizedFn } from './useMemoizedFn';
|
|
5
|
+
export { default as useUpdate } from './useUpdate';
|
|
6
|
+
export { default as useUpdateEffect } from './useUpdateEffect';
|
|
7
|
+
export { default as useCreation } from './useCreation';
|
|
8
|
+
export { default as useRequest } from './useRequest';
|
|
9
|
+
export { default as usePrescription } from './usePrescription';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "useBoolean", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _useBoolean["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "useCreation", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _useCreation["default"];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "useLatest", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _useLatest["default"];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "useMemoizedFn", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _useMemoizedFn["default"];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "usePrescription", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function get() {
|
|
34
|
+
return _usePrescription["default"];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "useRequest", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function get() {
|
|
40
|
+
return _useRequest["default"];
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "useToggle", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _useToggle["default"];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(exports, "useUpdate", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function get() {
|
|
52
|
+
return _useUpdate["default"];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "useUpdateEffect", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function get() {
|
|
58
|
+
return _useUpdateEffect["default"];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
var _useBoolean = _interopRequireDefault(require("./useBoolean"));
|
|
62
|
+
var _useToggle = _interopRequireDefault(require("./useToggle"));
|
|
63
|
+
var _useLatest = _interopRequireDefault(require("./useLatest"));
|
|
64
|
+
var _useMemoizedFn = _interopRequireDefault(require("./useMemoizedFn"));
|
|
65
|
+
var _useUpdate = _interopRequireDefault(require("./useUpdate"));
|
|
66
|
+
var _useUpdateEffect = _interopRequireDefault(require("./useUpdateEffect"));
|
|
67
|
+
var _useCreation = _interopRequireDefault(require("./useCreation"));
|
|
68
|
+
var _useRequest = _interopRequireDefault(require("./useRequest"));
|
|
69
|
+
var _usePrescription = _interopRequireDefault(require("./usePrescription"));
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = useBoolean;
|
|
7
|
+
var _tslib = require("tslib");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
function useBoolean(initialValue) {
|
|
10
|
+
if (initialValue === void 0) {
|
|
11
|
+
initialValue = false;
|
|
12
|
+
}
|
|
13
|
+
var _a = (0, _tslib.__read)((0, _react.useState)(initialValue), 2),
|
|
14
|
+
state = _a[0],
|
|
15
|
+
setState = _a[1];
|
|
16
|
+
var setTrue = function setTrue() {
|
|
17
|
+
return setState(true);
|
|
18
|
+
};
|
|
19
|
+
var setFalse = function setFalse() {
|
|
20
|
+
return setState(false);
|
|
21
|
+
};
|
|
22
|
+
var toggle = function toggle() {
|
|
23
|
+
return setState(function (v) {
|
|
24
|
+
return !v;
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
state: state,
|
|
29
|
+
setTrue: setTrue,
|
|
30
|
+
setFalse: setFalse,
|
|
31
|
+
toggle: toggle
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = useCreation;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _depsAreSame = _interopRequireDefault(require("../utils/depsAreSame"));
|
|
10
|
+
//
|
|
11
|
+
function useCreation(factory, deps) {
|
|
12
|
+
// 使用 useRef 来存储依赖项、对象和初始化状态
|
|
13
|
+
var current = (0, _react.useRef)({
|
|
14
|
+
deps: deps,
|
|
15
|
+
// 依赖项
|
|
16
|
+
obj: undefined,
|
|
17
|
+
// 对象
|
|
18
|
+
initialized: false // 初始化状态
|
|
19
|
+
}).current;
|
|
20
|
+
// 如果初始化状态为 false 或者依赖项不相同,则重新创建对象
|
|
21
|
+
if (current.initialized === false || !(0, _depsAreSame["default"])(current.deps, deps)) {
|
|
22
|
+
current.deps = deps; // 更新依赖项
|
|
23
|
+
current.obj = factory(); // 创建对象
|
|
24
|
+
current.initialized = true; // 更新初始化状态
|
|
25
|
+
}
|
|
26
|
+
// 返回对象
|
|
27
|
+
return current.obj;
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
function useLatest(value) {
|
|
9
|
+
var ref = (0, _react.useRef)(value);
|
|
10
|
+
ref.current = value;
|
|
11
|
+
return ref;
|
|
12
|
+
}
|
|
13
|
+
var _default = exports["default"] = useLatest;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _utils = require("../utils");
|
|
11
|
+
var _isDev = _interopRequireDefault(require("../utils/isDev"));
|
|
12
|
+
/**
|
|
13
|
+
* title: 基础用法
|
|
14
|
+
* desc: useMemoizedFn 与 useCallback 可以实现同样的效果。
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function useMemoizedFn(fn) {
|
|
18
|
+
if (_isDev["default"]) {
|
|
19
|
+
if (!(0, _utils.isFunction)(fn)) {
|
|
20
|
+
console.error("useMemoizedFn expected parameter is a function,got".concat((0, _typeof2["default"])(fn)));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
var fnRef = (0, _react.useRef)(fn);
|
|
24
|
+
fnRef.current = (0, _react.useMemo)(function () {
|
|
25
|
+
return fn;
|
|
26
|
+
}, [fn]);
|
|
27
|
+
var memoizedFn = (0, _react.useRef)();
|
|
28
|
+
if (!memoizedFn.current) {
|
|
29
|
+
memoizedFn.current = function () {
|
|
30
|
+
var args = [];
|
|
31
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
32
|
+
args[_i] = arguments[_i];
|
|
33
|
+
}
|
|
34
|
+
console.log(fnRef.current, 'fnRef.current');
|
|
35
|
+
return fnRef.current.apply(this, args);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return memoizedFn.current;
|
|
39
|
+
}
|
|
40
|
+
var _default = exports["default"] = useMemoizedFn;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _utils = require("../utils");
|
|
11
|
+
var _isDev = _interopRequireDefault(require("../utils/isDev"));
|
|
12
|
+
// 为了在开发阶段做参数校验、打印警告,帮你早点发现错误;生产环境不做这些检查,避免性能和包体积成本。
|
|
13
|
+
var useMount = function useMount(fn) {
|
|
14
|
+
if (_isDev["default"]) {
|
|
15
|
+
if (!(0, _utils.isFunction)(fn)) {
|
|
16
|
+
console.error("useMount:parameter `fn` expected to be a function,but got \"".concat((0, _typeof2["default"])(fn), "\"."));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
(0, _react.useEffect)(function () {
|
|
20
|
+
fn === null || fn === void 0 ? void 0 : fn();
|
|
21
|
+
}, []);
|
|
22
|
+
};
|
|
23
|
+
var _default = exports["default"] = useMount;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Prescription } from './types';
|
|
2
|
+
/** 药房后台接口层(实际项目里换成 umi request / 公共 request) */
|
|
3
|
+
export declare const prescriptionApi: {
|
|
4
|
+
getPrescription(id: string): Promise<Prescription>;
|
|
5
|
+
confirmDrug(id: string): Promise<void>;
|
|
6
|
+
cancelPrescription(id: string): Promise<void>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.prescriptionApi = void 0;
|
|
7
|
+
/** 药房后台接口层(实际项目里换成 umi request / 公共 request) */
|
|
8
|
+
var prescriptionApi = exports.prescriptionApi = {
|
|
9
|
+
getPrescription: function getPrescription(id) {
|
|
10
|
+
return Promise.resolve({
|
|
11
|
+
id: id,
|
|
12
|
+
patientName: '张三',
|
|
13
|
+
drugList: [],
|
|
14
|
+
status: 'pending'
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
confirmDrug: function confirmDrug(id) {
|
|
18
|
+
return Promise.resolve();
|
|
19
|
+
},
|
|
20
|
+
cancelPrescription: function cancelPrescription(id) {
|
|
21
|
+
return Promise.resolve();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Prescription } from './types';
|
|
2
|
+
export type { DrugItem, Prescription, PrescriptionStatus } from './types';
|
|
3
|
+
export type UsePrescriptionOptions = {
|
|
4
|
+
/** 为 false 时不自动拉详情(仅手动 loadDetail) */
|
|
5
|
+
ready?: boolean;
|
|
6
|
+
/** 与详情共用 cacheKey 时开启 */
|
|
7
|
+
cacheKey?: string;
|
|
8
|
+
};
|
|
9
|
+
export type PrescriptionServices<TPrescription extends Prescription = Prescription> = {
|
|
10
|
+
getPrescription: (id: string) => Promise<TPrescription>;
|
|
11
|
+
confirmDrug: (id: string) => Promise<unknown>;
|
|
12
|
+
cancelPrescription: (id: string) => Promise<unknown>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* 处方详情 + 发药 / 作废(药房后台常见组合)
|
|
16
|
+
*
|
|
17
|
+
* - id 变化自动重新拉详情(refreshDeps)
|
|
18
|
+
* - 发药 / 作废成功后 mutate 乐观更新 status
|
|
19
|
+
*/
|
|
20
|
+
export declare function usePrescription<TPrescription extends Prescription = Prescription>(id: string | undefined, services: PrescriptionServices<TPrescription>, options?: UsePrescriptionOptions): {
|
|
21
|
+
readonly prescription: TPrescription | undefined;
|
|
22
|
+
readonly loading: boolean;
|
|
23
|
+
readonly error: Error | undefined;
|
|
24
|
+
readonly refreshing: boolean;
|
|
25
|
+
readonly confirming: boolean;
|
|
26
|
+
readonly cancelling: boolean;
|
|
27
|
+
/** id 变化或手动刷新详情 */
|
|
28
|
+
readonly refresh: () => void;
|
|
29
|
+
/** 手动按 id 拉详情(列表跳详情等) */
|
|
30
|
+
readonly loadDetail: () => void;
|
|
31
|
+
readonly confirmSend: (targetId?: string) => Promise<void>;
|
|
32
|
+
readonly cancel: (targetId?: string) => Promise<void>;
|
|
33
|
+
/** 本地改详情(乐观更新 / 回滚) */
|
|
34
|
+
readonly mutate: (data?: TPrescription | ((oldData?: TPrescription | undefined) => TPrescription | undefined) | undefined) => void;
|
|
35
|
+
};
|
|
36
|
+
export default usePrescription;
|