@fringeworks/react-defer-rendering 0.8.1 → 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 +112 -31
- package/types.cjs +1 -0
- package/types.d.cts +5 -7
- package/types.d.mts +5 -7
- 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 +13 -12
- package/useDeferUntilIntersected/useDeferUntilIntersected.d.cts +0 -1
- package/useDeferUntilIntersected/useDeferUntilIntersected.d.mts +2 -4
- package/useDeferUntilIntersected/useDeferUntilIntersected.mjs +9 -7
- 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
|
@@ -16,32 +16,50 @@ import debounce from "@fringeworks/utils/timer/debounce";
|
|
|
16
16
|
function useDeferUntilRender(target, query, options = {}) {
|
|
17
17
|
const defaultRootRef = useRef(null);
|
|
18
18
|
const { rootRef = defaultRootRef, detectionDelay = 100, preserveOnceReady, initialCondition = false, ...opts } = options;
|
|
19
|
-
|
|
19
|
+
const snapshotRef = useRef(null);
|
|
20
|
+
const subscribe = useCallback((onStoreChange) => {
|
|
20
21
|
if (!query) return () => {};
|
|
21
22
|
const root = rootRef.current ?? document;
|
|
22
|
-
|
|
23
|
+
const update = () => {
|
|
24
|
+
const isRendered = root.querySelector(query) != null;
|
|
25
|
+
snapshotRef.current = {
|
|
26
|
+
query,
|
|
27
|
+
root,
|
|
28
|
+
isRendered
|
|
29
|
+
};
|
|
30
|
+
return isRendered;
|
|
31
|
+
};
|
|
32
|
+
if (update() && preserveOnceReady) return () => {};
|
|
23
33
|
const handleMutation = () => {
|
|
34
|
+
const isRendered = update();
|
|
24
35
|
onStoreChange();
|
|
25
|
-
if (preserveOnceReady &&
|
|
36
|
+
if (preserveOnceReady && isRendered) observer.disconnect();
|
|
26
37
|
};
|
|
27
|
-
const debouncedHandleMutation = debounce(handleMutation, detectionDelay);
|
|
38
|
+
const debouncedHandleMutation = debounce(handleMutation, { wait: detectionDelay });
|
|
28
39
|
const observer = new MutationObserver(debouncedHandleMutation);
|
|
29
40
|
observer.observe(root, {
|
|
30
41
|
childList: true,
|
|
31
42
|
subtree: true
|
|
32
43
|
});
|
|
33
44
|
return () => {
|
|
45
|
+
debouncedHandleMutation.cancel();
|
|
34
46
|
observer.disconnect();
|
|
35
47
|
};
|
|
36
48
|
}, [
|
|
37
49
|
query,
|
|
38
|
-
rootRef
|
|
50
|
+
rootRef,
|
|
39
51
|
detectionDelay,
|
|
40
52
|
preserveOnceReady
|
|
41
|
-
])
|
|
53
|
+
]);
|
|
54
|
+
const getSnapshot = useCallback(() => {
|
|
42
55
|
if (!query) return true;
|
|
43
|
-
|
|
44
|
-
|
|
56
|
+
const root = rootRef.current ?? document;
|
|
57
|
+
const snapshot = snapshotRef.current;
|
|
58
|
+
return snapshot?.query === query && snapshot.root === root ? snapshot.isRendered : root.querySelector(query) != null;
|
|
59
|
+
}, [query, rootRef]);
|
|
60
|
+
const getServerSnapshot = useCallback(() => !query || initialCondition, [query, initialCondition]);
|
|
61
|
+
const condition = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
62
|
+
return useDeferUntilTrue(target, condition, {
|
|
45
63
|
preserveOnceReady,
|
|
46
64
|
...opts
|
|
47
65
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilResolved_useDeferUntilResolved = require("./useDeferUntilResolved.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilResolved_useDeferUntilResolved;
|
|
4
|
+
exports.default = require_useDeferUntilResolved_useDeferUntilResolved.default;
|
|
5
|
+
exports.useDeferUntilResolved = require_useDeferUntilResolved_useDeferUntilResolved.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilResolvedOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilResolved from "./useDeferUntilResolved.cjs";
|
|
3
|
-
export { type UseDeferUntilResolvedOptions, useDeferUntilResolved as default };
|
|
3
|
+
export { type UseDeferUntilResolvedOptions, useDeferUntilResolved as default, useDeferUntilResolved };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilResolvedOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilResolved from "./useDeferUntilResolved.mjs";
|
|
3
|
-
export { type UseDeferUntilResolvedOptions, useDeferUntilResolved as default };
|
|
3
|
+
export { type UseDeferUntilResolvedOptions, useDeferUntilResolved as default, useDeferUntilResolved };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilReadyOptions } from "../useDeferUntilReady/types.cjs";
|
|
2
|
+
import "../useDeferUntilReady/index.cjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilResolved/types.d.ts
|
|
5
|
-
type UseDeferUntilResolvedOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilResolvedOptions };
|
|
5
|
+
export type UseDeferUntilResolvedOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E>;
|
|
6
|
+
//#endregion
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseDeferUntilReadyOptions } from "../useDeferUntilReady/types.mjs";
|
|
2
|
+
import "../useDeferUntilReady/index.mjs";
|
|
2
3
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
4
|
//#region src/useDeferUntilResolved/types.d.ts
|
|
5
|
-
type UseDeferUntilResolvedOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilResolvedOptions };
|
|
5
|
+
export type UseDeferUntilResolvedOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<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
|
let react = require("react");
|
|
7
8
|
|
|
8
9
|
//#region src/useDeferUntilResolved/useDeferUntilResolved.tsx
|
|
@@ -14,8 +15,10 @@ let react = require("react");
|
|
|
14
15
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノード
|
|
15
16
|
*/
|
|
16
17
|
function useDeferUntilResolved(target, promise, options = {}) {
|
|
17
|
-
|
|
18
|
+
const createPromise = (0, react.useMemo)(() => promise ? () => promise : null, [promise]);
|
|
19
|
+
const state = require__usePromiseState.default(createPromise);
|
|
20
|
+
return require_useDeferUntilReady_useDeferUntilReady.default(target, state, options);
|
|
18
21
|
}
|
|
19
22
|
|
|
20
23
|
//#endregion
|
|
21
|
-
|
|
24
|
+
exports.default = useDeferUntilResolved;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilResolvedOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilResolved/useDeferUntilResolved.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Promiseの完了まで描画を遅延させる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 { useDeferUntilResolved as default };
|
|
12
|
+
export default function useDeferUntilResolved<T extends ReactNode, P extends ReactNode = ReactNode, E extends ReactNode = ReactNode>(target: T, promise: Promise<unknown> | null | undefined, options?: UseDeferUntilResolvedOptions<P, E>): DeferRenderingResult<T | P | E>;
|
|
13
|
+
//#endregion
|
|
@@ -14,7 +14,9 @@ import { useMemo } from "react";
|
|
|
14
14
|
* @returns state('pending', 'ready', 'fallback')と状態に応じたノード
|
|
15
15
|
*/
|
|
16
16
|
function useDeferUntilResolved(target, promise, options = {}) {
|
|
17
|
-
|
|
17
|
+
const createPromise = useMemo(() => promise ? () => promise : null, [promise]);
|
|
18
|
+
const state = usePromiseState(createPromise);
|
|
19
|
+
return useDeferUntilReady(target, state, options);
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilTimeout_useDeferUntilTimeout = require("./useDeferUntilTimeout.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilTimeout_useDeferUntilTimeout;
|
|
4
|
+
exports.default = require_useDeferUntilTimeout_useDeferUntilTimeout.default;
|
|
5
|
+
exports.useDeferUntilTimeout = require_useDeferUntilTimeout_useDeferUntilTimeout.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilTimeoutOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilTimeout from "./useDeferUntilTimeout.cjs";
|
|
3
|
-
export { type UseDeferUntilTimeoutOptions, useDeferUntilTimeout as default };
|
|
3
|
+
export { type UseDeferUntilTimeoutOptions, useDeferUntilTimeout as default, useDeferUntilTimeout };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilTimeoutOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilTimeout from "./useDeferUntilTimeout.mjs";
|
|
3
|
-
export { type UseDeferUntilTimeoutOptions, useDeferUntilTimeout as default };
|
|
3
|
+
export { type UseDeferUntilTimeoutOptions, useDeferUntilTimeout as default, useDeferUntilTimeout };
|
|
@@ -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/useDeferUntilTimeout/types.d.ts
|
|
5
|
-
type UseDeferUntilTimeoutOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilTimeoutOptions };
|
|
5
|
+
export type UseDeferUntilTimeoutOptions<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/useDeferUntilTimeout/types.d.ts
|
|
5
|
-
type UseDeferUntilTimeoutOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilTimeoutOptions };
|
|
5
|
+
export type UseDeferUntilTimeoutOptions<P extends ReactNode = ReactNode> = UseDeferUntilTrueOptions<P>;
|
|
6
|
+
//#endregion
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
require(
|
|
6
|
-
|
|
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_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
5
|
+
const require_useDeferUntilTrue_useDeferUntilTrue = require("../useDeferUntilTrue/useDeferUntilTrue.cjs");
|
|
6
|
+
require("../useDeferUntilTrue/index.cjs");
|
|
8
7
|
let react = require("react");
|
|
9
|
-
let
|
|
10
|
-
|
|
8
|
+
let _fringeworks_utils_timer_setLongTimeout = require("@fringeworks/utils/timer/setLongTimeout");
|
|
9
|
+
_fringeworks_utils_timer_setLongTimeout = require_runtime.__toESM(_fringeworks_utils_timer_setLongTimeout, 1);
|
|
11
10
|
|
|
12
11
|
//#region src/useDeferUntilTimeout/useDeferUntilTimeout.tsx
|
|
13
12
|
/**
|
|
@@ -18,23 +17,26 @@ _fringeworks_utils_timer_setTimeoutExtended = require_runtime.__toESM(_fringewor
|
|
|
18
17
|
* @returns state('pending', 'ready')と状態に応じたノード
|
|
19
18
|
*/
|
|
20
19
|
function useDeferUntilTimeout(target, defer, options = {}) {
|
|
21
|
-
const [
|
|
22
|
-
|
|
20
|
+
const [wait, setWait] = (0, react.useState)({
|
|
21
|
+
defer,
|
|
22
|
+
isElapsed: false
|
|
23
|
+
});
|
|
24
|
+
if (wait.defer !== defer) setWait({
|
|
25
|
+
defer,
|
|
26
|
+
isElapsed: false
|
|
27
|
+
});
|
|
23
28
|
(0, react.useEffect)(() => {
|
|
24
|
-
if (defer == null || defer <= 0)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (isMounted()) setCondition(true);
|
|
29
|
+
if (defer == null || defer <= 0) return;
|
|
30
|
+
return (0, _fringeworks_utils_timer_setLongTimeout.default)(() => {
|
|
31
|
+
setWait((current) => current.defer === defer ? {
|
|
32
|
+
defer,
|
|
33
|
+
isElapsed: true
|
|
34
|
+
} : current);
|
|
31
35
|
}, defer);
|
|
32
|
-
return () => {
|
|
33
|
-
cancel();
|
|
34
|
-
};
|
|
35
36
|
}, [defer]);
|
|
36
|
-
|
|
37
|
+
const condition = defer == null || defer <= 0 || wait.defer === defer && wait.isElapsed;
|
|
38
|
+
return require_useDeferUntilTrue_useDeferUntilTrue.default(target, condition, options);
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
//#endregion
|
|
40
|
-
|
|
42
|
+
exports.default = useDeferUntilTimeout;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilTimeoutOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilTimeout/useDeferUntilTimeout.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 { useDeferUntilTimeout as default };
|
|
12
|
+
export default function useDeferUntilTimeout<T extends ReactNode, P extends ReactNode = ReactNode>(target: T, defer: number | null | undefined, options?: UseDeferUntilTimeoutOptions<P>): DeferRenderingResult<T | P>;
|
|
13
|
+
//#endregion
|
|
@@ -2,9 +2,8 @@
|
|
|
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
|
-
import
|
|
6
|
+
import setLongTimeout from "@fringeworks/utils/timer/setLongTimeout";
|
|
8
7
|
|
|
9
8
|
//#region src/useDeferUntilTimeout/useDeferUntilTimeout.tsx
|
|
10
9
|
/**
|
|
@@ -15,21 +14,24 @@ import setTimeoutExtended from "@fringeworks/utils/timer/setTimeoutExtended";
|
|
|
15
14
|
* @returns state('pending', 'ready')と状態に応じたノード
|
|
16
15
|
*/
|
|
17
16
|
function useDeferUntilTimeout(target, defer, options = {}) {
|
|
18
|
-
const [
|
|
19
|
-
|
|
17
|
+
const [wait, setWait] = useState({
|
|
18
|
+
defer,
|
|
19
|
+
isElapsed: false
|
|
20
|
+
});
|
|
21
|
+
if (wait.defer !== defer) setWait({
|
|
22
|
+
defer,
|
|
23
|
+
isElapsed: false
|
|
24
|
+
});
|
|
20
25
|
useEffect(() => {
|
|
21
|
-
if (defer == null || defer <= 0)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (isMounted()) setCondition(true);
|
|
26
|
+
if (defer == null || defer <= 0) return;
|
|
27
|
+
return setLongTimeout(() => {
|
|
28
|
+
setWait((current) => current.defer === defer ? {
|
|
29
|
+
defer,
|
|
30
|
+
isElapsed: true
|
|
31
|
+
} : current);
|
|
28
32
|
}, defer);
|
|
29
|
-
return () => {
|
|
30
|
-
cancel();
|
|
31
|
-
};
|
|
32
33
|
}, [defer]);
|
|
34
|
+
const condition = defer == null || defer <= 0 || wait.defer === defer && wait.isElapsed;
|
|
33
35
|
return useDeferUntilTrue(target, condition, options);
|
|
34
36
|
}
|
|
35
37
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilTrue_useDeferUntilTrue = require("./useDeferUntilTrue.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilTrue_useDeferUntilTrue;
|
|
4
|
+
exports.default = require_useDeferUntilTrue_useDeferUntilTrue.default;
|
|
5
|
+
exports.useDeferUntilTrue = require_useDeferUntilTrue_useDeferUntilTrue.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "./types.cjs";
|
|
2
2
|
import useDeferUntilTrue from "./useDeferUntilTrue.cjs";
|
|
3
|
-
export { type UseDeferUntilTrueOptions, useDeferUntilTrue as default };
|
|
3
|
+
export { type UseDeferUntilTrueOptions, useDeferUntilTrue as default, useDeferUntilTrue };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilTrueOptions } from "./types.mjs";
|
|
2
2
|
import useDeferUntilTrue from "./useDeferUntilTrue.mjs";
|
|
3
|
-
export { type UseDeferUntilTrueOptions, useDeferUntilTrue as default };
|
|
3
|
+
export { type UseDeferUntilTrueOptions, useDeferUntilTrue as default, useDeferUntilTrue };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { DeferRenderingOptionsBase } from "../types.cjs";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/useDeferUntilTrue/types.d.ts
|
|
5
|
-
type UseDeferUntilTrueOptions<P extends ReactNode = ReactNode> = DeferRenderingOptionsBase<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilTrueOptions };
|
|
4
|
+
export type UseDeferUntilTrueOptions<P extends ReactNode = ReactNode> = DeferRenderingOptionsBase<P>;
|
|
5
|
+
//#endregion
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { DeferRenderingOptionsBase } from "../types.mjs";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
3
|
//#region src/useDeferUntilTrue/types.d.ts
|
|
5
|
-
type UseDeferUntilTrueOptions<P extends ReactNode = ReactNode> = DeferRenderingOptionsBase<P>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { UseDeferUntilTrueOptions };
|
|
4
|
+
export type UseDeferUntilTrueOptions<P extends ReactNode = ReactNode> = DeferRenderingOptionsBase<P>;
|
|
5
|
+
//#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_constants = require("../constants.cjs");
|
|
5
|
+
const require_useDeferUntilReady_useDeferUntilReady = require("../useDeferUntilReady/useDeferUntilReady.cjs");
|
|
6
|
+
require("../useDeferUntilReady/index.cjs");
|
|
6
7
|
|
|
7
8
|
//#region src/useDeferUntilTrue/useDeferUntilTrue.tsx
|
|
8
9
|
/**
|
|
@@ -13,8 +14,8 @@ require('../useDeferUntilReady/index.cjs');
|
|
|
13
14
|
* @returns state('pending', 'ready')と状態に応じたノード
|
|
14
15
|
*/
|
|
15
16
|
function useDeferUntilTrue(target, condition, options = {}) {
|
|
16
|
-
return require_useDeferUntilReady_useDeferUntilReady(target, condition ? require_constants.RenderingState.ready : require_constants.RenderingState.pending, options);
|
|
17
|
+
return require_useDeferUntilReady_useDeferUntilReady.default(target, condition ? require_constants.RenderingState.ready : require_constants.RenderingState.pending, options);
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
//#endregion
|
|
20
|
-
|
|
21
|
+
exports.default = useDeferUntilTrue;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DeferRenderingResult } from "../types.mjs";
|
|
2
2
|
import { UseDeferUntilTrueOptions } from "./types.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/useDeferUntilTrue/useDeferUntilTrue.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* 条件がtrueになるまで描画を遅延させる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 { useDeferUntilTrue as default };
|
|
12
|
+
export default function useDeferUntilTrue<T extends ReactNode, P extends ReactNode = ReactNode>(target: T, condition: boolean | null | undefined, options?: UseDeferUntilTrueOptions<P>): DeferRenderingResult<T | P>;
|
|
13
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_useDeferUntilWebFontReady_useDeferUntilWebFontReady = require("./useDeferUntilWebFontReady.cjs");
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = require_useDeferUntilWebFontReady_useDeferUntilWebFontReady;
|
|
4
|
+
exports.default = require_useDeferUntilWebFontReady_useDeferUntilWebFontReady.default;
|
|
5
|
+
exports.useDeferUntilWebFontReady = require_useDeferUntilWebFontReady_useDeferUntilWebFontReady.default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilWebFontReadyOptions, WebFont, WebFontTarget, WebFontTargets } from "./types.cjs";
|
|
2
2
|
import useDeferUntilWebFontReady from "./useDeferUntilWebFontReady.cjs";
|
|
3
|
-
export { type UseDeferUntilWebFontReadyOptions, type WebFont, type WebFontTarget, type WebFontTargets, useDeferUntilWebFontReady as default };
|
|
3
|
+
export { type UseDeferUntilWebFontReadyOptions, type WebFont, type WebFontTarget, type WebFontTargets, useDeferUntilWebFontReady as default, useDeferUntilWebFontReady };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { UseDeferUntilWebFontReadyOptions, WebFont, WebFontTarget, WebFontTargets } from "./types.mjs";
|
|
2
2
|
import useDeferUntilWebFontReady from "./useDeferUntilWebFontReady.mjs";
|
|
3
|
-
export { type UseDeferUntilWebFontReadyOptions, type WebFont, type WebFontTarget, type WebFontTargets, useDeferUntilWebFontReady as default };
|
|
3
|
+
export { type UseDeferUntilWebFontReadyOptions, type WebFont, type WebFontTarget, type WebFontTargets, useDeferUntilWebFontReady as default, useDeferUntilWebFontReady };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RenderingState } from "../constants.cjs";
|
|
2
2
|
import { UseDeferUntilReadyOptions } from "../useDeferUntilReady/types.cjs";
|
|
3
|
+
import "../useDeferUntilReady/index.cjs";
|
|
3
4
|
import { ReactNode } from "react";
|
|
4
5
|
import { WebFontMatchOptions } from "@fringeworks/web-font-observer";
|
|
5
|
-
|
|
6
6
|
//#region src/useDeferUntilWebFontReady/types.d.ts
|
|
7
7
|
/**
|
|
8
8
|
* 太さ等を指定して待つWebフォント
|
|
9
9
|
*/
|
|
10
|
-
type WebFont = WebFontMatchOptions & {
|
|
10
|
+
export type WebFont = WebFontMatchOptions & {
|
|
11
11
|
/**
|
|
12
12
|
* フォントファミリー
|
|
13
13
|
*/
|
|
@@ -17,13 +17,13 @@ type WebFont = WebFontMatchOptions & {
|
|
|
17
17
|
* 待つWebフォント\
|
|
18
18
|
* フォントファミリーのみで良い場合は文字列で指定できる
|
|
19
19
|
*/
|
|
20
|
-
type WebFontTarget = string | WebFont;
|
|
20
|
+
export type WebFontTarget = string | WebFont;
|
|
21
21
|
/**
|
|
22
22
|
* 待つWebフォントの指定\
|
|
23
23
|
* 複数のWebフォントを待つ場合は配列で指定する。配列内のnull/undefinedは無視される
|
|
24
24
|
*/
|
|
25
|
-
type WebFontTargets = WebFontTarget | readonly (WebFontTarget | null | undefined)[];
|
|
26
|
-
type UseDeferUntilWebFontReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
25
|
+
export type WebFontTargets = WebFontTarget | readonly (WebFontTarget | null | undefined)[];
|
|
26
|
+
export type UseDeferUntilWebFontReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
27
27
|
/**
|
|
28
28
|
* Webフォントが利用可能にならなかった場合に失敗とみなすまでの時間(ミリ秒)\
|
|
29
29
|
* Webフォントごとに適用されるが、すべて並行して待つため実質的に全体の待ち時間となる\
|
|
@@ -45,5 +45,4 @@ type UseDeferUntilWebFontReadyOptions<P extends ReactNode = ReactNode, E extends
|
|
|
45
45
|
*/
|
|
46
46
|
initialState?: RenderingState;
|
|
47
47
|
};
|
|
48
|
-
//#endregion
|
|
49
|
-
export { UseDeferUntilWebFontReadyOptions, WebFont, WebFontTarget, WebFontTargets };
|
|
48
|
+
//#endregion
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { RenderingState } from "../constants.mjs";
|
|
2
2
|
import { UseDeferUntilReadyOptions } from "../useDeferUntilReady/types.mjs";
|
|
3
|
+
import "../useDeferUntilReady/index.mjs";
|
|
3
4
|
import { ReactNode } from "react";
|
|
4
5
|
import { WebFontMatchOptions } from "@fringeworks/web-font-observer";
|
|
5
|
-
|
|
6
6
|
//#region src/useDeferUntilWebFontReady/types.d.ts
|
|
7
7
|
/**
|
|
8
8
|
* 太さ等を指定して待つWebフォント
|
|
9
9
|
*/
|
|
10
|
-
type WebFont = WebFontMatchOptions & {
|
|
10
|
+
export type WebFont = WebFontMatchOptions & {
|
|
11
11
|
/**
|
|
12
12
|
* フォントファミリー
|
|
13
13
|
*/
|
|
@@ -17,13 +17,13 @@ type WebFont = WebFontMatchOptions & {
|
|
|
17
17
|
* 待つWebフォント\
|
|
18
18
|
* フォントファミリーのみで良い場合は文字列で指定できる
|
|
19
19
|
*/
|
|
20
|
-
type WebFontTarget = string | WebFont;
|
|
20
|
+
export type WebFontTarget = string | WebFont;
|
|
21
21
|
/**
|
|
22
22
|
* 待つWebフォントの指定\
|
|
23
23
|
* 複数のWebフォントを待つ場合は配列で指定する。配列内のnull/undefinedは無視される
|
|
24
24
|
*/
|
|
25
|
-
type WebFontTargets = WebFontTarget | readonly (WebFontTarget | null | undefined)[];
|
|
26
|
-
type UseDeferUntilWebFontReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
25
|
+
export type WebFontTargets = WebFontTarget | readonly (WebFontTarget | null | undefined)[];
|
|
26
|
+
export type UseDeferUntilWebFontReadyOptions<P extends ReactNode = ReactNode, E extends ReactNode = ReactNode> = UseDeferUntilReadyOptions<P, E> & {
|
|
27
27
|
/**
|
|
28
28
|
* Webフォントが利用可能にならなかった場合に失敗とみなすまでの時間(ミリ秒)\
|
|
29
29
|
* Webフォントごとに適用されるが、すべて並行して待つため実質的に全体の待ち時間となる\
|
|
@@ -45,5 +45,4 @@ type UseDeferUntilWebFontReadyOptions<P extends ReactNode = ReactNode, E extends
|
|
|
45
45
|
*/
|
|
46
46
|
initialState?: RenderingState;
|
|
47
47
|
};
|
|
48
|
-
//#endregion
|
|
49
|
-
export { UseDeferUntilWebFontReadyOptions, WebFont, WebFontTarget, WebFontTargets };
|
|
48
|
+
//#endregion
|