@fringeworks/react-utils 0.10.0 → 0.11.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 +101 -21
- package/README.md +114 -34
- package/{_helpers → _internal}/_traverseChildren.cjs +1 -1
- package/{_helpers → _internal}/_traverseChildren.d.cts +1 -1
- package/{_helpers → _internal}/_traverseChildren.d.mts +1 -1
- package/{_helpers → _internal}/_traverseChildren.mjs +1 -1
- package/_internal/_useChangeHandler.cjs +48 -0
- package/_internal/_useChangeHandler.d.cts +18 -0
- package/_internal/_useChangeHandler.d.mts +18 -0
- package/_internal/_useChangeHandler.mjs +47 -0
- package/{_helpers → _internal}/_useExecutionHandler.cjs +13 -12
- package/{_helpers → _internal}/_useExecutionHandler.d.cts +6 -4
- package/{_helpers → _internal}/_useExecutionHandler.d.mts +6 -4
- package/_internal/_useExecutionHandler.mjs +37 -0
- package/hooks/index.cjs +11 -2
- package/hooks/index.d.cts +6 -1
- package/hooks/index.d.mts +6 -1
- package/hooks/index.mjs +9 -3
- package/hooks/useChangeEffect/index.cjs +5 -0
- package/hooks/useChangeEffect/index.d.cts +3 -0
- package/hooks/useChangeEffect/index.d.mts +3 -0
- package/hooks/useChangeEffect/index.mjs +3 -0
- package/hooks/useChangeEffect/types.cjs +1 -0
- package/hooks/useChangeEffect/types.d.cts +11 -0
- package/hooks/useChangeEffect/types.d.mts +11 -0
- package/hooks/useChangeEffect/types.mjs +1 -0
- package/hooks/useChangeEffect/useChangeEffect.cjs +37 -0
- package/hooks/useChangeEffect/useChangeEffect.d.cts +27 -0
- package/hooks/useChangeEffect/useChangeEffect.d.mts +27 -0
- package/hooks/useChangeEffect/useChangeEffect.mjs +36 -0
- package/hooks/useChangeLayoutEffect/index.cjs +5 -0
- package/hooks/useChangeLayoutEffect/index.d.cts +2 -0
- package/hooks/useChangeLayoutEffect/index.d.mts +2 -0
- package/hooks/useChangeLayoutEffect/index.mjs +3 -0
- package/hooks/useChangeLayoutEffect/useChangeLayoutEffect.cjs +24 -0
- package/hooks/useChangeLayoutEffect/useChangeLayoutEffect.d.cts +14 -0
- package/hooks/useChangeLayoutEffect/useChangeLayoutEffect.d.mts +14 -0
- package/hooks/useChangeLayoutEffect/useChangeLayoutEffect.mjs +23 -0
- package/hooks/useExecutionEffect/useExecutionEffect.cjs +8 -6
- package/hooks/useExecutionEffect/useExecutionEffect.d.cts +8 -5
- package/hooks/useExecutionEffect/useExecutionEffect.d.mts +8 -5
- package/hooks/useExecutionEffect/useExecutionEffect.mjs +7 -5
- package/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.cjs +3 -3
- package/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.d.cts +3 -2
- package/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.d.mts +3 -2
- package/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.mjs +2 -2
- package/hooks/useExecutionMark/index.cjs +5 -0
- package/hooks/useExecutionMark/index.d.cts +3 -0
- package/hooks/useExecutionMark/index.d.mts +3 -0
- package/hooks/useExecutionMark/index.mjs +3 -0
- package/hooks/useExecutionMark/types.cjs +1 -0
- package/hooks/useExecutionMark/types.d.cts +15 -0
- package/hooks/useExecutionMark/types.d.mts +15 -0
- package/hooks/useExecutionMark/types.mjs +1 -0
- package/hooks/useExecutionMark/useExecutionMark.cjs +29 -0
- package/hooks/useExecutionMark/useExecutionMark.d.cts +19 -0
- package/hooks/useExecutionMark/useExecutionMark.d.mts +19 -0
- package/hooks/useExecutionMark/useExecutionMark.mjs +28 -0
- package/index.cjs +7 -1
- package/index.d.cts +6 -1
- package/index.d.mts +6 -1
- package/index.mjs +5 -2
- package/package.json +31 -1
- package/utils/forEachContent/forEachContent.cjs +2 -2
- package/utils/forEachContent/forEachContent.mjs +1 -1
- package/utils/forEachElement/forEachElement.cjs +2 -2
- package/utils/forEachElement/forEachElement.mjs +1 -1
- package/utils/markAt/types.d.cts +3 -0
- package/utils/markAt/types.d.mts +3 -0
- package/utils/transformContent/transformContent.cjs +2 -2
- package/utils/transformContent/transformContent.mjs +1 -1
- package/utils/transformElement/transformElement.cjs +2 -2
- package/utils/transformElement/transformElement.mjs +1 -1
- package/_helpers/_useExecutionHandler.mjs +0 -36
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ExecutionRequest } from "../hooks/useExecutionAt/types.cjs";
|
|
2
|
-
|
|
2
|
+
import { ExecutionMark } from "../hooks/useExecutionMark/types.cjs";
|
|
3
|
+
//#region src/_internal/_useExecutionHandler.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Execution Request を受け取り、要求があれば処理を実行する関数を返すフック
|
|
5
6
|
*
|
|
6
7
|
* `useExecutionEffect`・`useExecutionLayoutEffect` に共通の処理。返す関数をエフェクトで呼ぶ。
|
|
7
8
|
*
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
9
|
+
* - 初回のレンダリングで受け取った印(`at`、または ExecutionMark の値)を基準にし、印が変わったときだけ実行する。
|
|
10
|
+
* マウントしたときに渡されていた要求は実行しない。印は `markAt()` で作ったものでなくてよい(カウンターなども使える)
|
|
11
|
+
* - 印が `0`(まだ要求していない)や undefined(要求なし)の場合は実行しない
|
|
10
12
|
* - 一度実行した要求は、エフェクトが再実行されても(StrictMode など)実行しない
|
|
11
13
|
* - コールバックは最新のものを呼ぶ
|
|
12
14
|
*
|
|
@@ -14,5 +16,5 @@ import { ExecutionRequest } from "../hooks/useExecutionAt/types.cjs";
|
|
|
14
16
|
* @param callback 要求があったときに実行する処理
|
|
15
17
|
* @returns エフェクトで呼ぶ関数。参照は request が変わったときだけ変わる
|
|
16
18
|
*/
|
|
17
|
-
declare function useExecutionHandler<P>(request: ExecutionRequest<P> | undefined, callback: (payload: P | undefined) => void): () => void;
|
|
19
|
+
declare function useExecutionHandler<P>(request: ExecutionRequest<P> | ExecutionMark | undefined, callback: (payload: P | undefined) => void): () => void;
|
|
18
20
|
export = useExecutionHandler;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ExecutionRequest } from "../hooks/useExecutionAt/types.mjs";
|
|
2
|
-
|
|
2
|
+
import { ExecutionMark } from "../hooks/useExecutionMark/types.mjs";
|
|
3
|
+
//#region src/_internal/_useExecutionHandler.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Execution Request を受け取り、要求があれば処理を実行する関数を返すフック
|
|
5
6
|
*
|
|
6
7
|
* `useExecutionEffect`・`useExecutionLayoutEffect` に共通の処理。返す関数をエフェクトで呼ぶ。
|
|
7
8
|
*
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
9
|
+
* - 初回のレンダリングで受け取った印(`at`、または ExecutionMark の値)を基準にし、印が変わったときだけ実行する。
|
|
10
|
+
* マウントしたときに渡されていた要求は実行しない。印は `markAt()` で作ったものでなくてよい(カウンターなども使える)
|
|
11
|
+
* - 印が `0`(まだ要求していない)や undefined(要求なし)の場合は実行しない
|
|
10
12
|
* - 一度実行した要求は、エフェクトが再実行されても(StrictMode など)実行しない
|
|
11
13
|
* - コールバックは最新のものを呼ぶ
|
|
12
14
|
*
|
|
@@ -14,5 +16,5 @@ import { ExecutionRequest } from "../hooks/useExecutionAt/types.mjs";
|
|
|
14
16
|
* @param callback 要求があったときに実行する処理
|
|
15
17
|
* @returns エフェクトで呼ぶ関数。参照は request が変わったときだけ変わる
|
|
16
18
|
*/
|
|
17
|
-
export default function useExecutionHandler<P>(request: ExecutionRequest<P> | undefined, callback: (payload: P | undefined) => void): () => void;
|
|
19
|
+
export default function useExecutionHandler<P>(request: ExecutionRequest<P> | ExecutionMark | undefined, callback: (payload: P | undefined) => void): () => void;
|
|
18
20
|
//#endregion
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import useLatestRef from "../hooks/useLatestRef/useLatestRef.mjs";
|
|
2
|
+
import "../hooks/useLatestRef/index.mjs";
|
|
3
|
+
import { useCallback, useRef } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/_internal/_useExecutionHandler.ts
|
|
6
|
+
/**
|
|
7
|
+
* 受け取った要求の印(`at`、または ExecutionMark の値)を返す
|
|
8
|
+
*/
|
|
9
|
+
const getMark = (request) => typeof request === "number" ? request : request?.at;
|
|
10
|
+
/**
|
|
11
|
+
* Execution Request を受け取り、要求があれば処理を実行する関数を返すフック
|
|
12
|
+
*
|
|
13
|
+
* `useExecutionEffect`・`useExecutionLayoutEffect` に共通の処理。返す関数をエフェクトで呼ぶ。
|
|
14
|
+
*
|
|
15
|
+
* - 初回のレンダリングで受け取った印(`at`、または ExecutionMark の値)を基準にし、印が変わったときだけ実行する。
|
|
16
|
+
* マウントしたときに渡されていた要求は実行しない。印は `markAt()` で作ったものでなくてよい(カウンターなども使える)
|
|
17
|
+
* - 印が `0`(まだ要求していない)や undefined(要求なし)の場合は実行しない
|
|
18
|
+
* - 一度実行した要求は、エフェクトが再実行されても(StrictMode など)実行しない
|
|
19
|
+
* - コールバックは最新のものを呼ぶ
|
|
20
|
+
*
|
|
21
|
+
* @param request 受け取った Execution Request。undefined の場合は要求なし
|
|
22
|
+
* @param callback 要求があったときに実行する処理
|
|
23
|
+
* @returns エフェクトで呼ぶ関数。参照は request が変わったときだけ変わる
|
|
24
|
+
*/
|
|
25
|
+
function useExecutionHandler(request, callback) {
|
|
26
|
+
const callbackRef = useLatestRef(callback);
|
|
27
|
+
const handledRef = useRef(getMark(request));
|
|
28
|
+
return useCallback(() => {
|
|
29
|
+
const mark = getMark(request);
|
|
30
|
+
if (mark === void 0 || mark === 0 || Object.is(mark, handledRef.current)) return;
|
|
31
|
+
handledRef.current = mark;
|
|
32
|
+
callbackRef.current(typeof request === "number" ? void 0 : request?.payload);
|
|
33
|
+
}, [request, callbackRef]);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { useExecutionHandler as default };
|
package/hooks/index.cjs
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_hooks_useLatestRef_useLatestRef = require("./useLatestRef/useLatestRef.cjs");
|
|
3
|
+
require("./useLatestRef/index.cjs");
|
|
4
|
+
const require_hooks_useChangeEffect_useChangeEffect = require("./useChangeEffect/useChangeEffect.cjs");
|
|
5
|
+
require("./useChangeEffect/index.cjs");
|
|
6
|
+
const require_hooks_useChangeLayoutEffect_useChangeLayoutEffect = require("./useChangeLayoutEffect/useChangeLayoutEffect.cjs");
|
|
7
|
+
require("./useChangeLayoutEffect/index.cjs");
|
|
2
8
|
const require_hooks_useStableLength_useStableLength = require("./useStableLength/useStableLength.cjs");
|
|
3
9
|
require("./useStableLength/index.cjs");
|
|
4
10
|
const require_hooks_useCombinedRefs_useCombinedRefs = require("./useCombinedRefs/useCombinedRefs.cjs");
|
|
@@ -7,12 +13,12 @@ const require_hooks_useConstant_useConstant = require("./useConstant/useConstant
|
|
|
7
13
|
require("./useConstant/index.cjs");
|
|
8
14
|
const require_hooks_useExecutionAt_useExecutionAt = require("./useExecutionAt/useExecutionAt.cjs");
|
|
9
15
|
require("./useExecutionAt/index.cjs");
|
|
10
|
-
const require_hooks_useLatestRef_useLatestRef = require("./useLatestRef/useLatestRef.cjs");
|
|
11
|
-
require("./useLatestRef/index.cjs");
|
|
12
16
|
const require_hooks_useExecutionEffect_useExecutionEffect = require("./useExecutionEffect/useExecutionEffect.cjs");
|
|
13
17
|
require("./useExecutionEffect/index.cjs");
|
|
14
18
|
const require_hooks_useExecutionLayoutEffect_useExecutionLayoutEffect = require("./useExecutionLayoutEffect/useExecutionLayoutEffect.cjs");
|
|
15
19
|
require("./useExecutionLayoutEffect/index.cjs");
|
|
20
|
+
const require_hooks_useExecutionMark_useExecutionMark = require("./useExecutionMark/useExecutionMark.cjs");
|
|
21
|
+
require("./useExecutionMark/index.cjs");
|
|
16
22
|
const require_hooks_useIsHydrated_useIsHydrated = require("./useIsHydrated/useIsHydrated.cjs");
|
|
17
23
|
require("./useIsHydrated/index.cjs");
|
|
18
24
|
const require_hooks_useIsMounted_useIsMounted = require("./useIsMounted/useIsMounted.cjs");
|
|
@@ -24,11 +30,14 @@ require("./useRerender/index.cjs");
|
|
|
24
30
|
const require_hooks_useStableCallback_useStableCallback = require("./useStableCallback/useStableCallback.cjs");
|
|
25
31
|
require("./useStableCallback/index.cjs");
|
|
26
32
|
|
|
33
|
+
exports.useChangeEffect = require_hooks_useChangeEffect_useChangeEffect.default;
|
|
34
|
+
exports.useChangeLayoutEffect = require_hooks_useChangeLayoutEffect_useChangeLayoutEffect.default;
|
|
27
35
|
exports.useCombinedRefs = require_hooks_useCombinedRefs_useCombinedRefs.default;
|
|
28
36
|
exports.useConstant = require_hooks_useConstant_useConstant.default;
|
|
29
37
|
exports.useExecutionAt = require_hooks_useExecutionAt_useExecutionAt.default;
|
|
30
38
|
exports.useExecutionEffect = require_hooks_useExecutionEffect_useExecutionEffect.default;
|
|
31
39
|
exports.useExecutionLayoutEffect = require_hooks_useExecutionLayoutEffect_useExecutionLayoutEffect.default;
|
|
40
|
+
exports.useExecutionMark = require_hooks_useExecutionMark_useExecutionMark.default;
|
|
32
41
|
exports.useIsHydrated = require_hooks_useIsHydrated_useIsHydrated.default;
|
|
33
42
|
exports.useIsMounted = require_hooks_useIsMounted_useIsMounted.default;
|
|
34
43
|
exports.useLatestRef = require_hooks_useLatestRef_useLatestRef.default;
|
package/hooks/index.d.cts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { ChangeDependencies } from "./useChangeEffect/types.cjs";
|
|
1
2
|
import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./useExecutionAt/types.cjs";
|
|
2
3
|
import useExecutionAt from "./useExecutionAt/useExecutionAt.cjs";
|
|
4
|
+
import { ExecutionMark, UseExecutionMarkResult } from "./useExecutionMark/types.cjs";
|
|
5
|
+
import useExecutionMark from "./useExecutionMark/useExecutionMark.cjs";
|
|
6
|
+
import useChangeEffect from "./useChangeEffect/useChangeEffect.cjs";
|
|
7
|
+
import useChangeLayoutEffect from "./useChangeLayoutEffect/useChangeLayoutEffect.cjs";
|
|
3
8
|
import useCombinedRefs from "./useCombinedRefs/useCombinedRefs.cjs";
|
|
4
9
|
import "./useCombinedRefs/index.cjs";
|
|
5
10
|
import useConstant from "./useConstant/useConstant.cjs";
|
|
@@ -14,4 +19,4 @@ import usePreviousValue from "./usePreviousValue/usePreviousValue.cjs";
|
|
|
14
19
|
import useRerender from "./useRerender/useRerender.cjs";
|
|
15
20
|
import useStableCallback from "./useStableCallback/useStableCallback.cjs";
|
|
16
21
|
import useStableLength from "./useStableLength/useStableLength.cjs";
|
|
17
|
-
export { type ExecutionFunction, type ExecutionRequest, type LatestRef, type UseExecutionAtOptions, type UseExecutionAtResult, type UsePreviousValueOptions, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
|
|
22
|
+
export { type ChangeDependencies, type ExecutionFunction, type ExecutionMark, type ExecutionRequest, type LatestRef, type UseExecutionAtOptions, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
|
package/hooks/index.d.mts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { ChangeDependencies } from "./useChangeEffect/types.mjs";
|
|
1
2
|
import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./useExecutionAt/types.mjs";
|
|
2
3
|
import useExecutionAt from "./useExecutionAt/useExecutionAt.mjs";
|
|
4
|
+
import { ExecutionMark, UseExecutionMarkResult } from "./useExecutionMark/types.mjs";
|
|
5
|
+
import useExecutionMark from "./useExecutionMark/useExecutionMark.mjs";
|
|
6
|
+
import useChangeEffect from "./useChangeEffect/useChangeEffect.mjs";
|
|
7
|
+
import useChangeLayoutEffect from "./useChangeLayoutEffect/useChangeLayoutEffect.mjs";
|
|
3
8
|
import useCombinedRefs from "./useCombinedRefs/useCombinedRefs.mjs";
|
|
4
9
|
import "./useCombinedRefs/index.mjs";
|
|
5
10
|
import useConstant from "./useConstant/useConstant.mjs";
|
|
@@ -14,4 +19,4 @@ import usePreviousValue from "./usePreviousValue/usePreviousValue.mjs";
|
|
|
14
19
|
import useRerender from "./useRerender/useRerender.mjs";
|
|
15
20
|
import useStableCallback from "./useStableCallback/useStableCallback.mjs";
|
|
16
21
|
import useStableLength from "./useStableLength/useStableLength.mjs";
|
|
17
|
-
export { type ExecutionFunction, type ExecutionRequest, type LatestRef, type UseExecutionAtOptions, type UseExecutionAtResult, type UsePreviousValueOptions, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
|
|
22
|
+
export { type ChangeDependencies, type ExecutionFunction, type ExecutionMark, type ExecutionRequest, type LatestRef, type UseExecutionAtOptions, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
|
package/hooks/index.mjs
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import useLatestRef from "./useLatestRef/useLatestRef.mjs";
|
|
2
|
+
import "./useLatestRef/index.mjs";
|
|
3
|
+
import useChangeEffect from "./useChangeEffect/useChangeEffect.mjs";
|
|
4
|
+
import "./useChangeEffect/index.mjs";
|
|
5
|
+
import useChangeLayoutEffect from "./useChangeLayoutEffect/useChangeLayoutEffect.mjs";
|
|
6
|
+
import "./useChangeLayoutEffect/index.mjs";
|
|
1
7
|
import useStableLength from "./useStableLength/useStableLength.mjs";
|
|
2
8
|
import "./useStableLength/index.mjs";
|
|
3
9
|
import useCombinedRefs from "./useCombinedRefs/useCombinedRefs.mjs";
|
|
@@ -6,12 +12,12 @@ import useConstant from "./useConstant/useConstant.mjs";
|
|
|
6
12
|
import "./useConstant/index.mjs";
|
|
7
13
|
import useExecutionAt from "./useExecutionAt/useExecutionAt.mjs";
|
|
8
14
|
import "./useExecutionAt/index.mjs";
|
|
9
|
-
import useLatestRef from "./useLatestRef/useLatestRef.mjs";
|
|
10
|
-
import "./useLatestRef/index.mjs";
|
|
11
15
|
import useExecutionEffect from "./useExecutionEffect/useExecutionEffect.mjs";
|
|
12
16
|
import "./useExecutionEffect/index.mjs";
|
|
13
17
|
import useExecutionLayoutEffect from "./useExecutionLayoutEffect/useExecutionLayoutEffect.mjs";
|
|
14
18
|
import "./useExecutionLayoutEffect/index.mjs";
|
|
19
|
+
import useExecutionMark from "./useExecutionMark/useExecutionMark.mjs";
|
|
20
|
+
import "./useExecutionMark/index.mjs";
|
|
15
21
|
import useIsHydrated from "./useIsHydrated/useIsHydrated.mjs";
|
|
16
22
|
import "./useIsHydrated/index.mjs";
|
|
17
23
|
import useIsMounted from "./useIsMounted/useIsMounted.mjs";
|
|
@@ -23,4 +29,4 @@ import "./useRerender/index.mjs";
|
|
|
23
29
|
import useStableCallback from "./useStableCallback/useStableCallback.mjs";
|
|
24
30
|
import "./useStableCallback/index.mjs";
|
|
25
31
|
|
|
26
|
-
export { useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
|
|
32
|
+
export { useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_hooks_useChangeEffect_useChangeEffect = require("./useChangeEffect.cjs");
|
|
3
|
+
|
|
4
|
+
exports.default = require_hooks_useChangeEffect_useChangeEffect.default;
|
|
5
|
+
exports.useChangeEffect = require_hooks_useChangeEffect_useChangeEffect.default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/hooks/useChangeEffect/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 変化を見る依存の値(Change Dependencies)
|
|
4
|
+
*
|
|
5
|
+
* プロパティごとに `Object.is` で比べ、どれかが変わったら変化とみなす。
|
|
6
|
+
* 比べるのは1段目のプロパティだけで、プロパティの値がオブジェクトの場合は参照で比べる。
|
|
7
|
+
* そのため、オブジェクトをその場で書いて渡してよい(例: `{ className, theme }`)。
|
|
8
|
+
* Execution Request(`useExecutionAt` の値)を入れると、要求のたびに変化とみなす。
|
|
9
|
+
*/
|
|
10
|
+
export type ChangeDependencies = object;
|
|
11
|
+
//#endregion
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/hooks/useChangeEffect/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 変化を見る依存の値(Change Dependencies)
|
|
4
|
+
*
|
|
5
|
+
* プロパティごとに `Object.is` で比べ、どれかが変わったら変化とみなす。
|
|
6
|
+
* 比べるのは1段目のプロパティだけで、プロパティの値がオブジェクトの場合は参照で比べる。
|
|
7
|
+
* そのため、オブジェクトをその場で書いて渡してよい(例: `{ className, theme }`)。
|
|
8
|
+
* Execution Request(`useExecutionAt` の値)を入れると、要求のたびに変化とみなす。
|
|
9
|
+
*/
|
|
10
|
+
export type ChangeDependencies = object;
|
|
11
|
+
//#endregion
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require__internal__useChangeHandler = require("../../_internal/_useChangeHandler.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
|
|
5
|
+
//#region src/hooks/useChangeEffect/useChangeEffect.ts
|
|
6
|
+
/**
|
|
7
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに処理を実行するフック
|
|
8
|
+
*
|
|
9
|
+
* `xxxOn` のプロパティ(例: `refreshOn`)を受け取る側のフック。
|
|
10
|
+
* 結果が入力だけで決まる操作(測り直し、再計算など)を、利用者が渡した値の変化に合わせて実行する。
|
|
11
|
+
* 回数や payload に意味がある命令は、Execution Request(`useExecutionAt`・`useExecutionEffect`)を使う。
|
|
12
|
+
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useChangeLayoutEffect` を使う。
|
|
13
|
+
*
|
|
14
|
+
* - 1段目のプロパティを `Object.is` で比べ、どれかが変わったときに実行する。プロパティが増えた・減った場合も変化とみなす
|
|
15
|
+
* - 初回(マウントしたとき)は実行しない
|
|
16
|
+
* - undefined は依存なし(プロパティの無いオブジェクト)として扱う
|
|
17
|
+
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
18
|
+
*
|
|
19
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
20
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
21
|
+
* @example
|
|
22
|
+
* // 渡す側
|
|
23
|
+
* <WrappedComponent refreshOn={{ className, theme }} />
|
|
24
|
+
* // 受け取る側(WrappedComponent の中)
|
|
25
|
+
* useChangeEffect(props.refreshOn, () => {
|
|
26
|
+
* instance.refresh();
|
|
27
|
+
* });
|
|
28
|
+
*/
|
|
29
|
+
function useChangeEffect(dependencies, callback) {
|
|
30
|
+
const handle = require__internal__useChangeHandler.default(dependencies, callback);
|
|
31
|
+
(0, react.useEffect)(() => {
|
|
32
|
+
handle();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
exports.default = useChangeEffect;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDependencies } from "./types.cjs";
|
|
2
|
+
//#region src/hooks/useChangeEffect/useChangeEffect.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに処理を実行するフック
|
|
5
|
+
*
|
|
6
|
+
* `xxxOn` のプロパティ(例: `refreshOn`)を受け取る側のフック。
|
|
7
|
+
* 結果が入力だけで決まる操作(測り直し、再計算など)を、利用者が渡した値の変化に合わせて実行する。
|
|
8
|
+
* 回数や payload に意味がある命令は、Execution Request(`useExecutionAt`・`useExecutionEffect`)を使う。
|
|
9
|
+
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useChangeLayoutEffect` を使う。
|
|
10
|
+
*
|
|
11
|
+
* - 1段目のプロパティを `Object.is` で比べ、どれかが変わったときに実行する。プロパティが増えた・減った場合も変化とみなす
|
|
12
|
+
* - 初回(マウントしたとき)は実行しない
|
|
13
|
+
* - undefined は依存なし(プロパティの無いオブジェクト)として扱う
|
|
14
|
+
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
15
|
+
*
|
|
16
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
17
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
18
|
+
* @example
|
|
19
|
+
* // 渡す側
|
|
20
|
+
* <WrappedComponent refreshOn={{ className, theme }} />
|
|
21
|
+
* // 受け取る側(WrappedComponent の中)
|
|
22
|
+
* useChangeEffect(props.refreshOn, () => {
|
|
23
|
+
* instance.refresh();
|
|
24
|
+
* });
|
|
25
|
+
*/
|
|
26
|
+
declare function useChangeEffect(dependencies: ChangeDependencies | undefined, callback: () => void): void;
|
|
27
|
+
export = useChangeEffect;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDependencies } from "./types.mjs";
|
|
2
|
+
//#region src/hooks/useChangeEffect/useChangeEffect.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに処理を実行するフック
|
|
5
|
+
*
|
|
6
|
+
* `xxxOn` のプロパティ(例: `refreshOn`)を受け取る側のフック。
|
|
7
|
+
* 結果が入力だけで決まる操作(測り直し、再計算など)を、利用者が渡した値の変化に合わせて実行する。
|
|
8
|
+
* 回数や payload に意味がある命令は、Execution Request(`useExecutionAt`・`useExecutionEffect`)を使う。
|
|
9
|
+
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useChangeLayoutEffect` を使う。
|
|
10
|
+
*
|
|
11
|
+
* - 1段目のプロパティを `Object.is` で比べ、どれかが変わったときに実行する。プロパティが増えた・減った場合も変化とみなす
|
|
12
|
+
* - 初回(マウントしたとき)は実行しない
|
|
13
|
+
* - undefined は依存なし(プロパティの無いオブジェクト)として扱う
|
|
14
|
+
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
15
|
+
*
|
|
16
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
17
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
18
|
+
* @example
|
|
19
|
+
* // 渡す側
|
|
20
|
+
* <WrappedComponent refreshOn={{ className, theme }} />
|
|
21
|
+
* // 受け取る側(WrappedComponent の中)
|
|
22
|
+
* useChangeEffect(props.refreshOn, () => {
|
|
23
|
+
* instance.refresh();
|
|
24
|
+
* });
|
|
25
|
+
*/
|
|
26
|
+
export default function useChangeEffect(dependencies: ChangeDependencies | undefined, callback: () => void): void;
|
|
27
|
+
//#endregion
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import useChangeHandler from "../../_internal/_useChangeHandler.mjs";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/hooks/useChangeEffect/useChangeEffect.ts
|
|
5
|
+
/**
|
|
6
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに処理を実行するフック
|
|
7
|
+
*
|
|
8
|
+
* `xxxOn` のプロパティ(例: `refreshOn`)を受け取る側のフック。
|
|
9
|
+
* 結果が入力だけで決まる操作(測り直し、再計算など)を、利用者が渡した値の変化に合わせて実行する。
|
|
10
|
+
* 回数や payload に意味がある命令は、Execution Request(`useExecutionAt`・`useExecutionEffect`)を使う。
|
|
11
|
+
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useChangeLayoutEffect` を使う。
|
|
12
|
+
*
|
|
13
|
+
* - 1段目のプロパティを `Object.is` で比べ、どれかが変わったときに実行する。プロパティが増えた・減った場合も変化とみなす
|
|
14
|
+
* - 初回(マウントしたとき)は実行しない
|
|
15
|
+
* - undefined は依存なし(プロパティの無いオブジェクト)として扱う
|
|
16
|
+
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
17
|
+
*
|
|
18
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
19
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
20
|
+
* @example
|
|
21
|
+
* // 渡す側
|
|
22
|
+
* <WrappedComponent refreshOn={{ className, theme }} />
|
|
23
|
+
* // 受け取る側(WrappedComponent の中)
|
|
24
|
+
* useChangeEffect(props.refreshOn, () => {
|
|
25
|
+
* instance.refresh();
|
|
26
|
+
* });
|
|
27
|
+
*/
|
|
28
|
+
function useChangeEffect(dependencies, callback) {
|
|
29
|
+
const handle = useChangeHandler(dependencies, callback);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
handle();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { useChangeEffect as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require_hooks_useChangeLayoutEffect_useChangeLayoutEffect = require("./useChangeLayoutEffect.cjs");
|
|
3
|
+
|
|
4
|
+
exports.default = require_hooks_useChangeLayoutEffect_useChangeLayoutEffect.default;
|
|
5
|
+
exports.useChangeLayoutEffect = require_hooks_useChangeLayoutEffect_useChangeLayoutEffect.default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
+
const require__internal__useChangeHandler = require("../../_internal/_useChangeHandler.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
|
|
5
|
+
//#region src/hooks/useChangeLayoutEffect/useChangeLayoutEffect.ts
|
|
6
|
+
/**
|
|
7
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに画面に表示する前に処理を実行するフック
|
|
8
|
+
*
|
|
9
|
+
* `useChangeEffect` の、処理を `useLayoutEffect` で実行する版。
|
|
10
|
+
* 測り直しなど、結果を画面に表示する前に反映したい処理に使う。
|
|
11
|
+
* 依存の値の扱いは `useChangeEffect` と同じ。
|
|
12
|
+
*
|
|
13
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
14
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
15
|
+
*/
|
|
16
|
+
function useChangeLayoutEffect(dependencies, callback) {
|
|
17
|
+
const handle = require__internal__useChangeHandler.default(dependencies, callback);
|
|
18
|
+
(0, react.useLayoutEffect)(() => {
|
|
19
|
+
handle();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.default = useChangeLayoutEffect;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ChangeDependencies } from "../useChangeEffect/types.cjs";
|
|
2
|
+
//#region src/hooks/useChangeLayoutEffect/useChangeLayoutEffect.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに画面に表示する前に処理を実行するフック
|
|
5
|
+
*
|
|
6
|
+
* `useChangeEffect` の、処理を `useLayoutEffect` で実行する版。
|
|
7
|
+
* 測り直しなど、結果を画面に表示する前に反映したい処理に使う。
|
|
8
|
+
* 依存の値の扱いは `useChangeEffect` と同じ。
|
|
9
|
+
*
|
|
10
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
11
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
12
|
+
*/
|
|
13
|
+
declare function useChangeLayoutEffect(dependencies: ChangeDependencies | undefined, callback: () => void): void;
|
|
14
|
+
export = useChangeLayoutEffect;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ChangeDependencies } from "../useChangeEffect/types.mjs";
|
|
2
|
+
//#region src/hooks/useChangeLayoutEffect/useChangeLayoutEffect.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに画面に表示する前に処理を実行するフック
|
|
5
|
+
*
|
|
6
|
+
* `useChangeEffect` の、処理を `useLayoutEffect` で実行する版。
|
|
7
|
+
* 測り直しなど、結果を画面に表示する前に反映したい処理に使う。
|
|
8
|
+
* 依存の値の扱いは `useChangeEffect` と同じ。
|
|
9
|
+
*
|
|
10
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
11
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
12
|
+
*/
|
|
13
|
+
export default function useChangeLayoutEffect(dependencies: ChangeDependencies | undefined, callback: () => void): void;
|
|
14
|
+
//#endregion
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import useChangeHandler from "../../_internal/_useChangeHandler.mjs";
|
|
2
|
+
import { useLayoutEffect } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/hooks/useChangeLayoutEffect/useChangeLayoutEffect.ts
|
|
5
|
+
/**
|
|
6
|
+
* 変化を見る依存の値(Change Dependencies)を受け取り、値が変わったときに画面に表示する前に処理を実行するフック
|
|
7
|
+
*
|
|
8
|
+
* `useChangeEffect` の、処理を `useLayoutEffect` で実行する版。
|
|
9
|
+
* 測り直しなど、結果を画面に表示する前に反映したい処理に使う。
|
|
10
|
+
* 依存の値の扱いは `useChangeEffect` と同じ。
|
|
11
|
+
*
|
|
12
|
+
* @param dependencies 受け取った依存の値。undefined の場合は依存なし
|
|
13
|
+
* @param callback 依存の値が変わったときに実行する処理
|
|
14
|
+
*/
|
|
15
|
+
function useChangeLayoutEffect(dependencies, callback) {
|
|
16
|
+
const handle = useChangeHandler(dependencies, callback);
|
|
17
|
+
useLayoutEffect(() => {
|
|
18
|
+
handle();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
export { useChangeLayoutEffect as default };
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2
|
-
const
|
|
2
|
+
const require__internal__useExecutionHandler = require("../../_internal/_useExecutionHandler.cjs");
|
|
3
3
|
let react = require("react");
|
|
4
4
|
|
|
5
5
|
//#region src/hooks/useExecutionEffect/useExecutionEffect.ts
|
|
6
6
|
/**
|
|
7
7
|
* Execution Request プロパティ(xxxAt)を受け取り、要求があったときに処理を実行するフック
|
|
8
8
|
*
|
|
9
|
-
* `useExecutionAt` と対になる、受け取る側のフック。
|
|
9
|
+
* `useExecutionAt`・`useExecutionMark` と対になる、受け取る側のフック。
|
|
10
10
|
* 命令的なコンポーネントをラップした React のコンポーネントで、プロパティを通じてメソッドを実行する。
|
|
11
11
|
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useExecutionLayoutEffect` を使う。
|
|
12
12
|
*
|
|
13
|
-
* -
|
|
14
|
-
* -
|
|
13
|
+
* - 印(`at`、または ExecutionMark の値)が変わったときだけ実行する(`payload` は比べない)
|
|
14
|
+
* - マウントしたときに渡されていた要求は実行しない(マウントしたときの印を基準にする)
|
|
15
|
+
* - 印が `0`(まだ要求していない)や undefined の場合は実行しない
|
|
16
|
+
* - ExecutionMark を受け取った場合、コールバックの payload は undefined
|
|
15
17
|
* - 次のレンダリングまでに複数回要求した場合は、最後の要求だけを実行する
|
|
16
18
|
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
17
19
|
*
|
|
18
|
-
* @param request 受け取った Execution Request
|
|
20
|
+
* @param request 受け取った Execution Request(`useExecutionAt` の値、または payload の無い ExecutionMark)。undefined の場合は要求なし
|
|
19
21
|
* @param callback 要求があったときに実行する処理。要求の payload を受け取る
|
|
20
22
|
* @example
|
|
21
23
|
* // 呼び出す側
|
|
@@ -27,7 +29,7 @@ let react = require("react");
|
|
|
27
29
|
* });
|
|
28
30
|
*/
|
|
29
31
|
function useExecutionEffect(request, callback) {
|
|
30
|
-
const handle =
|
|
32
|
+
const handle = require__internal__useExecutionHandler.default(request, callback);
|
|
31
33
|
(0, react.useEffect)(() => {
|
|
32
34
|
handle();
|
|
33
35
|
}, [handle]);
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { ExecutionRequest } from "../useExecutionAt/types.cjs";
|
|
2
|
+
import { ExecutionMark } from "../useExecutionMark/types.cjs";
|
|
2
3
|
//#region src/hooks/useExecutionEffect/useExecutionEffect.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Execution Request プロパティ(xxxAt)を受け取り、要求があったときに処理を実行するフック
|
|
5
6
|
*
|
|
6
|
-
* `useExecutionAt` と対になる、受け取る側のフック。
|
|
7
|
+
* `useExecutionAt`・`useExecutionMark` と対になる、受け取る側のフック。
|
|
7
8
|
* 命令的なコンポーネントをラップした React のコンポーネントで、プロパティを通じてメソッドを実行する。
|
|
8
9
|
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useExecutionLayoutEffect` を使う。
|
|
9
10
|
*
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
11
|
+
* - 印(`at`、または ExecutionMark の値)が変わったときだけ実行する(`payload` は比べない)
|
|
12
|
+
* - マウントしたときに渡されていた要求は実行しない(マウントしたときの印を基準にする)
|
|
13
|
+
* - 印が `0`(まだ要求していない)や undefined の場合は実行しない
|
|
14
|
+
* - ExecutionMark を受け取った場合、コールバックの payload は undefined
|
|
12
15
|
* - 次のレンダリングまでに複数回要求した場合は、最後の要求だけを実行する
|
|
13
16
|
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
14
17
|
*
|
|
15
|
-
* @param request 受け取った Execution Request
|
|
18
|
+
* @param request 受け取った Execution Request(`useExecutionAt` の値、または payload の無い ExecutionMark)。undefined の場合は要求なし
|
|
16
19
|
* @param callback 要求があったときに実行する処理。要求の payload を受け取る
|
|
17
20
|
* @example
|
|
18
21
|
* // 呼び出す側
|
|
@@ -23,5 +26,5 @@ import { ExecutionRequest } from "../useExecutionAt/types.cjs";
|
|
|
23
26
|
* instance.undo(payload);
|
|
24
27
|
* });
|
|
25
28
|
*/
|
|
26
|
-
declare function useExecutionEffect<P = void>(request: ExecutionRequest<P> | undefined, callback: (payload: P | undefined) => void): void;
|
|
29
|
+
declare function useExecutionEffect<P = void>(request: ExecutionRequest<P> | ExecutionMark | undefined, callback: (payload: P | undefined) => void): void;
|
|
27
30
|
export = useExecutionEffect;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { ExecutionRequest } from "../useExecutionAt/types.mjs";
|
|
2
|
+
import { ExecutionMark } from "../useExecutionMark/types.mjs";
|
|
2
3
|
//#region src/hooks/useExecutionEffect/useExecutionEffect.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Execution Request プロパティ(xxxAt)を受け取り、要求があったときに処理を実行するフック
|
|
5
6
|
*
|
|
6
|
-
* `useExecutionAt` と対になる、受け取る側のフック。
|
|
7
|
+
* `useExecutionAt`・`useExecutionMark` と対になる、受け取る側のフック。
|
|
7
8
|
* 命令的なコンポーネントをラップした React のコンポーネントで、プロパティを通じてメソッドを実行する。
|
|
8
9
|
* 処理は画面に表示した後(`useEffect`)に実行する。表示する前に実行する場合は `useExecutionLayoutEffect` を使う。
|
|
9
10
|
*
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
11
|
+
* - 印(`at`、または ExecutionMark の値)が変わったときだけ実行する(`payload` は比べない)
|
|
12
|
+
* - マウントしたときに渡されていた要求は実行しない(マウントしたときの印を基準にする)
|
|
13
|
+
* - 印が `0`(まだ要求していない)や undefined の場合は実行しない
|
|
14
|
+
* - ExecutionMark を受け取った場合、コールバックの payload は undefined
|
|
12
15
|
* - 次のレンダリングまでに複数回要求した場合は、最後の要求だけを実行する
|
|
13
16
|
* - コールバックは最新のものを呼ぶ。参照が変わっても実行しない
|
|
14
17
|
*
|
|
15
|
-
* @param request 受け取った Execution Request
|
|
18
|
+
* @param request 受け取った Execution Request(`useExecutionAt` の値、または payload の無い ExecutionMark)。undefined の場合は要求なし
|
|
16
19
|
* @param callback 要求があったときに実行する処理。要求の payload を受け取る
|
|
17
20
|
* @example
|
|
18
21
|
* // 呼び出す側
|
|
@@ -23,5 +26,5 @@ import { ExecutionRequest } from "../useExecutionAt/types.mjs";
|
|
|
23
26
|
* instance.undo(payload);
|
|
24
27
|
* });
|
|
25
28
|
*/
|
|
26
|
-
export default function useExecutionEffect<P = void>(request: ExecutionRequest<P> | undefined, callback: (payload: P | undefined) => void): void;
|
|
29
|
+
export default function useExecutionEffect<P = void>(request: ExecutionRequest<P> | ExecutionMark | undefined, callback: (payload: P | undefined) => void): void;
|
|
27
30
|
//#endregion
|