@fringeworks/react-defer-rendering 0.8.0 → 0.9.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.ja.md +313 -319
- package/README.md +313 -319
- package/_usePromiseState.cjs +13 -20
- package/_usePromiseState.d.cts +5 -2
- package/_usePromiseState.d.mts +6 -3
- package/_usePromiseState.mjs +10 -16
- package/_virtual/_rolldown/runtime.cjs +1 -2
- package/constants.cjs +0 -1
- package/constants.d.cts +3 -4
- package/constants.d.mts +3 -4
- package/index.cjs +41 -44
- package/index.d.cts +15 -4
- package/index.d.mts +15 -4
- package/index.mjs +4 -7
- package/package.json +113 -31
- package/types.cjs +1 -0
- package/types.d.cts +7 -8
- package/types.d.mts +7 -8
- package/useDeferUntilAsyncComplete/index.cjs +4 -4
- package/useDeferUntilAsyncComplete/index.d.cts +1 -1
- package/useDeferUntilAsyncComplete/index.d.mts +1 -1
- package/useDeferUntilAsyncComplete/index.mjs +1 -3
- package/useDeferUntilAsyncComplete/types.cjs +1 -0
- package/useDeferUntilAsyncComplete/types.d.cts +3 -4
- package/useDeferUntilAsyncComplete/types.d.mts +3 -4
- package/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.cjs +7 -5
- package/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.d.cts +0 -1
- package/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.d.mts +2 -4
- package/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.mjs +2 -1
- package/useDeferUntilBreakpoint/index.cjs +4 -4
- package/useDeferUntilBreakpoint/index.d.cts +1 -1
- package/useDeferUntilBreakpoint/index.d.mts +1 -1
- package/useDeferUntilBreakpoint/index.mjs +1 -3
- package/useDeferUntilBreakpoint/types.cjs +1 -0
- package/useDeferUntilBreakpoint/types.d.cts +5 -5
- package/useDeferUntilBreakpoint/types.d.mts +5 -5
- package/useDeferUntilBreakpoint/useDeferUntilBreakpoint.cjs +29 -9
- package/useDeferUntilBreakpoint/useDeferUntilBreakpoint.d.cts +0 -1
- package/useDeferUntilBreakpoint/useDeferUntilBreakpoint.d.mts +2 -4
- package/useDeferUntilBreakpoint/useDeferUntilBreakpoint.mjs +25 -6
- package/useDeferUntilCallThreshold/index.cjs +4 -4
- package/useDeferUntilCallThreshold/index.d.cts +1 -1
- package/useDeferUntilCallThreshold/index.d.mts +1 -1
- package/useDeferUntilCallThreshold/index.mjs +1 -3
- package/useDeferUntilCallThreshold/types.cjs +1 -0
- package/useDeferUntilCallThreshold/types.d.cts +3 -4
- package/useDeferUntilCallThreshold/types.d.mts +3 -4
- package/useDeferUntilCallThreshold/useDeferUntilCallThreshold.cjs +32 -19
- package/useDeferUntilCallThreshold/useDeferUntilCallThreshold.d.cts +0 -1
- package/useDeferUntilCallThreshold/useDeferUntilCallThreshold.d.mts +2 -4
- package/useDeferUntilCallThreshold/useDeferUntilCallThreshold.mjs +27 -15
- package/useDeferUntilChange/index.cjs +4 -4
- package/useDeferUntilChange/index.d.cts +1 -1
- package/useDeferUntilChange/index.d.mts +1 -1
- package/useDeferUntilChange/index.mjs +1 -3
- package/useDeferUntilChange/types.cjs +1 -0
- package/useDeferUntilChange/types.d.cts +3 -4
- package/useDeferUntilChange/types.d.mts +3 -4
- package/useDeferUntilChange/useDeferUntilChange.cjs +6 -9
- package/useDeferUntilChange/useDeferUntilChange.d.cts +0 -1
- package/useDeferUntilChange/useDeferUntilChange.d.mts +2 -4
- package/useDeferUntilChange/useDeferUntilChange.mjs +2 -4
- package/useDeferUntilDate/index.cjs +4 -4
- package/useDeferUntilDate/index.d.cts +1 -1
- package/useDeferUntilDate/index.d.mts +1 -1
- package/useDeferUntilDate/index.mjs +1 -3
- package/useDeferUntilDate/types.cjs +1 -0
- package/useDeferUntilDate/types.d.cts +3 -4
- package/useDeferUntilDate/types.d.mts +3 -4
- package/useDeferUntilDate/useDeferUntilDate.cjs +13 -4
- package/useDeferUntilDate/useDeferUntilDate.d.cts +0 -1
- package/useDeferUntilDate/useDeferUntilDate.d.mts +2 -4
- package/useDeferUntilDate/useDeferUntilDate.mjs +10 -4
- package/useDeferUntilIntersected/index.cjs +4 -4
- package/useDeferUntilIntersected/index.d.cts +1 -1
- package/useDeferUntilIntersected/index.d.mts +1 -1
- package/useDeferUntilIntersected/index.mjs +1 -3
- package/useDeferUntilIntersected/types.cjs +1 -0
- package/useDeferUntilIntersected/types.d.cts +8 -9
- package/useDeferUntilIntersected/types.d.mts +8 -9
- package/useDeferUntilIntersected/useDeferUntilIntersected.cjs +14 -13
- package/useDeferUntilIntersected/useDeferUntilIntersected.d.cts +0 -1
- package/useDeferUntilIntersected/useDeferUntilIntersected.d.mts +2 -4
- package/useDeferUntilIntersected/useDeferUntilIntersected.mjs +10 -8
- package/useDeferUntilOnReady/index.cjs +4 -4
- package/useDeferUntilOnReady/index.d.cts +1 -1
- package/useDeferUntilOnReady/index.d.mts +1 -1
- package/useDeferUntilOnReady/index.mjs +1 -3
- package/useDeferUntilOnReady/types.cjs +1 -0
- package/useDeferUntilOnReady/types.d.cts +3 -4
- package/useDeferUntilOnReady/types.d.mts +3 -4
- package/useDeferUntilOnReady/useDeferUntilOnReady.cjs +28 -21
- package/useDeferUntilOnReady/useDeferUntilOnReady.d.cts +2 -2
- package/useDeferUntilOnReady/useDeferUntilOnReady.d.mts +4 -5
- package/useDeferUntilOnReady/useDeferUntilOnReady.mjs +23 -15
- package/useDeferUntilReady/index.cjs +4 -4
- package/useDeferUntilReady/index.d.cts +1 -1
- package/useDeferUntilReady/index.d.mts +1 -1
- package/useDeferUntilReady/index.mjs +1 -3
- package/useDeferUntilReady/types.cjs +1 -0
- package/useDeferUntilReady/types.d.cts +2 -4
- package/useDeferUntilReady/types.d.mts +2 -4
- package/useDeferUntilReady/useDeferUntilReady.cjs +20 -32
- package/useDeferUntilReady/useDeferUntilReady.d.cts +0 -1
- package/useDeferUntilReady/useDeferUntilReady.d.mts +2 -4
- package/useDeferUntilReady/useDeferUntilReady.mjs +18 -29
- package/useDeferUntilRender/index.cjs +4 -4
- package/useDeferUntilRender/index.d.cts +1 -1
- package/useDeferUntilRender/index.d.mts +1 -1
- package/useDeferUntilRender/index.mjs +1 -3
- package/useDeferUntilRender/types.cjs +1 -0
- package/useDeferUntilRender/types.d.cts +5 -5
- package/useDeferUntilRender/types.d.mts +5 -5
- package/useDeferUntilRender/useDeferUntilRender.cjs +31 -12
- package/useDeferUntilRender/useDeferUntilRender.d.cts +0 -1
- package/useDeferUntilRender/useDeferUntilRender.d.mts +2 -4
- package/useDeferUntilRender/useDeferUntilRender.mjs +26 -8
- package/useDeferUntilResolved/index.cjs +4 -4
- package/useDeferUntilResolved/index.d.cts +1 -1
- package/useDeferUntilResolved/index.d.mts +1 -1
- package/useDeferUntilResolved/index.mjs +1 -3
- package/useDeferUntilResolved/types.cjs +1 -0
- package/useDeferUntilResolved/types.d.cts +3 -4
- package/useDeferUntilResolved/types.d.mts +3 -4
- package/useDeferUntilResolved/useDeferUntilResolved.cjs +8 -5
- package/useDeferUntilResolved/useDeferUntilResolved.d.cts +0 -1
- package/useDeferUntilResolved/useDeferUntilResolved.d.mts +2 -4
- package/useDeferUntilResolved/useDeferUntilResolved.mjs +3 -1
- package/useDeferUntilTimeout/index.cjs +4 -4
- package/useDeferUntilTimeout/index.d.cts +1 -1
- package/useDeferUntilTimeout/index.d.mts +1 -1
- package/useDeferUntilTimeout/index.mjs +1 -3
- package/useDeferUntilTimeout/types.cjs +1 -0
- package/useDeferUntilTimeout/types.d.cts +3 -4
- package/useDeferUntilTimeout/types.d.mts +3 -4
- package/useDeferUntilTimeout/useDeferUntilTimeout.cjs +23 -21
- package/useDeferUntilTimeout/useDeferUntilTimeout.d.cts +0 -1
- package/useDeferUntilTimeout/useDeferUntilTimeout.d.mts +2 -4
- package/useDeferUntilTimeout/useDeferUntilTimeout.mjs +16 -14
- package/useDeferUntilTrue/index.cjs +4 -4
- package/useDeferUntilTrue/index.d.cts +1 -1
- package/useDeferUntilTrue/index.d.mts +1 -1
- package/useDeferUntilTrue/index.mjs +1 -3
- package/useDeferUntilTrue/types.cjs +1 -0
- package/useDeferUntilTrue/types.d.cts +2 -4
- package/useDeferUntilTrue/types.d.mts +2 -4
- package/useDeferUntilTrue/useDeferUntilTrue.cjs +6 -5
- package/useDeferUntilTrue/useDeferUntilTrue.d.cts +0 -1
- package/useDeferUntilTrue/useDeferUntilTrue.d.mts +2 -4
- package/useDeferUntilWebFontReady/index.cjs +4 -4
- package/useDeferUntilWebFontReady/index.d.cts +1 -1
- package/useDeferUntilWebFontReady/index.d.mts +1 -1
- package/useDeferUntilWebFontReady/index.mjs +1 -3
- package/useDeferUntilWebFontReady/types.cjs +1 -0
- package/useDeferUntilWebFontReady/types.d.cts +6 -7
- package/useDeferUntilWebFontReady/types.d.mts +6 -7
- package/useDeferUntilWebFontReady/useDeferUntilWebFontReady.cjs +23 -14
- package/useDeferUntilWebFontReady/useDeferUntilWebFontReady.d.cts +0 -1
- package/useDeferUntilWebFontReady/useDeferUntilWebFontReady.d.mts +2 -4
- package/useDeferUntilWebFontReady/useDeferUntilWebFontReady.mjs +16 -9
- package/useDeferUntilScrolled/index.cjs +0 -5
- package/useDeferUntilScrolled/index.d.cts +0 -3
- package/useDeferUntilScrolled/index.d.mts +0 -3
- package/useDeferUntilScrolled/index.mjs +0 -5
- package/useDeferUntilScrolled/types.cjs +0 -0
- package/useDeferUntilScrolled/types.d.cts +0 -29
- package/useDeferUntilScrolled/types.d.mts +0 -29
- package/useDeferUntilScrolled/types.mjs +0 -1
- package/useDeferUntilScrolled/useDeferUntilScrolled.cjs +0 -94
- package/useDeferUntilScrolled/useDeferUntilScrolled.d.cts +0 -14
- package/useDeferUntilScrolled/useDeferUntilScrolled.d.mts +0 -15
- package/useDeferUntilScrolled/useDeferUntilScrolled.mjs +0 -91
package/types.d.cts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { RenderingState } from "./constants.cjs";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/types.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* オプションのベース
|
|
7
6
|
*/
|
|
8
|
-
type DeferRenderingOptionsBase<P extends ReactNode> = {
|
|
7
|
+
export type DeferRenderingOptionsBase<P extends ReactNode> = {
|
|
9
8
|
/**
|
|
10
9
|
* 表示待ち中に表示するノード
|
|
11
10
|
*/
|
|
@@ -29,7 +28,7 @@ type DeferRenderingOptionsBase<P extends ReactNode> = {
|
|
|
29
28
|
/**
|
|
30
29
|
* オプションのベース(フォールバック有り)
|
|
31
30
|
*/
|
|
32
|
-
type DeferRenderingWithFallbackOptionsBase<P extends ReactNode, F extends ReactNode> = DeferRenderingOptionsBase<P> & {
|
|
31
|
+
export type DeferRenderingWithFallbackOptionsBase<P extends ReactNode, F extends ReactNode> = DeferRenderingOptionsBase<P> & {
|
|
33
32
|
/**
|
|
34
33
|
* フォールバック時に表示するノード
|
|
35
34
|
*/
|
|
@@ -48,20 +47,21 @@ type DeferRenderingWithFallbackOptionsBase<P extends ReactNode, F extends ReactN
|
|
|
48
47
|
/**
|
|
49
48
|
* 現在の状態を示す戻り値
|
|
50
49
|
*/
|
|
51
|
-
type DeferRenderingResult<N extends ReactNode> = {
|
|
50
|
+
export type DeferRenderingResult<N extends ReactNode> = {
|
|
52
51
|
/**
|
|
53
52
|
* 描画状態
|
|
54
53
|
*/
|
|
55
54
|
state: RenderingState;
|
|
56
55
|
/**
|
|
57
56
|
* 描画するノード
|
|
57
|
+
* 表示を遅らせている間は null、該当するノードを指定していない場合は undefined
|
|
58
58
|
*/
|
|
59
|
-
node: N;
|
|
59
|
+
node: N | null | undefined;
|
|
60
60
|
};
|
|
61
61
|
/**
|
|
62
62
|
* 現在の状態と状態変更用のハンドラーを返す戻り値
|
|
63
63
|
*/
|
|
64
|
-
type DeferRenderingWithHandlersResult<N extends ReactNode> = DeferRenderingResult<N> & {
|
|
64
|
+
export type DeferRenderingWithHandlersResult<N extends ReactNode> = DeferRenderingResult<N> & {
|
|
65
65
|
/**
|
|
66
66
|
* 描画前の状態に戻すハンドラー
|
|
67
67
|
* @returns
|
|
@@ -78,5 +78,4 @@ type DeferRenderingWithHandlersResult<N extends ReactNode> = DeferRenderingResul
|
|
|
78
78
|
*/
|
|
79
79
|
onReady: () => void;
|
|
80
80
|
};
|
|
81
|
-
//#endregion
|
|
82
|
-
export { DeferRenderingOptionsBase, DeferRenderingResult, DeferRenderingWithFallbackOptionsBase, DeferRenderingWithHandlersResult };
|
|
81
|
+
//#endregion
|
package/types.d.mts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { RenderingState } from "./constants.mjs";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/types.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* オプションのベース
|
|
7
6
|
*/
|
|
8
|
-
type DeferRenderingOptionsBase<P extends ReactNode> = {
|
|
7
|
+
export type DeferRenderingOptionsBase<P extends ReactNode> = {
|
|
9
8
|
/**
|
|
10
9
|
* 表示待ち中に表示するノード
|
|
11
10
|
*/
|
|
@@ -29,7 +28,7 @@ type DeferRenderingOptionsBase<P extends ReactNode> = {
|
|
|
29
28
|
/**
|
|
30
29
|
* オプションのベース(フォールバック有り)
|
|
31
30
|
*/
|
|
32
|
-
type DeferRenderingWithFallbackOptionsBase<P extends ReactNode, F extends ReactNode> = DeferRenderingOptionsBase<P> & {
|
|
31
|
+
export type DeferRenderingWithFallbackOptionsBase<P extends ReactNode, F extends ReactNode> = DeferRenderingOptionsBase<P> & {
|
|
33
32
|
/**
|
|
34
33
|
* フォールバック時に表示するノード
|
|
35
34
|
*/
|
|
@@ -48,20 +47,21 @@ type DeferRenderingWithFallbackOptionsBase<P extends ReactNode, F extends ReactN
|
|
|
48
47
|
/**
|
|
49
48
|
* 現在の状態を示す戻り値
|
|
50
49
|
*/
|
|
51
|
-
type DeferRenderingResult<N extends ReactNode> = {
|
|
50
|
+
export type DeferRenderingResult<N extends ReactNode> = {
|
|
52
51
|
/**
|
|
53
52
|
* 描画状態
|
|
54
53
|
*/
|
|
55
54
|
state: RenderingState;
|
|
56
55
|
/**
|
|
57
56
|
* 描画するノード
|
|
57
|
+
* 表示を遅らせている間は null、該当するノードを指定していない場合は undefined
|
|
58
58
|
*/
|
|
59
|
-
node: N;
|
|
59
|
+
node: N | null | undefined;
|
|
60
60
|
};
|
|
61
61
|
/**
|
|
62
62
|
* 現在の状態と状態変更用のハンドラーを返す戻り値
|
|
63
63
|
*/
|
|
64
|
-
type DeferRenderingWithHandlersResult<N extends ReactNode> = DeferRenderingResult<N> & {
|
|
64
|
+
export type DeferRenderingWithHandlersResult<N extends ReactNode> = DeferRenderingResult<N> & {
|
|
65
65
|
/**
|
|
66
66
|
* 描画前の状態に戻すハンドラー
|
|
67
67
|
* @returns
|
|
@@ -78,5 +78,4 @@ type DeferRenderingWithHandlersResult<N extends ReactNode> = DeferRenderingResul
|
|
|
78
78
|
*/
|
|
79
79
|
onReady: () => void;
|
|
80
80
|
};
|
|
81
|
-
//#endregion
|
|
82
|
-
export { DeferRenderingOptionsBase, DeferRenderingResult, DeferRenderingWithFallbackOptionsBase, DeferRenderingWithHandlersResult };
|
|
81
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilAsyncComplete_useDeferUntilAsyncComplete = require("./useDeferUntilAsyncComplete.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilAsyncComplete_useDeferUntilAsyncComplete;
|
|
4
|
+
exports.default = require_useDeferUntilAsyncComplete_useDeferUntilAsyncComplete.default;
|
|
5
|
+
exports.useDeferUntilAsyncComplete = require_useDeferUntilAsyncComplete_useDeferUntilAsyncComplete.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilAsyncCompleteOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilAsyncComplete from "./useDeferUntilAsyncComplete.cjs";
|
|
3
|
-
export { type UseDeferUntilAsyncCompleteOptions, useDeferUntilAsyncComplete as default };
|
|
3
|
+
export { type UseDeferUntilAsyncCompleteOptions, useDeferUntilAsyncComplete as default, useDeferUntilAsyncComplete };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilAsyncCompleteOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilAsyncComplete from "./useDeferUntilAsyncComplete.mjs";
|
|
3
|
-
export { type UseDeferUntilAsyncCompleteOptions, useDeferUntilAsyncComplete as default };
|
|
3
|
+
export { type UseDeferUntilAsyncCompleteOptions, useDeferUntilAsyncComplete as default, useDeferUntilAsyncComplete };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilResolvedOptions } from "../useDeferUntilResolved/types.cjs";
|
|
2
|
+
import "../useDeferUntilResolved/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilAsyncComplete/types.d.ts
|
|
5
|
-
type UseDeferUntilAsyncCompleteOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilResolvedOptions<P, E>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilAsyncCompleteOptions };
|
|
5
|
+
export type UseDeferUntilAsyncCompleteOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilResolvedOptions<P, E>;
|
|
6
|
+
//#endregion
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilResolvedOptions } from "../useDeferUntilResolved/types.mjs";
|
|
2
|
+
import "../useDeferUntilResolved/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilAsyncComplete/types.d.ts
|
|
5
|
-
type UseDeferUntilAsyncCompleteOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilResolvedOptions<P, E>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilAsyncCompleteOptions };
|
|
5
|
+
export type UseDeferUntilAsyncCompleteOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilResolvedOptions<P, E>;
|
|
6
|
+
//#endregion
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
require(
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require__usePromiseState = require("../_usePromiseState.cjs");
|
|
5
|
+
const require_useDeferUntilReady_useDeferUntilReady = require("../useDeferUntilReady/useDeferUntilReady.cjs");
|
|
6
|
+
require("../useDeferUntilReady/index.cjs");
|
|
6
7
|
|
|
7
8
|
//#region src/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.tsx
|
|
8
9
|
/**
|
|
@@ -13,8 +14,9 @@ require('../useDeferUntilReady/index.cjs');
|
|
|
13
14
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノード
|
|
14
15
|
*/
|
|
15
16
|
function useDeferUntilAsyncComplete(target, asyncFn, options = {}) {
|
|
16
|
-
|
|
17
|
+
const state = require__usePromiseState.default(asyncFn);
|
|
18
|
+
return require_useDeferUntilReady_useDeferUntilReady.default(target, state, options);
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
//#endregion
|
|
20
|
-
|
|
22
|
+
exports.default = useDeferUntilAsyncComplete;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.cjs";
|
|
2
2
|
import { UseDeferUntilAsyncCompleteOptions } from "./types.cjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 非同期関数の処理の完了まで描画を遅延させるhook
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilAsyncCompleteOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilAsyncComplete/useDeferUntilAsyncComplete.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 非同期関数の処理の完了まで描画を遅延させるhook
|
|
@@ -10,6 +9,5 @@ import { ReactNode } from "react";
|
|
|
10
9
|
* @param options オプション
|
|
11
10
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノード
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { useDeferUntilAsyncComplete as default };
|
|
12
|
+
export default function useDeferUntilAsyncComplete<T extends ReactNode, P extends ReactNode = ReactNode, E extends ReactNode = ReactNode>(target: T, asyncFn: (() => Promise<void>) | null | undefined, options?: UseDeferUntilAsyncCompleteOptions<P, E>): DeferRenderingResult<T | P | E>;
|
|
13
|
+
//#endregion
|
|
@@ -13,7 +13,8 @@ import "../useDeferUntilReady/index.mjs";
|
|
|
13
13
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノード
|
|
14
14
|
*/
|
|
15
15
|
function useDeferUntilAsyncComplete(target, asyncFn, options = {}) {
|
|
16
|
-
|
|
16
|
+
const state = usePromiseState(asyncFn);
|
|
17
|
+
return useDeferUntilReady(target, state, options);
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilBreakpoint_useDeferUntilBreakpoint = require("./useDeferUntilBreakpoint.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilBreakpoint_useDeferUntilBreakpoint;
|
|
4
|
+
exports.default = require_useDeferUntilBreakpoint_useDeferUntilBreakpoint.default;
|
|
5
|
+
exports.useDeferUntilBreakpoint = require_useDeferUntilBreakpoint_useDeferUntilBreakpoint.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilBreakpointOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilBreakpoint from "./useDeferUntilBreakpoint.cjs";
|
|
3
|
-
export { type UseDeferUntilBreakpointOptions, useDeferUntilBreakpoint as default };
|
|
3
|
+
export { type UseDeferUntilBreakpointOptions, useDeferUntilBreakpoint as default, useDeferUntilBreakpoint };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilBreakpointOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilBreakpoint from "./useDeferUntilBreakpoint.mjs";
|
|
3
|
-
export { type UseDeferUntilBreakpointOptions, useDeferUntilBreakpoint as default };
|
|
3
|
+
export { type UseDeferUntilBreakpointOptions, useDeferUntilBreakpoint as default, useDeferUntilBreakpoint };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.cjs";
|
|
2
|
+
import "../useDeferUntilTrue/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilBreakpoint/types.d.ts
|
|
5
|
-
type UseDeferUntilBreakpointOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
5
|
+
export type UseDeferUntilBreakpointOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* メディアクエリーの変化を反映するまでの時間(ミリ秒)\
|
|
8
|
+
* この間に続けて変化した場合は、最後の変化から数え直す。0の場合は次のタスクで反映する\
|
|
8
9
|
* デフォルトは100ms
|
|
9
10
|
* @default 100
|
|
10
11
|
*/
|
|
@@ -16,5 +17,4 @@ type UseDeferUntilBreakpointOptions<P extends ReactNode = ReactNode> = UseDeferU
|
|
|
16
17
|
*/
|
|
17
18
|
initialCondition?: boolean;
|
|
18
19
|
};
|
|
19
|
-
//#endregion
|
|
20
|
-
export { UseDeferUntilBreakpointOptions };
|
|
20
|
+
//#endregion
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.mjs";
|
|
2
|
+
import "../useDeferUntilTrue/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilBreakpoint/types.d.ts
|
|
5
|
-
type UseDeferUntilBreakpointOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
5
|
+
export type UseDeferUntilBreakpointOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* メディアクエリーの変化を反映するまでの時間(ミリ秒)\
|
|
8
|
+
* この間に続けて変化した場合は、最後の変化から数え直す。0の場合は次のタスクで反映する\
|
|
8
9
|
* デフォルトは100ms
|
|
9
10
|
* @default 100
|
|
10
11
|
*/
|
|
@@ -16,5 +17,4 @@ type UseDeferUntilBreakpointOptions<P extends ReactNode = ReactNode> = UseDeferU
|
|
|
16
17
|
*/
|
|
17
18
|
initialCondition?: boolean;
|
|
18
19
|
};
|
|
19
|
-
//#endregion
|
|
20
|
-
export { UseDeferUntilBreakpointOptions };
|
|
20
|
+
//#endregion
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
require(
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
5
|
+
const require_useDeferUntilTrue_useDeferUntilTrue = require("../useDeferUntilTrue/useDeferUntilTrue.cjs");
|
|
6
|
+
require("../useDeferUntilTrue/index.cjs");
|
|
6
7
|
let react = require("react");
|
|
7
8
|
let _fringeworks_utils_timer_debounce = require("@fringeworks/utils/timer/debounce");
|
|
8
9
|
_fringeworks_utils_timer_debounce = require_runtime.__toESM(_fringeworks_utils_timer_debounce, 1);
|
|
@@ -17,28 +18,47 @@ _fringeworks_utils_timer_debounce = require_runtime.__toESM(_fringeworks_utils_t
|
|
|
17
18
|
*/
|
|
18
19
|
function useDeferUntilBreakpoint(target, mediaQuery, options = {}) {
|
|
19
20
|
const { detectionDelay = 100, preserveOnceReady, initialCondition = false, ...opts } = options;
|
|
20
|
-
|
|
21
|
+
const snapshotRef = (0, react.useRef)(null);
|
|
22
|
+
const subscribe = (0, react.useCallback)((onStoreChange) => {
|
|
21
23
|
if (!mediaQuery) return () => {};
|
|
22
24
|
const mediaQueryList = window.matchMedia(mediaQuery);
|
|
25
|
+
snapshotRef.current = {
|
|
26
|
+
mediaQuery,
|
|
27
|
+
matches: mediaQueryList.matches
|
|
28
|
+
};
|
|
23
29
|
if (preserveOnceReady && mediaQueryList.matches) return () => {};
|
|
24
|
-
const handleChange = (
|
|
30
|
+
const handleChange = () => {
|
|
31
|
+
const { matches } = mediaQueryList;
|
|
32
|
+
snapshotRef.current = {
|
|
33
|
+
mediaQuery,
|
|
34
|
+
matches
|
|
35
|
+
};
|
|
25
36
|
onStoreChange();
|
|
26
|
-
if (preserveOnceReady &&
|
|
37
|
+
if (preserveOnceReady && matches) mediaQueryList.removeEventListener("change", debouncedHandleChange);
|
|
27
38
|
};
|
|
28
|
-
const debouncedHandleChange = (0, _fringeworks_utils_timer_debounce.default)(handleChange, detectionDelay);
|
|
39
|
+
const debouncedHandleChange = (0, _fringeworks_utils_timer_debounce.default)(handleChange, { wait: detectionDelay });
|
|
29
40
|
mediaQueryList.addEventListener("change", debouncedHandleChange);
|
|
30
41
|
return () => {
|
|
42
|
+
debouncedHandleChange.cancel();
|
|
31
43
|
mediaQueryList.removeEventListener("change", debouncedHandleChange);
|
|
32
44
|
};
|
|
33
45
|
}, [
|
|
34
46
|
mediaQuery,
|
|
35
47
|
preserveOnceReady,
|
|
36
48
|
detectionDelay
|
|
37
|
-
])
|
|
49
|
+
]);
|
|
50
|
+
const getSnapshot = (0, react.useCallback)(() => {
|
|
51
|
+
if (!mediaQuery) return true;
|
|
52
|
+
const snapshot = snapshotRef.current;
|
|
53
|
+
return snapshot?.mediaQuery === mediaQuery ? snapshot.matches : window.matchMedia(mediaQuery).matches;
|
|
54
|
+
}, [mediaQuery]);
|
|
55
|
+
const getServerSnapshot = (0, react.useCallback)(() => !mediaQuery || initialCondition, [mediaQuery, initialCondition]);
|
|
56
|
+
const condition = (0, react.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
|
|
57
|
+
return require_useDeferUntilTrue_useDeferUntilTrue.default(target, condition, {
|
|
38
58
|
preserveOnceReady,
|
|
39
59
|
...opts
|
|
40
60
|
});
|
|
41
61
|
}
|
|
42
62
|
|
|
43
63
|
//#endregion
|
|
44
|
-
|
|
64
|
+
exports.default = useDeferUntilBreakpoint;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilBreakpointOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilBreakpoint/useDeferUntilBreakpoint.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* メディアクエリーが一致するまで描画を遅延させるhook
|
|
@@ -10,6 +9,5 @@ import { ReactNode } from "react";
|
|
|
10
9
|
* @param options オプション
|
|
11
10
|
* @returns state('pending', 'ready')と状態に応じたノード
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { useDeferUntilBreakpoint as default };
|
|
12
|
+
export default function useDeferUntilBreakpoint<T extends ReactNode, P extends ReactNode = ReactNode>(target: T, mediaQuery: string | null | undefined, options?: UseDeferUntilBreakpointOptions<P>): DeferRenderingResult<T | P>;
|
|
13
|
+
//#endregion
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import useDeferUntilTrue from "../useDeferUntilTrue/useDeferUntilTrue.mjs";
|
|
4
4
|
import "../useDeferUntilTrue/index.mjs";
|
|
5
|
-
import { useCallback, useSyncExternalStore } from "react";
|
|
5
|
+
import { useCallback, useRef, useSyncExternalStore } from "react";
|
|
6
6
|
import debounce from "@fringeworks/utils/timer/debounce";
|
|
7
7
|
|
|
8
8
|
//#region src/useDeferUntilBreakpoint/useDeferUntilBreakpoint.tsx
|
|
@@ -15,24 +15,43 @@ import debounce from "@fringeworks/utils/timer/debounce";
|
|
|
15
15
|
*/
|
|
16
16
|
function useDeferUntilBreakpoint(target, mediaQuery, options = {}) {
|
|
17
17
|
const { detectionDelay = 100, preserveOnceReady, initialCondition = false, ...opts } = options;
|
|
18
|
-
|
|
18
|
+
const snapshotRef = useRef(null);
|
|
19
|
+
const subscribe = useCallback((onStoreChange) => {
|
|
19
20
|
if (!mediaQuery) return () => {};
|
|
20
21
|
const mediaQueryList = window.matchMedia(mediaQuery);
|
|
22
|
+
snapshotRef.current = {
|
|
23
|
+
mediaQuery,
|
|
24
|
+
matches: mediaQueryList.matches
|
|
25
|
+
};
|
|
21
26
|
if (preserveOnceReady && mediaQueryList.matches) return () => {};
|
|
22
|
-
const handleChange = (
|
|
27
|
+
const handleChange = () => {
|
|
28
|
+
const { matches } = mediaQueryList;
|
|
29
|
+
snapshotRef.current = {
|
|
30
|
+
mediaQuery,
|
|
31
|
+
matches
|
|
32
|
+
};
|
|
23
33
|
onStoreChange();
|
|
24
|
-
if (preserveOnceReady &&
|
|
34
|
+
if (preserveOnceReady && matches) mediaQueryList.removeEventListener("change", debouncedHandleChange);
|
|
25
35
|
};
|
|
26
|
-
const debouncedHandleChange = debounce(handleChange, detectionDelay);
|
|
36
|
+
const debouncedHandleChange = debounce(handleChange, { wait: detectionDelay });
|
|
27
37
|
mediaQueryList.addEventListener("change", debouncedHandleChange);
|
|
28
38
|
return () => {
|
|
39
|
+
debouncedHandleChange.cancel();
|
|
29
40
|
mediaQueryList.removeEventListener("change", debouncedHandleChange);
|
|
30
41
|
};
|
|
31
42
|
}, [
|
|
32
43
|
mediaQuery,
|
|
33
44
|
preserveOnceReady,
|
|
34
45
|
detectionDelay
|
|
35
|
-
])
|
|
46
|
+
]);
|
|
47
|
+
const getSnapshot = useCallback(() => {
|
|
48
|
+
if (!mediaQuery) return true;
|
|
49
|
+
const snapshot = snapshotRef.current;
|
|
50
|
+
return snapshot?.mediaQuery === mediaQuery ? snapshot.matches : window.matchMedia(mediaQuery).matches;
|
|
51
|
+
}, [mediaQuery]);
|
|
52
|
+
const getServerSnapshot = useCallback(() => !mediaQuery || initialCondition, [mediaQuery, initialCondition]);
|
|
53
|
+
const condition = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
54
|
+
return useDeferUntilTrue(target, condition, {
|
|
36
55
|
preserveOnceReady,
|
|
37
56
|
...opts
|
|
38
57
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilCallThreshold_useDeferUntilCallThreshold = require("./useDeferUntilCallThreshold.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilCallThreshold_useDeferUntilCallThreshold;
|
|
4
|
+
exports.default = require_useDeferUntilCallThreshold_useDeferUntilCallThreshold.default;
|
|
5
|
+
exports.useDeferUntilCallThreshold = require_useDeferUntilCallThreshold_useDeferUntilCallThreshold.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilCallThresholdOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilCallThreshold from "./useDeferUntilCallThreshold.cjs";
|
|
3
|
-
export { type UseDeferUntilCallThresholdOptions, useDeferUntilCallThreshold as default };
|
|
3
|
+
export { type UseDeferUntilCallThresholdOptions, useDeferUntilCallThreshold as default, useDeferUntilCallThreshold };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilCallThresholdOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilCallThreshold from "./useDeferUntilCallThreshold.mjs";
|
|
3
|
-
export { type UseDeferUntilCallThresholdOptions, useDeferUntilCallThreshold as default };
|
|
3
|
+
export { type UseDeferUntilCallThresholdOptions, useDeferUntilCallThreshold as default, useDeferUntilCallThreshold };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UseDeferUntilOnReadyOptions } from "../useDeferUntilOnReady/types.cjs";
|
|
2
|
+
import "../useDeferUntilOnReady/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilCallThreshold/types.d.ts
|
|
5
|
-
type UseDeferUntilCallThresholdOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilOnReadyOptions<P, E> & {
|
|
5
|
+
export type UseDeferUntilCallThresholdOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilOnReadyOptions<P, E> & {
|
|
6
6
|
/**
|
|
7
7
|
* readyになる為のonReadyの呼び出し回数
|
|
8
8
|
* 未指定の場合は1回
|
|
@@ -19,5 +19,4 @@ type UseDeferUntilCallThresholdOptions<P extends ReactNode = ReactNode, E extend
|
|
|
19
19
|
*/
|
|
20
20
|
onPendingCount?: number;
|
|
21
21
|
};
|
|
22
|
-
//#endregion
|
|
23
|
-
export { UseDeferUntilCallThresholdOptions };
|
|
22
|
+
//#endregion
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UseDeferUntilOnReadyOptions } from "../useDeferUntilOnReady/types.mjs";
|
|
2
|
+
import "../useDeferUntilOnReady/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilCallThreshold/types.d.ts
|
|
5
|
-
type UseDeferUntilCallThresholdOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilOnReadyOptions<P, E> & {
|
|
5
|
+
export type UseDeferUntilCallThresholdOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilOnReadyOptions<P, E> & {
|
|
6
6
|
/**
|
|
7
7
|
* readyになる為のonReadyの呼び出し回数
|
|
8
8
|
* 未指定の場合は1回
|
|
@@ -19,5 +19,4 @@ type UseDeferUntilCallThresholdOptions<P extends ReactNode = ReactNode, E extend
|
|
|
19
19
|
*/
|
|
20
20
|
onPendingCount?: number;
|
|
21
21
|
};
|
|
22
|
-
//#endregion
|
|
23
|
-
export { UseDeferUntilCallThresholdOptions };
|
|
22
|
+
//#endregion
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require(
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_useDeferUntilOnReady_useDeferUntilOnReady = require("../useDeferUntilOnReady/useDeferUntilOnReady.cjs");
|
|
5
|
+
require("../useDeferUntilOnReady/index.cjs");
|
|
5
6
|
let react = require("react");
|
|
6
7
|
|
|
7
8
|
//#region src/useDeferUntilCallThreshold/useDeferUntilCallThreshold.tsx
|
|
@@ -13,36 +14,48 @@ let react = require("react");
|
|
|
13
14
|
*/
|
|
14
15
|
function useDeferUntilCallThreshold(target, options = {}) {
|
|
15
16
|
const { onPendingCount = 1, onFallbackCount = 1, onReadyCount = 1, ...opts } = options;
|
|
16
|
-
const { onPending: handlePending, onFallback: handleFallback, onReady: handleReady, ...rest } = require_useDeferUntilOnReady_useDeferUntilOnReady(target, opts);
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
17
|
+
const { onPending: handlePending, onFallback: handleFallback, onReady: handleReady, ...rest } = require_useDeferUntilOnReady_useDeferUntilOnReady.default(target, opts);
|
|
18
|
+
const pendingCountRef = (0, react.useRef)(0);
|
|
19
|
+
const fallbackCountRef = (0, react.useRef)(0);
|
|
20
|
+
const readyCountRef = (0, react.useRef)(0);
|
|
20
21
|
const reset = (0, react.useCallback)(() => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
pendingCountRef.current = 0;
|
|
23
|
+
fallbackCountRef.current = 0;
|
|
24
|
+
readyCountRef.current = 0;
|
|
24
25
|
}, []);
|
|
25
26
|
const onPending = (0, react.useCallback)(() => {
|
|
26
|
-
|
|
27
|
-
if (onPendingCount <=
|
|
27
|
+
pendingCountRef.current += 1;
|
|
28
|
+
if (onPendingCount <= pendingCountRef.current) {
|
|
28
29
|
reset();
|
|
29
30
|
handlePending();
|
|
30
31
|
}
|
|
31
|
-
}, [
|
|
32
|
+
}, [
|
|
33
|
+
handlePending,
|
|
34
|
+
onPendingCount,
|
|
35
|
+
reset
|
|
36
|
+
]);
|
|
32
37
|
const onFallback = (0, react.useCallback)(() => {
|
|
33
|
-
|
|
34
|
-
if (onFallbackCount <=
|
|
38
|
+
fallbackCountRef.current += 1;
|
|
39
|
+
if (onFallbackCount <= fallbackCountRef.current) {
|
|
35
40
|
reset();
|
|
36
41
|
handleFallback();
|
|
37
42
|
}
|
|
38
|
-
}, [
|
|
43
|
+
}, [
|
|
44
|
+
handleFallback,
|
|
45
|
+
onFallbackCount,
|
|
46
|
+
reset
|
|
47
|
+
]);
|
|
39
48
|
const onReady = (0, react.useCallback)(() => {
|
|
40
|
-
|
|
41
|
-
if (onReadyCount <=
|
|
49
|
+
readyCountRef.current += 1;
|
|
50
|
+
if (onReadyCount <= readyCountRef.current) {
|
|
42
51
|
reset();
|
|
43
52
|
handleReady();
|
|
44
53
|
}
|
|
45
|
-
}, [
|
|
54
|
+
}, [
|
|
55
|
+
handleReady,
|
|
56
|
+
onReadyCount,
|
|
57
|
+
reset
|
|
58
|
+
]);
|
|
46
59
|
return {
|
|
47
60
|
...rest,
|
|
48
61
|
onPending,
|
|
@@ -52,4 +65,4 @@ function useDeferUntilCallThreshold(target, options = {}) {
|
|
|
52
65
|
}
|
|
53
66
|
|
|
54
67
|
//#endregion
|
|
55
|
-
|
|
68
|
+
exports.default = useDeferUntilCallThreshold;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingWithHandlersResult } from "../types.cjs";
|
|
2
2
|
import { UseDeferUntilCallThresholdOptions } from "./types.cjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilCallThreshold/useDeferUntilCallThreshold.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 戻り値として返す`onReady`等のハンドラーが指定回数呼ばれるまで描画を遅延させるhook
|