@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,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingWithHandlersResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilCallThresholdOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilCallThreshold/useDeferUntilCallThreshold.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 戻り値として返す`onReady`等のハンドラーが指定回数呼ばれるまで描画を遅延させるhook
|
|
@@ -9,6 +8,5 @@ import { ReactNode } from "react";
|
|
|
9
8
|
* @param options オプション
|
|
10
9
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノードと状態変更用のハンドラー
|
|
11
10
|
*/
|
|
12
|
-
|
|
13
|
-
//#endregion
|
|
14
|
-
export { useDeferUntilCallThreshold as default };
|
|
11
|
+
export default function useDeferUntilCallThreshold<T extends ReactNode, P extends ReactNode = ReactNode, E extends ReactNode = ReactNode>(target: T, options?: UseDeferUntilCallThresholdOptions<P, E>): DeferRenderingWithHandlersResult<T | P | E>;
|
|
12
|
+
//#endregion
|
|
@@ -14,35 +14,47 @@ import { useCallback, useRef } from "react";
|
|
|
14
14
|
function useDeferUntilCallThreshold(target, options = {}) {
|
|
15
15
|
const { onPendingCount = 1, onFallbackCount = 1, onReadyCount = 1, ...opts } = options;
|
|
16
16
|
const { onPending: handlePending, onFallback: handleFallback, onReady: handleReady, ...rest } = useDeferUntilOnReady(target, opts);
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
17
|
+
const pendingCountRef = useRef(0);
|
|
18
|
+
const fallbackCountRef = useRef(0);
|
|
19
|
+
const readyCountRef = useRef(0);
|
|
20
20
|
const reset = useCallback(() => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
pendingCountRef.current = 0;
|
|
22
|
+
fallbackCountRef.current = 0;
|
|
23
|
+
readyCountRef.current = 0;
|
|
24
24
|
}, []);
|
|
25
25
|
const onPending = useCallback(() => {
|
|
26
|
-
|
|
27
|
-
if (onPendingCount <=
|
|
26
|
+
pendingCountRef.current += 1;
|
|
27
|
+
if (onPendingCount <= pendingCountRef.current) {
|
|
28
28
|
reset();
|
|
29
29
|
handlePending();
|
|
30
30
|
}
|
|
31
|
-
}, [
|
|
31
|
+
}, [
|
|
32
|
+
handlePending,
|
|
33
|
+
onPendingCount,
|
|
34
|
+
reset
|
|
35
|
+
]);
|
|
32
36
|
const onFallback = useCallback(() => {
|
|
33
|
-
|
|
34
|
-
if (onFallbackCount <=
|
|
37
|
+
fallbackCountRef.current += 1;
|
|
38
|
+
if (onFallbackCount <= fallbackCountRef.current) {
|
|
35
39
|
reset();
|
|
36
40
|
handleFallback();
|
|
37
41
|
}
|
|
38
|
-
}, [
|
|
42
|
+
}, [
|
|
43
|
+
handleFallback,
|
|
44
|
+
onFallbackCount,
|
|
45
|
+
reset
|
|
46
|
+
]);
|
|
39
47
|
const onReady = useCallback(() => {
|
|
40
|
-
|
|
41
|
-
if (onReadyCount <=
|
|
48
|
+
readyCountRef.current += 1;
|
|
49
|
+
if (onReadyCount <= readyCountRef.current) {
|
|
42
50
|
reset();
|
|
43
51
|
handleReady();
|
|
44
52
|
}
|
|
45
|
-
}, [
|
|
53
|
+
}, [
|
|
54
|
+
handleReady,
|
|
55
|
+
onReadyCount,
|
|
56
|
+
reset
|
|
57
|
+
]);
|
|
46
58
|
return {
|
|
47
59
|
...rest,
|
|
48
60
|
onPending,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilChange_useDeferUntilChange = require("./useDeferUntilChange.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilChange_useDeferUntilChange;
|
|
4
|
+
exports.default = require_useDeferUntilChange_useDeferUntilChange.default;
|
|
5
|
+
exports.useDeferUntilChange = require_useDeferUntilChange_useDeferUntilChange.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilChangeOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilChange from "./useDeferUntilChange.cjs";
|
|
3
|
-
export { type UseDeferUntilChangeOptions, useDeferUntilChange as default };
|
|
3
|
+
export { type UseDeferUntilChangeOptions, useDeferUntilChange as default, useDeferUntilChange };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilChangeOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilChange from "./useDeferUntilChange.mjs";
|
|
3
|
-
export { type UseDeferUntilChangeOptions, useDeferUntilChange as default };
|
|
3
|
+
export { type UseDeferUntilChangeOptions, useDeferUntilChange as default, useDeferUntilChange };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.cjs";
|
|
2
|
+
import "../useDeferUntilTrue/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilChange/types.d.ts
|
|
5
|
-
type UseDeferUntilChangeOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilChangeOptions };
|
|
5
|
+
export type UseDeferUntilChangeOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
+
//#endregion
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.mjs";
|
|
2
|
+
import "../useDeferUntilTrue/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilChange/types.d.ts
|
|
5
|
-
type UseDeferUntilChangeOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilChangeOptions };
|
|
5
|
+
export type UseDeferUntilChangeOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
+
//#endregion
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const require_useDeferUntilTrue_useDeferUntilTrue = require(
|
|
5
|
-
require(
|
|
6
|
-
let _fringeworks_react_utils_hooks_useIsMounted = require("@fringeworks/react-utils/hooks/useIsMounted");
|
|
7
|
-
_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_useDeferUntilTrue_useDeferUntilTrue = require("../useDeferUntilTrue/useDeferUntilTrue.cjs");
|
|
5
|
+
require("../useDeferUntilTrue/index.cjs");
|
|
8
6
|
let react = require("react");
|
|
9
7
|
|
|
10
8
|
//#region src/useDeferUntilChange/useDeferUntilChange.tsx
|
|
@@ -18,13 +16,12 @@ const NO_VALUE = Symbol("NO_VALUE");
|
|
|
18
16
|
*/
|
|
19
17
|
function useDeferUntilChange(target, value, options = {}) {
|
|
20
18
|
const [prevValue, setPrevValue] = (0, react.useState)(NO_VALUE);
|
|
21
|
-
const
|
|
22
|
-
const result = require_useDeferUntilTrue_useDeferUntilTrue(target, prevValue === value, options);
|
|
19
|
+
const result = require_useDeferUntilTrue_useDeferUntilTrue.default(target, Object.is(prevValue, value), options);
|
|
23
20
|
(0, react.useEffect)(() => {
|
|
24
|
-
|
|
21
|
+
setPrevValue(value);
|
|
25
22
|
}, [value]);
|
|
26
23
|
return result;
|
|
27
24
|
}
|
|
28
25
|
|
|
29
26
|
//#endregion
|
|
30
|
-
|
|
27
|
+
exports.default = useDeferUntilChange;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilChangeOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilChange/useDeferUntilChange.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 { useDeferUntilChange as default };
|
|
12
|
+
export default function useDeferUntilChange<T extends ReactNode, P extends ReactNode = ReactNode>(target: T, value: unknown, options?: UseDeferUntilChangeOptions<P>): DeferRenderingResult<T | P>;
|
|
13
|
+
//#endregion
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import useDeferUntilTrue from "../useDeferUntilTrue/useDeferUntilTrue.mjs";
|
|
4
4
|
import "../useDeferUntilTrue/index.mjs";
|
|
5
|
-
import useIsMounted from "@fringeworks/react-utils/hooks/useIsMounted";
|
|
6
5
|
import { useEffect, useState } from "react";
|
|
7
6
|
|
|
8
7
|
//#region src/useDeferUntilChange/useDeferUntilChange.tsx
|
|
@@ -16,10 +15,9 @@ const NO_VALUE = Symbol("NO_VALUE");
|
|
|
16
15
|
*/
|
|
17
16
|
function useDeferUntilChange(target, value, options = {}) {
|
|
18
17
|
const [prevValue, setPrevValue] = useState(NO_VALUE);
|
|
19
|
-
const
|
|
20
|
-
const result = useDeferUntilTrue(target, prevValue === value, options);
|
|
18
|
+
const result = useDeferUntilTrue(target, Object.is(prevValue, value), options);
|
|
21
19
|
useEffect(() => {
|
|
22
|
-
|
|
20
|
+
setPrevValue(value);
|
|
23
21
|
}, [value]);
|
|
24
22
|
return result;
|
|
25
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilDate_useDeferUntilDate = require("./useDeferUntilDate.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilDate_useDeferUntilDate;
|
|
4
|
+
exports.default = require_useDeferUntilDate_useDeferUntilDate.default;
|
|
5
|
+
exports.useDeferUntilDate = require_useDeferUntilDate_useDeferUntilDate.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilDateOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilDate from "./useDeferUntilDate.cjs";
|
|
3
|
-
export { type UseDeferUntilDateOptions, useDeferUntilDate as default };
|
|
3
|
+
export { type UseDeferUntilDateOptions, useDeferUntilDate as default, useDeferUntilDate };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilDateOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilDate from "./useDeferUntilDate.mjs";
|
|
3
|
-
export { type UseDeferUntilDateOptions, useDeferUntilDate as default };
|
|
3
|
+
export { type UseDeferUntilDateOptions, useDeferUntilDate as default, useDeferUntilDate };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilTimeoutOptions } from "../useDeferUntilTimeout/types.cjs";
|
|
2
|
+
import "../useDeferUntilTimeout/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilDate/types.d.ts
|
|
5
|
-
type UseDeferUntilDateOptions<P extends ReactNode = ReactNode> = UseDeferUntilTimeoutOptions<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilDateOptions };
|
|
5
|
+
export type UseDeferUntilDateOptions<P extends ReactNode = ReactNode> = UseDeferUntilTimeoutOptions<P>;
|
|
6
|
+
//#endregion
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilTimeoutOptions } from "../useDeferUntilTimeout/types.mjs";
|
|
2
|
+
import "../useDeferUntilTimeout/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilDate/types.d.ts
|
|
5
|
-
type UseDeferUntilDateOptions<P extends ReactNode = ReactNode> = UseDeferUntilTimeoutOptions<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilDateOptions };
|
|
5
|
+
export type UseDeferUntilDateOptions<P extends ReactNode = ReactNode> = UseDeferUntilTimeoutOptions<P>;
|
|
6
|
+
//#endregion
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
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");
|
|
5
7
|
let react = require("react");
|
|
8
|
+
let _fringeworks_utils_timer_setLongTimeout = require("@fringeworks/utils/timer/setLongTimeout");
|
|
9
|
+
_fringeworks_utils_timer_setLongTimeout = require_runtime.__toESM(_fringeworks_utils_timer_setLongTimeout, 1);
|
|
6
10
|
|
|
7
11
|
//#region src/useDeferUntilDate/useDeferUntilDate.tsx
|
|
8
12
|
/**
|
|
@@ -14,8 +18,13 @@ let react = require("react");
|
|
|
14
18
|
*/
|
|
15
19
|
function useDeferUntilDate(target, date, options = {}) {
|
|
16
20
|
const time = date ? date.getTime() : null;
|
|
17
|
-
|
|
21
|
+
const [reachedTime, setReachedTime] = (0, react.useState)(() => time != null && time <= Date.now() ? time : null);
|
|
22
|
+
(0, react.useEffect)(() => {
|
|
23
|
+
if (time == null) return;
|
|
24
|
+
return (0, _fringeworks_utils_timer_setLongTimeout.default)(() => setReachedTime(time), Math.max(0, time - Date.now()));
|
|
25
|
+
}, [time]);
|
|
26
|
+
return require_useDeferUntilTrue_useDeferUntilTrue.default(target, time == null || reachedTime === time, options);
|
|
18
27
|
}
|
|
19
28
|
|
|
20
29
|
//#endregion
|
|
21
|
-
|
|
30
|
+
exports.default = useDeferUntilDate;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilDateOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilDate/useDeferUntilDate.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 { useDeferUntilDate as default };
|
|
12
|
+
export default function useDeferUntilDate<T extends ReactNode, P extends ReactNode = ReactNode>(target: T, date: Date | null | undefined, options?: UseDeferUntilDateOptions<P>): DeferRenderingResult<T | P>;
|
|
13
|
+
//#endregion
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import "../
|
|
5
|
-
import {
|
|
3
|
+
import useDeferUntilTrue from "../useDeferUntilTrue/useDeferUntilTrue.mjs";
|
|
4
|
+
import "../useDeferUntilTrue/index.mjs";
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
import setLongTimeout from "@fringeworks/utils/timer/setLongTimeout";
|
|
6
7
|
|
|
7
8
|
//#region src/useDeferUntilDate/useDeferUntilDate.tsx
|
|
8
9
|
/**
|
|
@@ -14,7 +15,12 @@ import { useMemo } from "react";
|
|
|
14
15
|
*/
|
|
15
16
|
function useDeferUntilDate(target, date, options = {}) {
|
|
16
17
|
const time = date ? date.getTime() : null;
|
|
17
|
-
|
|
18
|
+
const [reachedTime, setReachedTime] = useState(() => time != null && time <= Date.now() ? time : null);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (time == null) return;
|
|
21
|
+
return setLongTimeout(() => setReachedTime(time), Math.max(0, time - Date.now()));
|
|
22
|
+
}, [time]);
|
|
23
|
+
return useDeferUntilTrue(target, time == null || reachedTime === time, options);
|
|
18
24
|
}
|
|
19
25
|
|
|
20
26
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilIntersected_useDeferUntilIntersected = require("./useDeferUntilIntersected.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilIntersected_useDeferUntilIntersected;
|
|
4
|
+
exports.default = require_useDeferUntilIntersected_useDeferUntilIntersected.default;
|
|
5
|
+
exports.useDeferUntilIntersected = require_useDeferUntilIntersected_useDeferUntilIntersected.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilIntersectedOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilIntersected from "./useDeferUntilIntersected.cjs";
|
|
3
|
-
export { type UseDeferUntilIntersectedOptions, useDeferUntilIntersected as default };
|
|
3
|
+
export { type UseDeferUntilIntersectedOptions, useDeferUntilIntersected as default, useDeferUntilIntersected };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilIntersectedOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilIntersected from "./useDeferUntilIntersected.mjs";
|
|
3
|
-
export { type UseDeferUntilIntersectedOptions, useDeferUntilIntersected as default };
|
|
3
|
+
export { type UseDeferUntilIntersectedOptions, useDeferUntilIntersected as default, useDeferUntilIntersected };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.cjs";
|
|
2
|
-
import
|
|
3
|
-
|
|
2
|
+
import "../useDeferUntilTrue/index.cjs";
|
|
3
|
+
import { ReactNode, RefObject } from "react";
|
|
4
4
|
//#region src/useDeferUntilIntersected/types.d.ts
|
|
5
|
-
type UseDeferUntilIntersectedOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> &
|
|
5
|
+
export type UseDeferUntilIntersectedOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
6
6
|
/**
|
|
7
7
|
* 監視するコンテナーの参照
|
|
8
8
|
* デフォルトはnull(ビューポート)
|
|
9
9
|
*/
|
|
10
10
|
rootRef?: RefObject<Element | null | undefined>;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* 交差を判定する範囲を広げる余白\
|
|
13
|
+
* 数値はピクセル(上下左右に同じ値)、文字列はIntersectionObserverのrootMarginの書式(例: `'10px 0px'`、`'10%'`。単位は`px`と`%`のみ)\
|
|
14
|
+
* 未指定の場合はビューポート(rootRefを指定した場合はコンテナー)の端で判定される
|
|
15
15
|
*/
|
|
16
|
-
rootMargin?:
|
|
16
|
+
rootMargin?: number | string;
|
|
17
17
|
/**
|
|
18
18
|
* ビューポートに基準となる要素がどの程度の割合入ったら描画するか(0~1)\
|
|
19
19
|
* デフォルトは0.1(10%)
|
|
@@ -27,5 +27,4 @@ type UseDeferUntilIntersectedOptions<P extends ReactNode = ReactNode> = UseDefer
|
|
|
27
27
|
*/
|
|
28
28
|
initialCondition?: boolean;
|
|
29
29
|
};
|
|
30
|
-
//#endregion
|
|
31
|
-
export { UseDeferUntilIntersectedOptions };
|
|
30
|
+
//#endregion
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "../useDeferUntilTrue/types.mjs";
|
|
2
|
-
import
|
|
3
|
-
|
|
2
|
+
import "../useDeferUntilTrue/index.mjs";
|
|
3
|
+
import { ReactNode, RefObject } from "react";
|
|
4
4
|
//#region src/useDeferUntilIntersected/types.d.ts
|
|
5
|
-
type UseDeferUntilIntersectedOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> &
|
|
5
|
+
export type UseDeferUntilIntersectedOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P> & {
|
|
6
6
|
/**
|
|
7
7
|
* 監視するコンテナーの参照
|
|
8
8
|
* デフォルトはnull(ビューポート)
|
|
9
9
|
*/
|
|
10
10
|
rootRef?: RefObject<Element | null | undefined>;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* 交差を判定する範囲を広げる余白\
|
|
13
|
+
* 数値はピクセル(上下左右に同じ値)、文字列はIntersectionObserverのrootMarginの書式(例: `'10px 0px'`、`'10%'`。単位は`px`と`%`のみ)\
|
|
14
|
+
* 未指定の場合はビューポート(rootRefを指定した場合はコンテナー)の端で判定される
|
|
15
15
|
*/
|
|
16
|
-
rootMargin?:
|
|
16
|
+
rootMargin?: number | string;
|
|
17
17
|
/**
|
|
18
18
|
* ビューポートに基準となる要素がどの程度の割合入ったら描画するか(0~1)\
|
|
19
19
|
* デフォルトは0.1(10%)
|
|
@@ -27,5 +27,4 @@ type UseDeferUntilIntersectedOptions<P extends ReactNode = ReactNode> = UseDefer
|
|
|
27
27
|
*/
|
|
28
28
|
initialCondition?: boolean;
|
|
29
29
|
};
|
|
30
|
-
//#endregion
|
|
31
|
-
export { UseDeferUntilIntersectedOptions };
|
|
30
|
+
//#endregion
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const require_useDeferUntilTrue_useDeferUntilTrue = require(
|
|
5
|
-
require(
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
const require_useDeferUntilTrue_useDeferUntilTrue = require("../useDeferUntilTrue/useDeferUntilTrue.cjs");
|
|
5
|
+
require("../useDeferUntilTrue/index.cjs");
|
|
6
6
|
let react = require("react");
|
|
7
|
-
let _fringeworks_utils_string_unit = require("@fringeworks/utils/string/unit");
|
|
8
|
-
_fringeworks_utils_string_unit = require_runtime.__toESM(_fringeworks_utils_string_unit, 1);
|
|
9
7
|
|
|
10
8
|
//#region src/useDeferUntilIntersected/useDeferUntilIntersected.tsx
|
|
11
9
|
/**
|
|
@@ -20,9 +18,8 @@ function useDeferUntilIntersected(target, elementRef, options = {}) {
|
|
|
20
18
|
const { rootRef = defaultRootRef, rootMargin, threshold = .1, initialCondition = false, ...opts } = options;
|
|
21
19
|
const snapshotRef = (0, react.useRef)(initialCondition);
|
|
22
20
|
const observedElementRef = (0, react.useRef)(null);
|
|
23
|
-
|
|
21
|
+
const subscribe = (0, react.useCallback)((onStoreChange) => {
|
|
24
22
|
const element = elementRef?.current;
|
|
25
|
-
const container = rootRef.current;
|
|
26
23
|
if (observedElementRef.current !== element) {
|
|
27
24
|
observedElementRef.current = element;
|
|
28
25
|
if (snapshotRef.current !== initialCondition) {
|
|
@@ -31,15 +28,16 @@ function useDeferUntilIntersected(target, elementRef, options = {}) {
|
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
30
|
if (!element) return () => {};
|
|
31
|
+
const container = rootRef.current;
|
|
34
32
|
const observer = new IntersectionObserver((entries) => {
|
|
35
33
|
const entry = entries[0];
|
|
36
|
-
if (snapshotRef.current !== entry.isIntersecting) {
|
|
34
|
+
if (entry && snapshotRef.current !== entry.isIntersecting) {
|
|
37
35
|
snapshotRef.current = entry.isIntersecting;
|
|
38
36
|
onStoreChange();
|
|
39
37
|
}
|
|
40
38
|
}, {
|
|
41
39
|
root: container,
|
|
42
|
-
rootMargin:
|
|
40
|
+
rootMargin: typeof rootMargin === "number" ? `${rootMargin}px` : rootMargin,
|
|
43
41
|
threshold
|
|
44
42
|
});
|
|
45
43
|
observer.observe(element);
|
|
@@ -48,13 +46,16 @@ function useDeferUntilIntersected(target, elementRef, options = {}) {
|
|
|
48
46
|
};
|
|
49
47
|
}, [
|
|
50
48
|
elementRef,
|
|
51
|
-
|
|
52
|
-
rootRef.current,
|
|
49
|
+
rootRef,
|
|
53
50
|
threshold,
|
|
54
51
|
rootMargin,
|
|
55
52
|
initialCondition
|
|
56
|
-
])
|
|
53
|
+
]);
|
|
54
|
+
const getSnapshot = (0, react.useCallback)(() => !elementRef || snapshotRef.current, [elementRef]);
|
|
55
|
+
const getServerSnapshot = (0, react.useCallback)(() => !elementRef || initialCondition, [elementRef, initialCondition]);
|
|
56
|
+
const condition = (0, react.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
|
|
57
|
+
return require_useDeferUntilTrue_useDeferUntilTrue.default(target, condition, opts);
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
//#endregion
|
|
60
|
-
|
|
61
|
+
exports.default = useDeferUntilIntersected;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.cjs";
|
|
2
2
|
import { UseDeferUntilIntersectedOptions } from "./types.cjs";
|
|
3
3
|
import { ReactNode, RefObject } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilIntersected/useDeferUntilIntersected.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 基準となる要素がビューポートに入るまで描画を遅延させるhook
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilIntersectedOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode, RefObject } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilIntersected/useDeferUntilIntersected.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 基準となる要素がビューポートに入るまで描画を遅延させるhook
|
|
@@ -10,6 +9,5 @@ import { ReactNode, RefObject } from "react";
|
|
|
10
9
|
* @param options オプション
|
|
11
10
|
* @returns state('pending', 'ready')と状態に応じたノード
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { useDeferUntilIntersected as default };
|
|
12
|
+
export default function useDeferUntilIntersected<T extends ReactNode, P extends ReactNode = ReactNode>(target: T, elementRef: RefObject<HTMLElement | null | undefined> | null | undefined, options?: UseDeferUntilIntersectedOptions<P>): DeferRenderingResult<T | P>;
|
|
13
|
+
//#endregion
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import useDeferUntilTrue from "../useDeferUntilTrue/useDeferUntilTrue.mjs";
|
|
4
4
|
import "../useDeferUntilTrue/index.mjs";
|
|
5
5
|
import { useCallback, useRef, useSyncExternalStore } from "react";
|
|
6
|
-
import unit from "@fringeworks/utils/string/unit";
|
|
7
6
|
|
|
8
7
|
//#region src/useDeferUntilIntersected/useDeferUntilIntersected.tsx
|
|
9
8
|
/**
|
|
@@ -18,9 +17,8 @@ function useDeferUntilIntersected(target, elementRef, options = {}) {
|
|
|
18
17
|
const { rootRef = defaultRootRef, rootMargin, threshold = .1, initialCondition = false, ...opts } = options;
|
|
19
18
|
const snapshotRef = useRef(initialCondition);
|
|
20
19
|
const observedElementRef = useRef(null);
|
|
21
|
-
|
|
20
|
+
const subscribe = useCallback((onStoreChange) => {
|
|
22
21
|
const element = elementRef?.current;
|
|
23
|
-
const container = rootRef.current;
|
|
24
22
|
if (observedElementRef.current !== element) {
|
|
25
23
|
observedElementRef.current = element;
|
|
26
24
|
if (snapshotRef.current !== initialCondition) {
|
|
@@ -29,15 +27,16 @@ function useDeferUntilIntersected(target, elementRef, options = {}) {
|
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
29
|
if (!element) return () => {};
|
|
30
|
+
const container = rootRef.current;
|
|
32
31
|
const observer = new IntersectionObserver((entries) => {
|
|
33
32
|
const entry = entries[0];
|
|
34
|
-
if (snapshotRef.current !== entry.isIntersecting) {
|
|
33
|
+
if (entry && snapshotRef.current !== entry.isIntersecting) {
|
|
35
34
|
snapshotRef.current = entry.isIntersecting;
|
|
36
35
|
onStoreChange();
|
|
37
36
|
}
|
|
38
37
|
}, {
|
|
39
38
|
root: container,
|
|
40
|
-
rootMargin:
|
|
39
|
+
rootMargin: typeof rootMargin === "number" ? `${rootMargin}px` : rootMargin,
|
|
41
40
|
threshold
|
|
42
41
|
});
|
|
43
42
|
observer.observe(element);
|
|
@@ -46,12 +45,15 @@ function useDeferUntilIntersected(target, elementRef, options = {}) {
|
|
|
46
45
|
};
|
|
47
46
|
}, [
|
|
48
47
|
elementRef,
|
|
49
|
-
|
|
50
|
-
rootRef.current,
|
|
48
|
+
rootRef,
|
|
51
49
|
threshold,
|
|
52
50
|
rootMargin,
|
|
53
51
|
initialCondition
|
|
54
|
-
])
|
|
52
|
+
]);
|
|
53
|
+
const getSnapshot = useCallback(() => !elementRef || snapshotRef.current, [elementRef]);
|
|
54
|
+
const getServerSnapshot = useCallback(() => !elementRef || initialCondition, [elementRef, initialCondition]);
|
|
55
|
+
const condition = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
56
|
+
return useDeferUntilTrue(target, condition, opts);
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
//#endregion
|