@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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilOnReady_useDeferUntilOnReady = require("./useDeferUntilOnReady.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilOnReady_useDeferUntilOnReady;
|
|
4
|
+
exports.default = require_useDeferUntilOnReady_useDeferUntilOnReady.default;
|
|
5
|
+
exports.useDeferUntilOnReady = require_useDeferUntilOnReady_useDeferUntilOnReady.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilOnReadyOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilOnReady from "./useDeferUntilOnReady.cjs";
|
|
3
|
-
export { type UseDeferUntilOnReadyOptions, useDeferUntilOnReady as default };
|
|
3
|
+
export { type UseDeferUntilOnReadyOptions, useDeferUntilOnReady as default, useDeferUntilOnReady };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilOnReadyOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilOnReady from "./useDeferUntilOnReady.mjs";
|
|
3
|
-
export { type UseDeferUntilOnReadyOptions, useDeferUntilOnReady as default };
|
|
3
|
+
export { type UseDeferUntilOnReadyOptions, useDeferUntilOnReady as default, useDeferUntilOnReady };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UseDeferUntilReadyOptions } from "../useDeferUntilReady/types.cjs";
|
|
2
|
+
import "../useDeferUntilReady/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilOnReady/types.d.ts
|
|
5
|
-
type UseDeferUntilOnReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
5
|
+
export type UseDeferUntilOnReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
6
6
|
/**
|
|
7
7
|
* onReadyのデバウンス時間(ミリ秒)
|
|
8
8
|
* 未指定の場合は即時処理
|
|
@@ -19,5 +19,4 @@ type UseDeferUntilOnReadyOptions<P extends ReactNode = ReactNode, E extends Reac
|
|
|
19
19
|
*/
|
|
20
20
|
onPendingDelay?: number;
|
|
21
21
|
};
|
|
22
|
-
//#endregion
|
|
23
|
-
export { UseDeferUntilOnReadyOptions };
|
|
22
|
+
//#endregion
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UseDeferUntilReadyOptions } from "../useDeferUntilReady/types.mjs";
|
|
2
|
+
import "../useDeferUntilReady/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilOnReady/types.d.ts
|
|
5
|
-
type UseDeferUntilOnReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
5
|
+
export type UseDeferUntilOnReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
6
6
|
/**
|
|
7
7
|
* onReadyのデバウンス時間(ミリ秒)
|
|
8
8
|
* 未指定の場合は即時処理
|
|
@@ -19,5 +19,4 @@ type UseDeferUntilOnReadyOptions<P extends ReactNode = ReactNode, E extends Reac
|
|
|
19
19
|
*/
|
|
20
20
|
onPendingDelay?: number;
|
|
21
21
|
};
|
|
22
|
-
//#endregion
|
|
23
|
-
export { UseDeferUntilOnReadyOptions };
|
|
22
|
+
//#endregion
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const require_constants = require(
|
|
5
|
-
const require_useDeferUntilReady_useDeferUntilReady = require(
|
|
6
|
-
require(
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_constants = require("../constants.cjs");
|
|
5
|
+
const require_useDeferUntilReady_useDeferUntilReady = require("../useDeferUntilReady/useDeferUntilReady.cjs");
|
|
6
|
+
require("../useDeferUntilReady/index.cjs");
|
|
7
7
|
let react = require("react");
|
|
8
|
-
let _fringeworks_utils_timer_debounce = require("@fringeworks/utils/timer/debounce");
|
|
9
|
-
_fringeworks_utils_timer_debounce = require_runtime.__toESM(_fringeworks_utils_timer_debounce, 1);
|
|
10
8
|
|
|
11
9
|
//#region src/useDeferUntilOnReady/useDeferUntilOnReady.tsx
|
|
12
10
|
/**
|
|
13
|
-
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook
|
|
11
|
+
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook\
|
|
12
|
+
* どのハンドラーを呼んだ場合も、待機中の状態の変更は取り消され、最後に呼んだハンドラーの状態になる
|
|
14
13
|
* @param target 描画対象のノード
|
|
15
14
|
* @param options オプション
|
|
16
15
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノードと状態変更用のハンドラー
|
|
@@ -18,20 +17,28 @@ _fringeworks_utils_timer_debounce = require_runtime.__toESM(_fringeworks_utils_t
|
|
|
18
17
|
function useDeferUntilOnReady(target, options = {}) {
|
|
19
18
|
const { onReadyDelay, onFallbackDelay, onPendingDelay, ...opts } = options;
|
|
20
19
|
const [state, setState] = (0, react.useState)(require_constants.RenderingState.pending);
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
const timerRef = (0, react.useRef)(void 0);
|
|
21
|
+
const cancel = (0, react.useCallback)(() => {
|
|
22
|
+
clearTimeout(timerRef.current);
|
|
23
|
+
timerRef.current = void 0;
|
|
24
|
+
}, []);
|
|
25
|
+
const changeState = (0, react.useCallback)((nextState, delay) => {
|
|
26
|
+
cancel();
|
|
27
|
+
if (delay == null) {
|
|
28
|
+
setState(nextState);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
timerRef.current = setTimeout(() => {
|
|
32
|
+
timerRef.current = void 0;
|
|
33
|
+
setState(nextState);
|
|
34
|
+
}, delay);
|
|
35
|
+
}, [cancel]);
|
|
36
|
+
(0, react.useEffect)(() => cancel, [cancel]);
|
|
37
|
+
const onReady = (0, react.useCallback)(() => changeState(require_constants.RenderingState.ready, onReadyDelay), [changeState, onReadyDelay]);
|
|
38
|
+
const onFallback = (0, react.useCallback)(() => changeState(require_constants.RenderingState.fallback, onFallbackDelay), [changeState, onFallbackDelay]);
|
|
39
|
+
const onPending = (0, react.useCallback)(() => changeState(require_constants.RenderingState.pending, onPendingDelay), [changeState, onPendingDelay]);
|
|
33
40
|
return {
|
|
34
|
-
...require_useDeferUntilReady_useDeferUntilReady(target, state, opts),
|
|
41
|
+
...require_useDeferUntilReady_useDeferUntilReady.default(target, state, opts),
|
|
35
42
|
onPending,
|
|
36
43
|
onFallback,
|
|
37
44
|
onReady
|
|
@@ -39,4 +46,4 @@ function useDeferUntilOnReady(target, options = {}) {
|
|
|
39
46
|
}
|
|
40
47
|
|
|
41
48
|
//#endregion
|
|
42
|
-
|
|
49
|
+
exports.default = useDeferUntilOnReady;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { DeferRenderingWithHandlersResult } from "../types.cjs";
|
|
2
2
|
import { UseDeferUntilOnReadyOptions } from "./types.cjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilOnReady/useDeferUntilOnReady.d.ts
|
|
6
5
|
/**
|
|
7
|
-
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook
|
|
6
|
+
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook\
|
|
7
|
+
* どのハンドラーを呼んだ場合も、待機中の状態の変更は取り消され、最後に呼んだハンドラーの状態になる
|
|
8
8
|
* @param target 描画対象のノード
|
|
9
9
|
* @param options オプション
|
|
10
10
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノードと状態変更用のハンドラー
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { DeferRenderingWithHandlersResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilOnReadyOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilOnReady/useDeferUntilOnReady.d.ts
|
|
6
5
|
/**
|
|
7
|
-
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook
|
|
6
|
+
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook\
|
|
7
|
+
* どのハンドラーを呼んだ場合も、待機中の状態の変更は取り消され、最後に呼んだハンドラーの状態になる
|
|
8
8
|
* @param target 描画対象のノード
|
|
9
9
|
* @param options オプション
|
|
10
10
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノードと状態変更用のハンドラー
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
//#endregion
|
|
14
|
-
export { useDeferUntilOnReady as default };
|
|
12
|
+
export default function useDeferUntilOnReady<T extends ReactNode, P extends ReactNode = ReactNode, E extends ReactNode = ReactNode>(target: T, options?: UseDeferUntilOnReadyOptions<P, E>): DeferRenderingWithHandlersResult<T | P | E>;
|
|
13
|
+
//#endregion
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import { RenderingState } from "../constants.mjs";
|
|
4
4
|
import useDeferUntilReady from "../useDeferUntilReady/useDeferUntilReady.mjs";
|
|
5
5
|
import "../useDeferUntilReady/index.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import debounce from "@fringeworks/utils/timer/debounce";
|
|
6
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
8
7
|
|
|
9
8
|
//#region src/useDeferUntilOnReady/useDeferUntilOnReady.tsx
|
|
10
9
|
/**
|
|
11
|
-
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook
|
|
10
|
+
* 戻り値として返す`onReady`が実行されるまで描画を遅延させるhook\
|
|
11
|
+
* どのハンドラーを呼んだ場合も、待機中の状態の変更は取り消され、最後に呼んだハンドラーの状態になる
|
|
12
12
|
* @param target 描画対象のノード
|
|
13
13
|
* @param options オプション
|
|
14
14
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノードと状態変更用のハンドラー
|
|
@@ -16,18 +16,26 @@ import debounce from "@fringeworks/utils/timer/debounce";
|
|
|
16
16
|
function useDeferUntilOnReady(target, options = {}) {
|
|
17
17
|
const { onReadyDelay, onFallbackDelay, onPendingDelay, ...opts } = options;
|
|
18
18
|
const [state, setState] = useState(RenderingState.pending);
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
const timerRef = useRef(void 0);
|
|
20
|
+
const cancel = useCallback(() => {
|
|
21
|
+
clearTimeout(timerRef.current);
|
|
22
|
+
timerRef.current = void 0;
|
|
23
|
+
}, []);
|
|
24
|
+
const changeState = useCallback((nextState, delay) => {
|
|
25
|
+
cancel();
|
|
26
|
+
if (delay == null) {
|
|
27
|
+
setState(nextState);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
timerRef.current = setTimeout(() => {
|
|
31
|
+
timerRef.current = void 0;
|
|
32
|
+
setState(nextState);
|
|
33
|
+
}, delay);
|
|
34
|
+
}, [cancel]);
|
|
35
|
+
useEffect(() => cancel, [cancel]);
|
|
36
|
+
const onReady = useCallback(() => changeState(RenderingState.ready, onReadyDelay), [changeState, onReadyDelay]);
|
|
37
|
+
const onFallback = useCallback(() => changeState(RenderingState.fallback, onFallbackDelay), [changeState, onFallbackDelay]);
|
|
38
|
+
const onPending = useCallback(() => changeState(RenderingState.pending, onPendingDelay), [changeState, onPendingDelay]);
|
|
31
39
|
return {
|
|
32
40
|
...useDeferUntilReady(target, state, opts),
|
|
33
41
|
onPending,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilReady_useDeferUntilReady = require("./useDeferUntilReady.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilReady_useDeferUntilReady;
|
|
4
|
+
exports.default = require_useDeferUntilReady_useDeferUntilReady.default;
|
|
5
|
+
exports.useDeferUntilReady = require_useDeferUntilReady_useDeferUntilReady.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilReadyOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilReady from "./useDeferUntilReady.cjs";
|
|
3
|
-
export { type UseDeferUntilReadyOptions, useDeferUntilReady as default };
|
|
3
|
+
export { type UseDeferUntilReadyOptions, useDeferUntilReady as default, useDeferUntilReady };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilReadyOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilReady from "./useDeferUntilReady.mjs";
|
|
3
|
-
export { type UseDeferUntilReadyOptions, useDeferUntilReady as default };
|
|
3
|
+
export { type UseDeferUntilReadyOptions, useDeferUntilReady as default, useDeferUntilReady };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { DeferRenderingWithFallbackOptionsBase } from "../types.cjs";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/useDeferUntilReady/types.d.ts
|
|
5
|
-
type UseDeferUntilReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = DeferRenderingWithFallbackOptionsBase<P, E>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilReadyOptions };
|
|
4
|
+
export type UseDeferUntilReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = DeferRenderingWithFallbackOptionsBase<P, E>;
|
|
5
|
+
//#endregion
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { DeferRenderingWithFallbackOptionsBase } from "../types.mjs";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/useDeferUntilReady/types.d.ts
|
|
5
|
-
type UseDeferUntilReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = DeferRenderingWithFallbackOptionsBase<P, E>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilReadyOptions };
|
|
4
|
+
export type UseDeferUntilReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = DeferRenderingWithFallbackOptionsBase<P, E>;
|
|
5
|
+
//#endregion
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const require_constants = require(
|
|
5
|
-
let _fringeworks_react_utils_hooks_useIsMounted = require("@fringeworks/react-utils/hooks/useIsMounted");
|
|
6
|
-
_fringeworks_react_utils_hooks_useIsMounted = require_runtime.__toESM(_fringeworks_react_utils_hooks_useIsMounted, 1);
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_constants = require("../constants.cjs");
|
|
7
5
|
let react = require("react");
|
|
8
6
|
|
|
9
7
|
//#region src/useDeferUntilReady/useDeferUntilReady.tsx
|
|
@@ -16,45 +14,35 @@ let react = require("react");
|
|
|
16
14
|
*/
|
|
17
15
|
function useDeferUntilReady(target, state, options = {}) {
|
|
18
16
|
const { pending, fallback, pendingDefer, fallbackDefer, readyDefer, preserveOnceFallback, preserveOnceReady } = options;
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
if (preserveOnceReady &&
|
|
23
|
-
else if (preserveOnceFallback && latestState === require_constants.RenderingState.fallback) currentState = latestState;
|
|
24
|
-
latestStateRef.current = currentState;
|
|
17
|
+
const [preservedState, setPreservedState] = (0, react.useState)(null);
|
|
18
|
+
const isPreserved = preserveOnceReady && preservedState === require_constants.RenderingState.ready || preserveOnceFallback && preservedState === require_constants.RenderingState.fallback;
|
|
19
|
+
const currentState = isPreserved && preservedState ? preservedState : state;
|
|
20
|
+
if (!isPreserved && (preserveOnceReady && state === require_constants.RenderingState.ready || preserveOnceFallback && state === require_constants.RenderingState.fallback)) setPreservedState(state);
|
|
25
21
|
const defer = {
|
|
26
22
|
pending: pendingDefer,
|
|
27
23
|
fallback: fallbackDefer,
|
|
28
24
|
ready: readyDefer
|
|
29
25
|
}[currentState];
|
|
30
|
-
const deferRef = (0, react.useRef)(defer);
|
|
31
|
-
deferRef.current = defer;
|
|
32
26
|
const [shownState, setShownState] = (0, react.useState)(() => defer == null ? currentState : null);
|
|
33
|
-
|
|
27
|
+
if (defer == null && shownState !== currentState) setShownState(currentState);
|
|
34
28
|
(0, react.useEffect)(() => {
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
if (defer == null) return;
|
|
30
|
+
const timeoutId = setTimeout(() => {
|
|
37
31
|
setShownState(currentState);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return () => {
|
|
44
|
-
clearTimeout(timeoutId);
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}, [currentState]);
|
|
48
|
-
const node = shownState == null ? null : {
|
|
49
|
-
pending,
|
|
50
|
-
fallback,
|
|
51
|
-
ready: target
|
|
52
|
-
}[shownState];
|
|
32
|
+
}, defer);
|
|
33
|
+
return () => {
|
|
34
|
+
clearTimeout(timeoutId);
|
|
35
|
+
};
|
|
36
|
+
}, [currentState, defer]);
|
|
53
37
|
return {
|
|
54
38
|
state: currentState,
|
|
55
|
-
node
|
|
39
|
+
node: shownState == null ? null : {
|
|
40
|
+
pending,
|
|
41
|
+
fallback,
|
|
42
|
+
ready: target
|
|
43
|
+
}[shownState]
|
|
56
44
|
};
|
|
57
45
|
}
|
|
58
46
|
|
|
59
47
|
//#endregion
|
|
60
|
-
|
|
48
|
+
exports.default = useDeferUntilReady;
|
|
@@ -2,7 +2,6 @@ import { RenderingState } from "../constants.cjs";
|
|
|
2
2
|
import { DeferRenderingResult } from "../types.cjs";
|
|
3
3
|
import { UseDeferUntilReadyOptions } from "./types.cjs";
|
|
4
4
|
import { ReactNode } from "react";
|
|
5
|
-
|
|
6
5
|
//#region src/useDeferUntilReady/useDeferUntilReady.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* ステートが'ready'になるまで描画を遅延させるhook
|
|
@@ -2,7 +2,6 @@ import { RenderingState } from "../constants.mjs";
|
|
|
2
2
|
import { DeferRenderingResult } from "../types.mjs";
|
|
3
3
|
import { UseDeferUntilReadyOptions } from "./types.mjs";
|
|
4
4
|
import { ReactNode } from "react";
|
|
5
|
-
|
|
6
5
|
//#region src/useDeferUntilReady/useDeferUntilReady.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* ステートが'ready'になるまで描画を遅延させるhook
|
|
@@ -11,6 +10,5 @@ import { ReactNode } from "react";
|
|
|
11
10
|
* @param options オプション
|
|
12
11
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノード
|
|
13
12
|
*/
|
|
14
|
-
|
|
15
|
-
//#endregion
|
|
16
|
-
export { useDeferUntilReady as default };
|
|
13
|
+
export default function useDeferUntilReady<T extends ReactNode, P extends ReactNode = ReactNode, E extends ReactNode = ReactNode>(target: T, state: RenderingState, options?: UseDeferUntilReadyOptions<P, E>): DeferRenderingResult<T | P | E>;
|
|
14
|
+
//#endregion
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { RenderingState } from "../constants.mjs";
|
|
4
|
-
import
|
|
5
|
-
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
6
5
|
|
|
7
6
|
//#region src/useDeferUntilReady/useDeferUntilReady.tsx
|
|
8
7
|
/**
|
|
@@ -14,43 +13,33 @@ import { useEffect, useRef, useState } from "react";
|
|
|
14
13
|
*/
|
|
15
14
|
function useDeferUntilReady(target, state, options = {}) {
|
|
16
15
|
const { pending, fallback, pendingDefer, fallbackDefer, readyDefer, preserveOnceFallback, preserveOnceReady } = options;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
if (preserveOnceReady &&
|
|
21
|
-
else if (preserveOnceFallback && latestState === RenderingState.fallback) currentState = latestState;
|
|
22
|
-
latestStateRef.current = currentState;
|
|
16
|
+
const [preservedState, setPreservedState] = useState(null);
|
|
17
|
+
const isPreserved = preserveOnceReady && preservedState === RenderingState.ready || preserveOnceFallback && preservedState === RenderingState.fallback;
|
|
18
|
+
const currentState = isPreserved && preservedState ? preservedState : state;
|
|
19
|
+
if (!isPreserved && (preserveOnceReady && state === RenderingState.ready || preserveOnceFallback && state === RenderingState.fallback)) setPreservedState(state);
|
|
23
20
|
const defer = {
|
|
24
21
|
pending: pendingDefer,
|
|
25
22
|
fallback: fallbackDefer,
|
|
26
23
|
ready: readyDefer
|
|
27
24
|
}[currentState];
|
|
28
|
-
const deferRef = useRef(defer);
|
|
29
|
-
deferRef.current = defer;
|
|
30
25
|
const [shownState, setShownState] = useState(() => defer == null ? currentState : null);
|
|
31
|
-
|
|
26
|
+
if (defer == null && shownState !== currentState) setShownState(currentState);
|
|
32
27
|
useEffect(() => {
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
if (defer == null) return;
|
|
29
|
+
const timeoutId = setTimeout(() => {
|
|
35
30
|
setShownState(currentState);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return () => {
|
|
42
|
-
clearTimeout(timeoutId);
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}, [currentState]);
|
|
46
|
-
const node = shownState == null ? null : {
|
|
47
|
-
pending,
|
|
48
|
-
fallback,
|
|
49
|
-
ready: target
|
|
50
|
-
}[shownState];
|
|
31
|
+
}, defer);
|
|
32
|
+
return () => {
|
|
33
|
+
clearTimeout(timeoutId);
|
|
34
|
+
};
|
|
35
|
+
}, [currentState, defer]);
|
|
51
36
|
return {
|
|
52
37
|
state: currentState,
|
|
53
|
-
node
|
|
38
|
+
node: shownState == null ? null : {
|
|
39
|
+
pending,
|
|
40
|
+
fallback,
|
|
41
|
+
ready: target
|
|
42
|
+
}[shownState]
|
|
54
43
|
};
|
|
55
44
|
}
|
|
56
45
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilRender_useDeferUntilRender = require("./useDeferUntilRender.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilRender_useDeferUntilRender;
|
|
4
|
+
exports.default = require_useDeferUntilRender_useDeferUntilRender.default;
|
|
5
|
+
exports.useDeferUntilRender = require_useDeferUntilRender_useDeferUntilRender.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilRenderOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilRender from "./useDeferUntilRender.cjs";
|
|
3
|
-
export { type UseDeferUntilRenderOptions, useDeferUntilRender as default };
|
|
3
|
+
export { type UseDeferUntilRenderOptions, useDeferUntilRender as default, useDeferUntilRender };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilRenderOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilRender from "./useDeferUntilRender.mjs";
|
|
3
|
-
export { type UseDeferUntilRenderOptions, useDeferUntilRender as default };
|
|
3
|
+
export { type UseDeferUntilRenderOptions, useDeferUntilRender as default, useDeferUntilRender };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.cjs";
|
|
2
|
+
import "../useDeferUntilTrue/index.cjs";
|
|
2
3
|
import { ReactNode, RefObject } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilRender/types.d.ts
|
|
5
|
-
type UseDeferUntilRenderOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
5
|
+
export type UseDeferUntilRenderOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
6
6
|
/**
|
|
7
7
|
* 監視するコンテナーの参照\
|
|
8
8
|
* デフォルトはdocument(文書全体)
|
|
9
9
|
*/
|
|
10
10
|
rootRef?: RefObject<Element | Document | null | undefined>;
|
|
11
11
|
/**
|
|
12
|
-
* DOM
|
|
12
|
+
* DOMの変化を反映するまでの時間(ミリ秒)\
|
|
13
|
+
* この間に続けて変化した場合は、最後の変化から数え直す。0の場合は次のタスクで反映する\
|
|
13
14
|
* デフォルトは100ms
|
|
14
15
|
* @default 100
|
|
15
16
|
*/
|
|
@@ -21,5 +22,4 @@ type UseDeferUntilRenderOptions<P extends ReactNode = ReactNode> = UseDeferUntil
|
|
|
21
22
|
*/
|
|
22
23
|
initialCondition?: boolean;
|
|
23
24
|
};
|
|
24
|
-
//#endregion
|
|
25
|
-
export { UseDeferUntilRenderOptions };
|
|
25
|
+
//#endregion
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.mjs";
|
|
2
|
+
import "../useDeferUntilTrue/index.mjs";
|
|
2
3
|
import { ReactNode, RefObject } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilRender/types.d.ts
|
|
5
|
-
type UseDeferUntilRenderOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
5
|
+
export type UseDeferUntilRenderOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
6
6
|
/**
|
|
7
7
|
* 監視するコンテナーの参照\
|
|
8
8
|
* デフォルトはdocument(文書全体)
|
|
9
9
|
*/
|
|
10
10
|
rootRef?: RefObject<Element | Document | null | undefined>;
|
|
11
11
|
/**
|
|
12
|
-
* DOM
|
|
12
|
+
* DOMの変化を反映するまでの時間(ミリ秒)\
|
|
13
|
+
* この間に続けて変化した場合は、最後の変化から数え直す。0の場合は次のタスクで反映する\
|
|
13
14
|
* デフォルトは100ms
|
|
14
15
|
* @default 100
|
|
15
16
|
*/
|
|
@@ -21,5 +22,4 @@ type UseDeferUntilRenderOptions<P extends ReactNode = ReactNode> = UseDeferUntil
|
|
|
21
22
|
*/
|
|
22
23
|
initialCondition?: boolean;
|
|
23
24
|
};
|
|
24
|
-
//#endregion
|
|
25
|
-
export { UseDeferUntilRenderOptions };
|
|
25
|
+
//#endregion
|