@fringeworks/react-utils 0.11.0 → 0.12.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.
Files changed (43) hide show
  1. package/README.ja.md +21 -26
  2. package/README.md +21 -26
  3. package/_internal/_useExecutionHandler.d.cts +2 -1
  4. package/_internal/_useExecutionHandler.d.mts +2 -1
  5. package/hooks/index.d.cts +8 -4
  6. package/hooks/index.d.mts +8 -4
  7. package/hooks/useCombinedRefs/useCombinedRefs.cjs +2 -0
  8. package/hooks/useCombinedRefs/useCombinedRefs.d.cts +3 -1
  9. package/hooks/useCombinedRefs/useCombinedRefs.d.mts +3 -1
  10. package/hooks/useCombinedRefs/useCombinedRefs.mjs +2 -0
  11. package/hooks/useExecutionAt/index.d.cts +2 -2
  12. package/hooks/useExecutionAt/index.d.mts +2 -2
  13. package/hooks/useExecutionAt/types.d.cts +2 -11
  14. package/hooks/useExecutionAt/types.d.mts +2 -11
  15. package/hooks/useExecutionAt/useExecutionAt.cjs +2 -3
  16. package/hooks/useExecutionAt/useExecutionAt.d.cts +2 -3
  17. package/hooks/useExecutionAt/useExecutionAt.d.mts +2 -3
  18. package/hooks/useExecutionAt/useExecutionAt.mjs +2 -3
  19. package/hooks/useExecutionEffect/useExecutionEffect.d.cts +2 -1
  20. package/hooks/useExecutionEffect/useExecutionEffect.d.mts +2 -1
  21. package/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.d.cts +2 -1
  22. package/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.d.mts +2 -1
  23. package/hooks/useExecutionMark/index.d.cts +2 -2
  24. package/hooks/useExecutionMark/index.d.mts +2 -2
  25. package/hooks/useExecutionMark/types.d.cts +1 -9
  26. package/hooks/useExecutionMark/types.d.mts +1 -9
  27. package/index.d.cts +6 -7
  28. package/index.d.mts +6 -7
  29. package/package.json +2 -2
  30. package/types.d.cts +10 -0
  31. package/types.d.mts +10 -0
  32. package/utils/index.d.cts +3 -3
  33. package/utils/index.d.mts +3 -3
  34. package/utils/markAt/index.d.cts +1 -2
  35. package/utils/markAt/index.d.mts +1 -2
  36. package/utils/markAt/markAt.cjs +2 -2
  37. package/utils/markAt/markAt.d.cts +4 -4
  38. package/utils/markAt/markAt.d.mts +4 -4
  39. package/utils/markAt/markAt.mjs +2 -2
  40. package/utils/markAt/types.cjs +0 -1
  41. package/utils/markAt/types.d.cts +0 -6
  42. package/utils/markAt/types.d.mts +0 -6
  43. package/utils/markAt/types.mjs +0 -1
package/README.ja.md CHANGED
@@ -37,7 +37,7 @@ import useLatestRef from '@fringeworks/react-utils/hooks/useLatestRef';
37
37
  | `useChangeLayoutEffect(dependencies, callback)` | `useChangeEffect` の、画面に表示する前に実行する版 |
38
38
  | `useCombinedRefs(...refs)` | 複数の ref にまとめて値を渡す callback ref を返す |
39
39
  | `useConstant(factory)` | 初回のレンダリングで作った値を、アンマウントされるまで返し続ける |
40
- | `useExecutionAt(options?)` | Execution Request プロパティに渡す値と、実行のきっかけになる関数を返す |
40
+ | `useExecutionAt()` | Execution Request プロパティに渡す値と、実行のきっかけになる関数を返す |
41
41
  | `useExecutionEffect(request, callback)` | Execution Request プロパティで要求されたときに、処理を実行する |
42
42
  | `useExecutionLayoutEffect(request, callback)` | `useExecutionEffect` の、画面に表示する前に実行する版 |
43
43
  | `useExecutionMark()` | payload の無い Execution Request と、要求する関数を返す |
@@ -120,12 +120,15 @@ useChangeLayoutEffect(
120
120
  ### `useCombinedRefs`
121
121
 
122
122
  ```ts
123
- useCombinedRefs<T = unknown>(...refs: Ref<T>[]): RefCallback<T>
123
+ useCombinedRefs<T = unknown>(
124
+ ...refs: (Ref<T> | undefined)[]
125
+ ): RefCallback<T>
124
126
  ```
125
127
 
126
128
  渡したすべての ref に同じ値を設定する callback ref を返します。`forwardRef` で受け取った ref と、コンポーネント内の ref を1つのエレメントに渡したい場合に使います。
127
129
 
128
130
  - 返す関数の参照は、渡す ref がすべて変わらない限り変わりません。
131
+ - `null`・`undefined` の ref は無視します。省略できる `ref` のプロパティをそのまま渡せます。
129
132
  - 渡す ref の数は、レンダリングをまたいで変えられません。変わった場合はエラーになります。
130
133
  - React 19 では、返す callback ref がクリーンアップ関数を返します。callback ref が返したクリーンアップ関数はそのまま呼び、返さなかった callback ref には `null` を渡します。
131
134
 
@@ -150,9 +153,7 @@ useConstant<T>(factory: () => T): T
150
153
  ### `useExecutionAt`
151
154
 
152
155
  ```ts
153
- useExecutionAt<P = void>(
154
- options?: UseExecutionAtOptions<P>,
155
- ): UseExecutionAtResult<P>
156
+ useExecutionAt<P = void>(): UseExecutionAtResult<P>
156
157
  ```
157
158
 
158
159
  命令的な API を持つ部品をラップしたコンポーネントで、プロパティを通じてそのメソッドを実行するための hook です。Execution Request プロパティ(`undoAt` のように `At` で終わるプロパティ)に渡す値と、実行のきっかけになる関数を返します。
@@ -167,10 +168,6 @@ const [undoAt, undo] = useExecutionAt<string>();
167
168
  <WrappedImperativeComponent undoAt={undoAt} />
168
169
  ```
169
170
 
170
- | オプション | 型 | 説明 |
171
- | ----------------- | --- | --------------------------------- |
172
- | `initialPayload?` | `P` | 初期状態の `request.payload` の値 |
173
-
174
171
  ### `useExecutionEffect`
175
172
 
176
173
  ```ts
@@ -435,7 +432,7 @@ HOC の `displayName` などに使う、コンポーネントの名前を返し
435
432
  ### `markAt`
436
433
 
437
434
  ```ts
438
- markAt(): MarkAtResult
435
+ markAt(): ExecutionMark
439
436
  ```
440
437
 
441
438
  呼び出すたびに増加する値を返します。値は `1` から始まり、重複しません。`useExecutionAt` の `request.at` と、`useExecutionMark` の値に使っています。
@@ -478,22 +475,20 @@ const items = transformElement(children, (element, index) => (
478
475
 
479
476
  ### 型
480
477
 
481
- | 型 | 説明 |
482
- | ---------------------------- | -------------------------------------------------------------------------------- |
483
- | `AppliedProps<P, Ds>` | `applyDefaultProps` の戻り値の型 |
484
- | `ChangeDependencies` | `xxxOn` のプロパティに渡す依存の値(1段目のプロパティを `Object.is` で比べる) |
485
- | `CSSPropertiesWithVars` | CSS 変数(`--name`)を書ける `CSSProperties` |
486
- | `ExecutionFunction<P>` | `useExecutionAt` が返す、実行のきっかけになる関数 |
487
- | `ExecutionRequest<P>` | `useExecutionAt` が返す、Execution Request プロパティに渡す値(`at`・`payload`) |
488
- | `ExtendableProps` | `extendElement` に渡せるエレメントの props(`className`・`style`) |
489
- | `LatestRef<T>` | `useLatestRef` が返す参照 |
490
- | `ExecutionMark` | payload の無い Execution Request(実体は数値。要求のたびに異なる値にする) |
491
- | `MarkAtResult` | `markAt` の戻り値の型 |
492
- | `SkippedDefaults` | `applyDefaultProps` でスキップされる値(`null`・`undefined`・`false`) |
493
- | `UseExecutionAtOptions<P>` | `useExecutionAt` のオプション |
494
- | `UseExecutionAtResult<P>` | `useExecutionAt` の戻り値の型 |
495
- | `UseExecutionMarkResult` | `useExecutionMark` の戻り値の型 |
496
- | `UsePreviousValueOptions<T>` | `usePreviousValue` のオプション |
478
+ | 型 | 説明 |
479
+ | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
480
+ | `AppliedProps<P, Ds>` | `applyDefaultProps` の戻り値の型 |
481
+ | `ChangeDependencies` | `xxxOn` のプロパティに渡す依存の値(1段目のプロパティを `Object.is` で比べる) |
482
+ | `CSSPropertiesWithVars` | CSS 変数(`--name`)を書ける `CSSProperties` |
483
+ | `ExecutionFunction<P>` | `useExecutionAt` が返す、実行のきっかけになる関数 |
484
+ | `ExecutionRequest<P>` | `useExecutionAt` が返す、Execution Request プロパティに渡す値(`at`・`payload`) |
485
+ | `ExtendableProps` | `extendElement` に渡せるエレメントの props(`className`・`style`) |
486
+ | `LatestRef<T>` | `useLatestRef` が返す参照 |
487
+ | `ExecutionMark` | 実行の印。payload の無い Execution Request で、`markAt` の戻り値と `ExecutionRequest` の `at` の型(実体は数値。要求のたびに異なる値にする) |
488
+ | `SkippedDefaults` | `applyDefaultProps` でスキップされる値(`null`・`undefined`・`false`) |
489
+ | `UseExecutionAtResult<P>` | `useExecutionAt` の戻り値の型 |
490
+ | `UseExecutionMarkResult` | `useExecutionMark` の戻り値の型 |
491
+ | `UsePreviousValueOptions<T>` | `usePreviousValue` のオプション |
497
492
 
498
493
  ## ライセンス
499
494
 
package/README.md CHANGED
@@ -37,7 +37,7 @@ import useLatestRef from '@fringeworks/react-utils/hooks/useLatestRef';
37
37
  | `useChangeLayoutEffect(dependencies, callback)` | A version of `useChangeEffect` that runs before the browser paints |
38
38
  | `useCombinedRefs(...refs)` | Returns a callback ref that passes the value to all the given refs |
39
39
  | `useConstant(factory)` | Keeps returning the value created on the first render until unmount |
40
- | `useExecutionAt(options?)` | Returns a value for an Execution Request prop and a function that triggers it |
40
+ | `useExecutionAt()` | Returns a value for an Execution Request prop and a function that triggers it |
41
41
  | `useExecutionEffect(request, callback)` | Runs an operation when it is requested through an Execution Request prop |
42
42
  | `useExecutionLayoutEffect(request, callback)` | A version of `useExecutionEffect` that runs before the browser paints |
43
43
  | `useExecutionMark()` | Returns an Execution Request without a payload and a function that makes a request |
@@ -120,12 +120,15 @@ A version of `useChangeEffect` that runs the operation before the browser paints
120
120
  ### `useCombinedRefs`
121
121
 
122
122
  ```ts
123
- useCombinedRefs<T = unknown>(...refs: Ref<T>[]): RefCallback<T>
123
+ useCombinedRefs<T = unknown>(
124
+ ...refs: (Ref<T> | undefined)[]
125
+ ): RefCallback<T>
124
126
  ```
125
127
 
126
128
  Returns a callback ref that sets the same value to all the given refs. Use it to pass both a ref received through `forwardRef` and a ref inside the component to a single element.
127
129
 
128
130
  - The returned function keeps the same reference as long as none of the given refs change.
131
+ - `null` / `undefined` refs are ignored, so an optional `ref` prop can be passed as is.
129
132
  - The number of refs must not change across renders. An error is thrown if it does.
130
133
  - In React 19, the returned callback ref returns a cleanup function. It calls the cleanup functions returned by callback refs as they are, and passes `null` to the callback refs that returned none.
131
134
 
@@ -150,9 +153,7 @@ Calls `factory` on the first render and keeps returning the created value until
150
153
  ### `useExecutionAt`
151
154
 
152
155
  ```ts
153
- useExecutionAt<P = void>(
154
- options?: UseExecutionAtOptions<P>,
155
- ): UseExecutionAtResult<P>
156
+ useExecutionAt<P = void>(): UseExecutionAtResult<P>
156
157
  ```
157
158
 
158
159
  A hook for components that wrap a part with an imperative API, letting you call its methods through props. It returns a value to pass to an Execution Request prop (a prop ending with `At`, such as `undoAt`) and a function that triggers it.
@@ -167,10 +168,6 @@ const [undoAt, undo] = useExecutionAt<string>();
167
168
  <WrappedImperativeComponent undoAt={undoAt} />
168
169
  ```
169
170
 
170
- | Option | Type | Description |
171
- | ----------------- | ---- | -------------------------------------- |
172
- | `initialPayload?` | `P` | The initial value of `request.payload` |
173
-
174
171
  ### `useExecutionEffect`
175
172
 
176
173
  ```ts
@@ -435,7 +432,7 @@ Returns the name of a component, for use in an HOC's `displayName` and the like.
435
432
  ### `markAt`
436
433
 
437
434
  ```ts
438
- markAt(): MarkAtResult
435
+ markAt(): ExecutionMark
439
436
  ```
440
437
 
441
438
  Returns a value that increases on every call. Values start from `1` and are never duplicated. `useExecutionAt` uses it for `request.at`, and `useExecutionMark` uses it for its value.
@@ -478,22 +475,20 @@ const items = transformElement(children, (element, index) => (
478
475
 
479
476
  ### Types
480
477
 
481
- | Type | Description |
482
- | ---------------------------- | ------------------------------------------------------------------------------------------------------ |
483
- | `AppliedProps<P, Ds>` | The return type of `applyDefaultProps` |
484
- | `ChangeDependencies` | The dependency values passed to an `xxxOn` prop (first-level properties are compared with `Object.is`) |
485
- | `CSSPropertiesWithVars` | `CSSProperties` that also accepts CSS variables (`--name`) |
486
- | `ExecutionFunction<P>` | The trigger function returned by `useExecutionAt` |
487
- | `ExecutionRequest<P>` | The value for an Execution Request prop returned by `useExecutionAt` (`at`, `payload`) |
488
- | `ExtendableProps` | The props of an element that `extendElement` accepts (`className`, `style`) |
489
- | `LatestRef<T>` | The ref returned by `useLatestRef` |
490
- | `ExecutionMark` | An Execution Request without a payload (a number; make it different on every request) |
491
- | `MarkAtResult` | The return type of `markAt` |
492
- | `SkippedDefaults` | Values skipped by `applyDefaultProps` (`null`, `undefined`, `false`) |
493
- | `UseExecutionAtOptions<P>` | The options of `useExecutionAt` |
494
- | `UseExecutionAtResult<P>` | The return type of `useExecutionAt` |
495
- | `UseExecutionMarkResult` | The return type of `useExecutionMark` |
496
- | `UsePreviousValueOptions<T>` | The options of `usePreviousValue` |
478
+ | Type | Description |
479
+ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
480
+ | `AppliedProps<P, Ds>` | The return type of `applyDefaultProps` |
481
+ | `ChangeDependencies` | The dependency values passed to an `xxxOn` prop (first-level properties are compared with `Object.is`) |
482
+ | `CSSPropertiesWithVars` | `CSSProperties` that also accepts CSS variables (`--name`) |
483
+ | `ExecutionFunction<P>` | The trigger function returned by `useExecutionAt` |
484
+ | `ExecutionRequest<P>` | The value for an Execution Request prop returned by `useExecutionAt` (`at`, `payload`) |
485
+ | `ExtendableProps` | The props of an element that `extendElement` accepts (`className`, `style`) |
486
+ | `LatestRef<T>` | The ref returned by `useLatestRef` |
487
+ | `ExecutionMark` | An execution mark: an Execution Request without a payload, also the return type of `markAt` and the type of `ExecutionRequest`'s `at` (a number; make it different on every request) |
488
+ | `SkippedDefaults` | Values skipped by `applyDefaultProps` (`null`, `undefined`, `false`) |
489
+ | `UseExecutionAtResult<P>` | The return type of `useExecutionAt` |
490
+ | `UseExecutionMarkResult` | The return type of `useExecutionMark` |
491
+ | `UsePreviousValueOptions<T>` | The options of `usePreviousValue` |
497
492
 
498
493
  ## License
499
494
 
@@ -1,5 +1,6 @@
1
+ import { ExecutionMark } from "../types.cjs";
1
2
  import { ExecutionRequest } from "../hooks/useExecutionAt/types.cjs";
2
- import { ExecutionMark } from "../hooks/useExecutionMark/types.cjs";
3
+ import "../hooks/useExecutionAt/index.cjs";
3
4
  //#region src/_internal/_useExecutionHandler.d.ts
4
5
  /**
5
6
  * Execution Request を受け取り、要求があれば処理を実行する関数を返すフック
@@ -1,5 +1,6 @@
1
+ import { ExecutionMark } from "../types.mjs";
1
2
  import { ExecutionRequest } from "../hooks/useExecutionAt/types.mjs";
2
- import { ExecutionMark } from "../hooks/useExecutionMark/types.mjs";
3
+ import "../hooks/useExecutionAt/index.mjs";
3
4
  //#region src/_internal/_useExecutionHandler.d.ts
4
5
  /**
5
6
  * Execution Request を受け取り、要求があれば処理を実行する関数を返すフック
package/hooks/index.d.cts CHANGED
@@ -1,15 +1,19 @@
1
1
  import { ChangeDependencies } from "./useChangeEffect/types.cjs";
2
- import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./useExecutionAt/types.cjs";
2
+ import { ExecutionFunction, ExecutionRequest, UseExecutionAtResult } from "./useExecutionAt/types.cjs";
3
3
  import useExecutionAt from "./useExecutionAt/useExecutionAt.cjs";
4
- import { ExecutionMark, UseExecutionMarkResult } from "./useExecutionMark/types.cjs";
5
- import useExecutionMark from "./useExecutionMark/useExecutionMark.cjs";
4
+ import "./useExecutionAt/index.cjs";
6
5
  import useChangeEffect from "./useChangeEffect/useChangeEffect.cjs";
7
6
  import useChangeLayoutEffect from "./useChangeLayoutEffect/useChangeLayoutEffect.cjs";
8
7
  import useCombinedRefs from "./useCombinedRefs/useCombinedRefs.cjs";
9
8
  import "./useCombinedRefs/index.cjs";
10
9
  import useConstant from "./useConstant/useConstant.cjs";
11
10
  import useExecutionEffect from "./useExecutionEffect/useExecutionEffect.cjs";
11
+ import "./useExecutionEffect/index.cjs";
12
12
  import useExecutionLayoutEffect from "./useExecutionLayoutEffect/useExecutionLayoutEffect.cjs";
13
+ import "./useExecutionLayoutEffect/index.cjs";
14
+ import { UseExecutionMarkResult } from "./useExecutionMark/types.cjs";
15
+ import useExecutionMark from "./useExecutionMark/useExecutionMark.cjs";
16
+ import "./useExecutionMark/index.cjs";
13
17
  import useIsHydrated from "./useIsHydrated/useIsHydrated.cjs";
14
18
  import useIsMounted from "./useIsMounted/useIsMounted.cjs";
15
19
  import { LatestRef } from "./useLatestRef/types.cjs";
@@ -19,4 +23,4 @@ import usePreviousValue from "./usePreviousValue/usePreviousValue.cjs";
19
23
  import useRerender from "./useRerender/useRerender.cjs";
20
24
  import useStableCallback from "./useStableCallback/useStableCallback.cjs";
21
25
  import useStableLength from "./useStableLength/useStableLength.cjs";
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 };
26
+ export { type ChangeDependencies, type ExecutionFunction, type ExecutionRequest, type LatestRef, 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,15 +1,19 @@
1
1
  import { ChangeDependencies } from "./useChangeEffect/types.mjs";
2
- import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./useExecutionAt/types.mjs";
2
+ import { ExecutionFunction, ExecutionRequest, UseExecutionAtResult } from "./useExecutionAt/types.mjs";
3
3
  import useExecutionAt from "./useExecutionAt/useExecutionAt.mjs";
4
- import { ExecutionMark, UseExecutionMarkResult } from "./useExecutionMark/types.mjs";
5
- import useExecutionMark from "./useExecutionMark/useExecutionMark.mjs";
4
+ import "./useExecutionAt/index.mjs";
6
5
  import useChangeEffect from "./useChangeEffect/useChangeEffect.mjs";
7
6
  import useChangeLayoutEffect from "./useChangeLayoutEffect/useChangeLayoutEffect.mjs";
8
7
  import useCombinedRefs from "./useCombinedRefs/useCombinedRefs.mjs";
9
8
  import "./useCombinedRefs/index.mjs";
10
9
  import useConstant from "./useConstant/useConstant.mjs";
11
10
  import useExecutionEffect from "./useExecutionEffect/useExecutionEffect.mjs";
11
+ import "./useExecutionEffect/index.mjs";
12
12
  import useExecutionLayoutEffect from "./useExecutionLayoutEffect/useExecutionLayoutEffect.mjs";
13
+ import "./useExecutionLayoutEffect/index.mjs";
14
+ import { UseExecutionMarkResult } from "./useExecutionMark/types.mjs";
15
+ import useExecutionMark from "./useExecutionMark/useExecutionMark.mjs";
16
+ import "./useExecutionMark/index.mjs";
13
17
  import useIsHydrated from "./useIsHydrated/useIsHydrated.mjs";
14
18
  import useIsMounted from "./useIsMounted/useIsMounted.mjs";
15
19
  import { LatestRef } from "./useLatestRef/types.mjs";
@@ -19,4 +23,4 @@ import usePreviousValue from "./usePreviousValue/usePreviousValue.mjs";
19
23
  import useRerender from "./useRerender/useRerender.mjs";
20
24
  import useStableCallback from "./useStableCallback/useStableCallback.mjs";
21
25
  import useStableLength from "./useStableLength/useStableLength.mjs";
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 };
26
+ export { type ChangeDependencies, type ExecutionFunction, type ExecutionRequest, type LatestRef, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
@@ -7,6 +7,8 @@ let react = require("react");
7
7
  //#region src/hooks/useCombinedRefs/useCombinedRefs.ts
8
8
  /**
9
9
  * 複数のrefに纏めて値を渡すことができるRefCallbackを取得する
10
+ *
11
+ * null・undefined のrefは無視する(省略できる `ref` のプロパティをそのまま渡せる)
10
12
  * @param refs
11
13
  * @returns
12
14
  */
@@ -2,8 +2,10 @@ import { Ref, RefCallback } from "react";
2
2
  //#region src/hooks/useCombinedRefs/useCombinedRefs.d.ts
3
3
  /**
4
4
  * 複数のrefに纏めて値を渡すことができるRefCallbackを取得する
5
+ *
6
+ * null・undefined のrefは無視する(省略できる `ref` のプロパティをそのまま渡せる)
5
7
  * @param refs
6
8
  * @returns
7
9
  */
8
- declare function useCombinedRefs<T = unknown>(...refs: Ref<T>[]): RefCallback<T>;
10
+ declare function useCombinedRefs<T = unknown>(...refs: (Ref<T> | undefined)[]): RefCallback<T>;
9
11
  export = useCombinedRefs;
@@ -2,8 +2,10 @@ import { Ref, RefCallback } from "react";
2
2
  //#region src/hooks/useCombinedRefs/useCombinedRefs.d.ts
3
3
  /**
4
4
  * 複数のrefに纏めて値を渡すことができるRefCallbackを取得する
5
+ *
6
+ * null・undefined のrefは無視する(省略できる `ref` のプロパティをそのまま渡せる)
5
7
  * @param refs
6
8
  * @returns
7
9
  */
8
- export default function useCombinedRefs<T = unknown>(...refs: Ref<T>[]): RefCallback<T>;
10
+ export default function useCombinedRefs<T = unknown>(...refs: (Ref<T> | undefined)[]): RefCallback<T>;
9
11
  //#endregion
@@ -6,6 +6,8 @@ import { useCallback } from "react";
6
6
  //#region src/hooks/useCombinedRefs/useCombinedRefs.ts
7
7
  /**
8
8
  * 複数のrefに纏めて値を渡すことができるRefCallbackを取得する
9
+ *
10
+ * null・undefined のrefは無視する(省略できる `ref` のプロパティをそのまま渡せる)
9
11
  * @param refs
10
12
  * @returns
11
13
  */
@@ -1,3 +1,3 @@
1
- import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./types.cjs";
1
+ import { ExecutionFunction, ExecutionRequest, UseExecutionAtResult } from "./types.cjs";
2
2
  import useExecutionAt from "./useExecutionAt.cjs";
3
- export { type ExecutionFunction, type ExecutionRequest, type UseExecutionAtOptions, type UseExecutionAtResult, useExecutionAt as default, useExecutionAt };
3
+ export { type ExecutionFunction, type ExecutionRequest, type UseExecutionAtResult, useExecutionAt as default, useExecutionAt };
@@ -1,3 +1,3 @@
1
- import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./types.mjs";
1
+ import { ExecutionFunction, ExecutionRequest, UseExecutionAtResult } from "./types.mjs";
2
2
  import useExecutionAt from "./useExecutionAt.mjs";
3
- export { type ExecutionFunction, type ExecutionRequest, type UseExecutionAtOptions, type UseExecutionAtResult, useExecutionAt as default, useExecutionAt };
3
+ export { type ExecutionFunction, type ExecutionRequest, type UseExecutionAtResult, useExecutionAt as default, useExecutionAt };
@@ -1,14 +1,5 @@
1
- import { MarkAtResult } from "../../utils/markAt/types.cjs";
1
+ import { ExecutionMark } from "../../types.cjs";
2
2
  //#region src/hooks/useExecutionAt/types.d.ts
3
- /**
4
- * オプション
5
- */
6
- export type UseExecutionAtOptions<P = void> = {
7
- /**
8
- * ペイロードの初期値
9
- */
10
- initialPayload?: P;
11
- };
12
3
  /**
13
4
  * 戻り値
14
5
  */
@@ -20,7 +11,7 @@ export type ExecutionRequest<P = void> = {
20
11
  /**
21
12
  * 実行される度に増加する値
22
13
  */
23
- readonly at: MarkAtResult;
14
+ readonly at: ExecutionMark;
24
15
  /**
25
16
  * ペイロード
26
17
  * 初期値や実行時の引数を省略した場合は undefined
@@ -1,14 +1,5 @@
1
- import { MarkAtResult } from "../../utils/markAt/types.mjs";
1
+ import { ExecutionMark } from "../../types.mjs";
2
2
  //#region src/hooks/useExecutionAt/types.d.ts
3
- /**
4
- * オプション
5
- */
6
- export type UseExecutionAtOptions<P = void> = {
7
- /**
8
- * ペイロードの初期値
9
- */
10
- initialPayload?: P;
11
- };
12
3
  /**
13
4
  * 戻り値
14
5
  */
@@ -20,7 +11,7 @@ export type ExecutionRequest<P = void> = {
20
11
  /**
21
12
  * 実行される度に増加する値
22
13
  */
23
- readonly at: MarkAtResult;
14
+ readonly at: ExecutionMark;
24
15
  /**
25
16
  * ペイロード
26
17
  * 初期値や実行時の引数を省略した場合は undefined
@@ -10,7 +10,6 @@ let react = require("react");
10
10
  * プロパティを通じて命令的コンポーネントのメソッドを実行する仕組みを提供する。
11
11
  *
12
12
  * @template P 実行時にExecution Requestプロパティに渡すペイロードの型
13
- * @param options オプション
14
13
  * @returns [request, execute]
15
14
  * - `request`: 現在のリクエスト
16
15
  * - `execute`: 新しいリクエストを発行する関数
@@ -22,10 +21,10 @@ let react = require("react");
22
21
  * // 3. 処理を実行するコンポーネント
23
22
  * <WrappedImperativeComponent undoAt={undoAt} />
24
23
  */
25
- function useExecutionAt(options = {}) {
24
+ function useExecutionAt() {
26
25
  const [executionRequest, setExecutionRequest] = (0, react.useState)({
27
26
  at: 0,
28
- payload: options.initialPayload
27
+ payload: void 0
29
28
  });
30
29
  return [executionRequest, (0, react.useCallback)((payload) => {
31
30
  setExecutionRequest({
@@ -1,4 +1,4 @@
1
- import { UseExecutionAtOptions, UseExecutionAtResult } from "./types.cjs";
1
+ import { UseExecutionAtResult } from "./types.cjs";
2
2
  //#region src/hooks/useExecutionAt/useExecutionAt.d.ts
3
3
  /**
4
4
  * Execution Requestプロパティ(xxxxxAt)へ渡す値と、\
@@ -7,7 +7,6 @@ import { UseExecutionAtOptions, UseExecutionAtResult } from "./types.cjs";
7
7
  * プロパティを通じて命令的コンポーネントのメソッドを実行する仕組みを提供する。
8
8
  *
9
9
  * @template P 実行時にExecution Requestプロパティに渡すペイロードの型
10
- * @param options オプション
11
10
  * @returns [request, execute]
12
11
  * - `request`: 現在のリクエスト
13
12
  * - `execute`: 新しいリクエストを発行する関数
@@ -19,5 +18,5 @@ import { UseExecutionAtOptions, UseExecutionAtResult } from "./types.cjs";
19
18
  * // 3. 処理を実行するコンポーネント
20
19
  * <WrappedImperativeComponent undoAt={undoAt} />
21
20
  */
22
- declare function useExecutionAt<P = void>(options?: UseExecutionAtOptions<P>): UseExecutionAtResult<P>;
21
+ declare function useExecutionAt<P = void>(): UseExecutionAtResult<P>;
23
22
  export = useExecutionAt;
@@ -1,4 +1,4 @@
1
- import { UseExecutionAtOptions, UseExecutionAtResult } from "./types.mjs";
1
+ import { UseExecutionAtResult } from "./types.mjs";
2
2
  //#region src/hooks/useExecutionAt/useExecutionAt.d.ts
3
3
  /**
4
4
  * Execution Requestプロパティ(xxxxxAt)へ渡す値と、\
@@ -7,7 +7,6 @@ import { UseExecutionAtOptions, UseExecutionAtResult } from "./types.mjs";
7
7
  * プロパティを通じて命令的コンポーネントのメソッドを実行する仕組みを提供する。
8
8
  *
9
9
  * @template P 実行時にExecution Requestプロパティに渡すペイロードの型
10
- * @param options オプション
11
10
  * @returns [request, execute]
12
11
  * - `request`: 現在のリクエスト
13
12
  * - `execute`: 新しいリクエストを発行する関数
@@ -19,5 +18,5 @@ import { UseExecutionAtOptions, UseExecutionAtResult } from "./types.mjs";
19
18
  * // 3. 処理を実行するコンポーネント
20
19
  * <WrappedImperativeComponent undoAt={undoAt} />
21
20
  */
22
- export default function useExecutionAt<P = void>(options?: UseExecutionAtOptions<P>): UseExecutionAtResult<P>;
21
+ export default function useExecutionAt<P = void>(): UseExecutionAtResult<P>;
23
22
  //#endregion
@@ -9,7 +9,6 @@ import { useCallback, useState } from "react";
9
9
  * プロパティを通じて命令的コンポーネントのメソッドを実行する仕組みを提供する。
10
10
  *
11
11
  * @template P 実行時にExecution Requestプロパティに渡すペイロードの型
12
- * @param options オプション
13
12
  * @returns [request, execute]
14
13
  * - `request`: 現在のリクエスト
15
14
  * - `execute`: 新しいリクエストを発行する関数
@@ -21,10 +20,10 @@ import { useCallback, useState } from "react";
21
20
  * // 3. 処理を実行するコンポーネント
22
21
  * <WrappedImperativeComponent undoAt={undoAt} />
23
22
  */
24
- function useExecutionAt(options = {}) {
23
+ function useExecutionAt() {
25
24
  const [executionRequest, setExecutionRequest] = useState({
26
25
  at: 0,
27
- payload: options.initialPayload
26
+ payload: void 0
28
27
  });
29
28
  return [executionRequest, useCallback((payload) => {
30
29
  setExecutionRequest({
@@ -1,5 +1,6 @@
1
+ import { ExecutionMark } from "../../types.cjs";
1
2
  import { ExecutionRequest } from "../useExecutionAt/types.cjs";
2
- import { ExecutionMark } from "../useExecutionMark/types.cjs";
3
+ import "../useExecutionAt/index.cjs";
3
4
  //#region src/hooks/useExecutionEffect/useExecutionEffect.d.ts
4
5
  /**
5
6
  * Execution Request プロパティ(xxxAt)を受け取り、要求があったときに処理を実行するフック
@@ -1,5 +1,6 @@
1
+ import { ExecutionMark } from "../../types.mjs";
1
2
  import { ExecutionRequest } from "../useExecutionAt/types.mjs";
2
- import { ExecutionMark } from "../useExecutionMark/types.mjs";
3
+ import "../useExecutionAt/index.mjs";
3
4
  //#region src/hooks/useExecutionEffect/useExecutionEffect.d.ts
4
5
  /**
5
6
  * Execution Request プロパティ(xxxAt)を受け取り、要求があったときに処理を実行するフック
@@ -1,5 +1,6 @@
1
+ import { ExecutionMark } from "../../types.cjs";
1
2
  import { ExecutionRequest } from "../useExecutionAt/types.cjs";
2
- import { ExecutionMark } from "../useExecutionMark/types.cjs";
3
+ import "../useExecutionAt/index.cjs";
3
4
  //#region src/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.d.ts
4
5
  /**
5
6
  * Execution Request プロパティ(xxxAt)を受け取り、要求があったときに画面に表示する前に処理を実行するフック
@@ -1,5 +1,6 @@
1
+ import { ExecutionMark } from "../../types.mjs";
1
2
  import { ExecutionRequest } from "../useExecutionAt/types.mjs";
2
- import { ExecutionMark } from "../useExecutionMark/types.mjs";
3
+ import "../useExecutionAt/index.mjs";
3
4
  //#region src/hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.d.ts
4
5
  /**
5
6
  * Execution Request プロパティ(xxxAt)を受け取り、要求があったときに画面に表示する前に処理を実行するフック
@@ -1,3 +1,3 @@
1
- import { ExecutionMark, UseExecutionMarkResult } from "./types.cjs";
1
+ import { UseExecutionMarkResult } from "./types.cjs";
2
2
  import useExecutionMark from "./useExecutionMark.cjs";
3
- export { type ExecutionMark, type UseExecutionMarkResult, useExecutionMark as default, useExecutionMark };
3
+ export { type UseExecutionMarkResult, useExecutionMark as default, useExecutionMark };
@@ -1,3 +1,3 @@
1
- import { ExecutionMark, UseExecutionMarkResult } from "./types.mjs";
1
+ import { UseExecutionMarkResult } from "./types.mjs";
2
2
  import useExecutionMark from "./useExecutionMark.mjs";
3
- export { type ExecutionMark, type UseExecutionMarkResult, useExecutionMark as default, useExecutionMark };
3
+ export { type UseExecutionMarkResult, useExecutionMark as default, useExecutionMark };
@@ -1,13 +1,5 @@
1
+ import { ExecutionMark } from "../../types.cjs";
1
2
  //#region src/hooks/useExecutionMark/types.d.ts
2
- /**
3
- * payload の無い Execution Request(実行の印)
4
- *
5
- * 実体は数値。Execution Request プロパティ(xxxAt)に渡し、値が変わるたびに1回の要求とみなす。
6
- * **要求のたびに、前回と異なる値にすること**(同じ値を続けて渡しても、2回目は要求とみなさない)。
7
- * `markAt()` で作ると、呼ぶたびに異なる値になる。`useExecutionMark` を使うと、`markAt()` で作った値と、要求する関数を受け取れる。
8
- * `0` は「まだ要求していない」を表し、実行しない。
9
- */
10
- export type ExecutionMark = number;
11
3
  /**
12
4
  * useExecutionMark の戻り値
13
5
  */
@@ -1,13 +1,5 @@
1
+ import { ExecutionMark } from "../../types.mjs";
1
2
  //#region src/hooks/useExecutionMark/types.d.ts
2
- /**
3
- * payload の無い Execution Request(実行の印)
4
- *
5
- * 実体は数値。Execution Request プロパティ(xxxAt)に渡し、値が変わるたびに1回の要求とみなす。
6
- * **要求のたびに、前回と異なる値にすること**(同じ値を続けて渡しても、2回目は要求とみなさない)。
7
- * `markAt()` で作ると、呼ぶたびに異なる値になる。`useExecutionMark` を使うと、`markAt()` で作った値と、要求する関数を受け取れる。
8
- * `0` は「まだ要求していない」を表し、実行しない。
9
- */
10
- export type ExecutionMark = number;
11
3
  /**
12
4
  * useExecutionMark の戻り値
13
5
  */
package/index.d.cts CHANGED
@@ -1,16 +1,15 @@
1
1
  import { ChangeDependencies } from "./hooks/useChangeEffect/types.cjs";
2
- import { MarkAtResult } from "./utils/markAt/types.cjs";
3
- import markAt from "./utils/markAt/markAt.cjs";
4
- import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./hooks/useExecutionAt/types.cjs";
2
+ import { CSSPropertiesWithVars, ExecutionMark } from "./types.cjs";
3
+ import { ExecutionFunction, ExecutionRequest, UseExecutionAtResult } from "./hooks/useExecutionAt/types.cjs";
5
4
  import useExecutionAt from "./hooks/useExecutionAt/useExecutionAt.cjs";
6
- import { ExecutionMark, UseExecutionMarkResult } from "./hooks/useExecutionMark/types.cjs";
7
- import useExecutionMark from "./hooks/useExecutionMark/useExecutionMark.cjs";
8
5
  import useChangeEffect from "./hooks/useChangeEffect/useChangeEffect.cjs";
9
6
  import useChangeLayoutEffect from "./hooks/useChangeLayoutEffect/useChangeLayoutEffect.cjs";
10
7
  import useCombinedRefs from "./hooks/useCombinedRefs/useCombinedRefs.cjs";
11
8
  import useConstant from "./hooks/useConstant/useConstant.cjs";
12
9
  import useExecutionEffect from "./hooks/useExecutionEffect/useExecutionEffect.cjs";
13
10
  import useExecutionLayoutEffect from "./hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.cjs";
11
+ import { UseExecutionMarkResult } from "./hooks/useExecutionMark/types.cjs";
12
+ import useExecutionMark from "./hooks/useExecutionMark/useExecutionMark.cjs";
14
13
  import useIsHydrated from "./hooks/useIsHydrated/useIsHydrated.cjs";
15
14
  import useIsMounted from "./hooks/useIsMounted/useIsMounted.cjs";
16
15
  import { LatestRef } from "./hooks/useLatestRef/types.cjs";
@@ -21,7 +20,6 @@ import useRerender from "./hooks/useRerender/useRerender.cjs";
21
20
  import useStableCallback from "./hooks/useStableCallback/useStableCallback.cjs";
22
21
  import useStableLength from "./hooks/useStableLength/useStableLength.cjs";
23
22
  import "./hooks/index.cjs";
24
- import { CSSPropertiesWithVars } from "./types.cjs";
25
23
  import { AppliedProps, SkippedDefaults } from "./utils/applyDefaultProps/types.cjs";
26
24
  import applyDefaultProps from "./utils/applyDefaultProps/applyDefaultProps.cjs";
27
25
  import ensureComponent from "./utils/ensureComponent/ensureComponent.cjs";
@@ -30,8 +28,9 @@ import extendElement from "./utils/extendElement/extendElement.cjs";
30
28
  import forEachContent from "./utils/forEachContent/forEachContent.cjs";
31
29
  import forEachElement from "./utils/forEachElement/forEachElement.cjs";
32
30
  import getComponentName from "./utils/getComponentName/getComponentName.cjs";
31
+ import markAt from "./utils/markAt/markAt.cjs";
33
32
  import setRefCurrent from "./utils/setRefCurrent/setRefCurrent.cjs";
34
33
  import transformContent from "./utils/transformContent/transformContent.cjs";
35
34
  import transformElement from "./utils/transformElement/transformElement.cjs";
36
35
  import "./utils/index.cjs";
37
- export { type AppliedProps, type CSSPropertiesWithVars, type ChangeDependencies, type ExecutionFunction, type ExecutionMark, type ExecutionRequest, type ExtendableProps, type LatestRef, type MarkAtResult, type SkippedDefaults, type UseExecutionAtOptions, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
36
+ export { type AppliedProps, type CSSPropertiesWithVars, type ChangeDependencies, type ExecutionFunction, type ExecutionMark, type ExecutionRequest, type ExtendableProps, type LatestRef, type SkippedDefaults, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
package/index.d.mts CHANGED
@@ -1,16 +1,15 @@
1
1
  import { ChangeDependencies } from "./hooks/useChangeEffect/types.mjs";
2
- import { MarkAtResult } from "./utils/markAt/types.mjs";
3
- import markAt from "./utils/markAt/markAt.mjs";
4
- import { ExecutionFunction, ExecutionRequest, UseExecutionAtOptions, UseExecutionAtResult } from "./hooks/useExecutionAt/types.mjs";
2
+ import { CSSPropertiesWithVars, ExecutionMark } from "./types.mjs";
3
+ import { ExecutionFunction, ExecutionRequest, UseExecutionAtResult } from "./hooks/useExecutionAt/types.mjs";
5
4
  import useExecutionAt from "./hooks/useExecutionAt/useExecutionAt.mjs";
6
- import { ExecutionMark, UseExecutionMarkResult } from "./hooks/useExecutionMark/types.mjs";
7
- import useExecutionMark from "./hooks/useExecutionMark/useExecutionMark.mjs";
8
5
  import useChangeEffect from "./hooks/useChangeEffect/useChangeEffect.mjs";
9
6
  import useChangeLayoutEffect from "./hooks/useChangeLayoutEffect/useChangeLayoutEffect.mjs";
10
7
  import useCombinedRefs from "./hooks/useCombinedRefs/useCombinedRefs.mjs";
11
8
  import useConstant from "./hooks/useConstant/useConstant.mjs";
12
9
  import useExecutionEffect from "./hooks/useExecutionEffect/useExecutionEffect.mjs";
13
10
  import useExecutionLayoutEffect from "./hooks/useExecutionLayoutEffect/useExecutionLayoutEffect.mjs";
11
+ import { UseExecutionMarkResult } from "./hooks/useExecutionMark/types.mjs";
12
+ import useExecutionMark from "./hooks/useExecutionMark/useExecutionMark.mjs";
14
13
  import useIsHydrated from "./hooks/useIsHydrated/useIsHydrated.mjs";
15
14
  import useIsMounted from "./hooks/useIsMounted/useIsMounted.mjs";
16
15
  import { LatestRef } from "./hooks/useLatestRef/types.mjs";
@@ -21,7 +20,6 @@ import useRerender from "./hooks/useRerender/useRerender.mjs";
21
20
  import useStableCallback from "./hooks/useStableCallback/useStableCallback.mjs";
22
21
  import useStableLength from "./hooks/useStableLength/useStableLength.mjs";
23
22
  import "./hooks/index.mjs";
24
- import { CSSPropertiesWithVars } from "./types.mjs";
25
23
  import { AppliedProps, SkippedDefaults } from "./utils/applyDefaultProps/types.mjs";
26
24
  import applyDefaultProps from "./utils/applyDefaultProps/applyDefaultProps.mjs";
27
25
  import ensureComponent from "./utils/ensureComponent/ensureComponent.mjs";
@@ -30,8 +28,9 @@ import extendElement from "./utils/extendElement/extendElement.mjs";
30
28
  import forEachContent from "./utils/forEachContent/forEachContent.mjs";
31
29
  import forEachElement from "./utils/forEachElement/forEachElement.mjs";
32
30
  import getComponentName from "./utils/getComponentName/getComponentName.mjs";
31
+ import markAt from "./utils/markAt/markAt.mjs";
33
32
  import setRefCurrent from "./utils/setRefCurrent/setRefCurrent.mjs";
34
33
  import transformContent from "./utils/transformContent/transformContent.mjs";
35
34
  import transformElement from "./utils/transformElement/transformElement.mjs";
36
35
  import "./utils/index.mjs";
37
- export { type AppliedProps, type CSSPropertiesWithVars, type ChangeDependencies, type ExecutionFunction, type ExecutionMark, type ExecutionRequest, type ExtendableProps, type LatestRef, type MarkAtResult, type SkippedDefaults, type UseExecutionAtOptions, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
36
+ export { type AppliedProps, type CSSPropertiesWithVars, type ChangeDependencies, type ExecutionFunction, type ExecutionMark, type ExecutionRequest, type ExtendableProps, type LatestRef, type SkippedDefaults, type UseExecutionAtResult, type UseExecutionMarkResult, type UsePreviousValueOptions, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement, useChangeEffect, useChangeLayoutEffect, useCombinedRefs, useConstant, useExecutionAt, useExecutionEffect, useExecutionLayoutEffect, useExecutionMark, useIsHydrated, useIsMounted, useLatestRef, usePreviousValue, useRerender, useStableCallback, useStableLength };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fringeworks/react-utils",
3
- "version": "0.11.0",
4
- "description": "A library some will find handy, providing utilities for React.",
3
+ "version": "0.12.0",
4
+ "description": "A library some will find handy, offering hooks and functions for building React components.",
5
5
  "keywords": [
6
6
  "react"
7
7
  ],
package/types.d.cts CHANGED
@@ -6,4 +6,14 @@ import { CSSProperties } from "react";
6
6
  export type CSSPropertiesWithVars = CSSProperties & {
7
7
  [key: `--${string}`]: string | number | undefined;
8
8
  };
9
+ /**
10
+ * 実行の印(payload の無い Execution Request)
11
+ *
12
+ * 実体は数値。Execution Request プロパティ(xxxAt)に渡し、値が変わるたびに1回の要求とみなす。
13
+ * `ExecutionRequest` の `at` もこの型。
14
+ * **要求のたびに、前回と異なる値にすること**(同じ値を続けて渡しても、2回目は要求とみなさない)。
15
+ * `markAt()` で作ると、呼ぶたびに異なる値になる。`useExecutionMark` を使うと、`markAt()` で作った値と、要求する関数を受け取れる。
16
+ * `0` は「まだ要求していない」を表し、実行しない。
17
+ */
18
+ export type ExecutionMark = number;
9
19
  //#endregion
package/types.d.mts CHANGED
@@ -6,4 +6,14 @@ import { CSSProperties } from "react";
6
6
  export type CSSPropertiesWithVars = CSSProperties & {
7
7
  [key: `--${string}`]: string | number | undefined;
8
8
  };
9
+ /**
10
+ * 実行の印(payload の無い Execution Request)
11
+ *
12
+ * 実体は数値。Execution Request プロパティ(xxxAt)に渡し、値が変わるたびに1回の要求とみなす。
13
+ * `ExecutionRequest` の `at` もこの型。
14
+ * **要求のたびに、前回と異なる値にすること**(同じ値を続けて渡しても、2回目は要求とみなさない)。
15
+ * `markAt()` で作ると、呼ぶたびに異なる値になる。`useExecutionMark` を使うと、`markAt()` で作った値と、要求する関数を受け取れる。
16
+ * `0` は「まだ要求していない」を表し、実行しない。
17
+ */
18
+ export type ExecutionMark = number;
9
19
  //#endregion
package/utils/index.d.cts CHANGED
@@ -1,5 +1,3 @@
1
- import { MarkAtResult } from "./markAt/types.cjs";
2
- import markAt from "./markAt/markAt.cjs";
3
1
  import { AppliedProps, SkippedDefaults } from "./applyDefaultProps/types.cjs";
4
2
  import applyDefaultProps from "./applyDefaultProps/applyDefaultProps.cjs";
5
3
  import ensureComponent from "./ensureComponent/ensureComponent.cjs";
@@ -13,10 +11,12 @@ import forEachElement from "./forEachElement/forEachElement.cjs";
13
11
  import "./forEachElement/index.cjs";
14
12
  import getComponentName from "./getComponentName/getComponentName.cjs";
15
13
  import "./getComponentName/index.cjs";
14
+ import markAt from "./markAt/markAt.cjs";
15
+ import "./markAt/index.cjs";
16
16
  import setRefCurrent from "./setRefCurrent/setRefCurrent.cjs";
17
17
  import "./setRefCurrent/index.cjs";
18
18
  import transformContent from "./transformContent/transformContent.cjs";
19
19
  import "./transformContent/index.cjs";
20
20
  import transformElement from "./transformElement/transformElement.cjs";
21
21
  import "./transformElement/index.cjs";
22
- export { type AppliedProps, type ExtendableProps, type MarkAtResult, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };
22
+ export { type AppliedProps, type ExtendableProps, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };
package/utils/index.d.mts CHANGED
@@ -1,5 +1,3 @@
1
- import { MarkAtResult } from "./markAt/types.mjs";
2
- import markAt from "./markAt/markAt.mjs";
3
1
  import { AppliedProps, SkippedDefaults } from "./applyDefaultProps/types.mjs";
4
2
  import applyDefaultProps from "./applyDefaultProps/applyDefaultProps.mjs";
5
3
  import ensureComponent from "./ensureComponent/ensureComponent.mjs";
@@ -13,10 +11,12 @@ import forEachElement from "./forEachElement/forEachElement.mjs";
13
11
  import "./forEachElement/index.mjs";
14
12
  import getComponentName from "./getComponentName/getComponentName.mjs";
15
13
  import "./getComponentName/index.mjs";
14
+ import markAt from "./markAt/markAt.mjs";
15
+ import "./markAt/index.mjs";
16
16
  import setRefCurrent from "./setRefCurrent/setRefCurrent.mjs";
17
17
  import "./setRefCurrent/index.mjs";
18
18
  import transformContent from "./transformContent/transformContent.mjs";
19
19
  import "./transformContent/index.mjs";
20
20
  import transformElement from "./transformElement/transformElement.mjs";
21
21
  import "./transformElement/index.mjs";
22
- export { type AppliedProps, type ExtendableProps, type MarkAtResult, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };
22
+ export { type AppliedProps, type ExtendableProps, type SkippedDefaults, applyDefaultProps, ensureComponent, extendElement, forEachContent, forEachElement, getComponentName, markAt, setRefCurrent, transformContent, transformElement };
@@ -1,3 +1,2 @@
1
- import { MarkAtResult } from "./types.cjs";
2
1
  import markAt from "./markAt.cjs";
3
- export { type MarkAtResult, markAt as default, markAt };
2
+ export { markAt as default, markAt };
@@ -1,3 +1,2 @@
1
- import { MarkAtResult } from "./types.mjs";
2
1
  import markAt from "./markAt.mjs";
3
- export { type MarkAtResult, markAt as default, markAt };
2
+ export { markAt as default, markAt };
@@ -2,8 +2,8 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
2
2
  //#region src/utils/markAt/markAt.ts
3
3
  let count = 0;
4
4
  /**
5
- * 呼び出す度に単調増加する一意な値を返す
6
- * @returns
5
+ * 呼び出す度に単調増加する一意な値(実行の印)を返す
6
+ * @returns 1 から始まり、呼ぶたびに増える値
7
7
  */
8
8
  function markAt() {
9
9
  count += 1;
@@ -1,8 +1,8 @@
1
- import { MarkAtResult } from "./types.cjs";
1
+ import { ExecutionMark } from "../../types.cjs";
2
2
  //#region src/utils/markAt/markAt.d.ts
3
3
  /**
4
- * 呼び出す度に単調増加する一意な値を返す
5
- * @returns
4
+ * 呼び出す度に単調増加する一意な値(実行の印)を返す
5
+ * @returns 1 から始まり、呼ぶたびに増える値
6
6
  */
7
- declare function markAt(): MarkAtResult;
7
+ declare function markAt(): ExecutionMark;
8
8
  export = markAt;
@@ -1,8 +1,8 @@
1
- import { MarkAtResult } from "./types.mjs";
1
+ import { ExecutionMark } from "../../types.mjs";
2
2
  //#region src/utils/markAt/markAt.d.ts
3
3
  /**
4
- * 呼び出す度に単調増加する一意な値を返す
5
- * @returns
4
+ * 呼び出す度に単調増加する一意な値(実行の印)を返す
5
+ * @returns 1 から始まり、呼ぶたびに増える値
6
6
  */
7
- export default function markAt(): MarkAtResult;
7
+ export default function markAt(): ExecutionMark;
8
8
  //#endregion
@@ -1,8 +1,8 @@
1
1
  //#region src/utils/markAt/markAt.ts
2
2
  let count = 0;
3
3
  /**
4
- * 呼び出す度に単調増加する一意な値を返す
5
- * @returns
4
+ * 呼び出す度に単調増加する一意な値(実行の印)を返す
5
+ * @returns 1 から始まり、呼ぶたびに増える値
6
6
  */
7
7
  function markAt() {
8
8
  count += 1;
@@ -1 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -1,6 +0,0 @@
1
- //#region src/utils/markAt/types.d.ts
2
- /**
3
- * 一意な値
4
- */
5
- export type MarkAtResult = number;
6
- //#endregion
@@ -1,6 +0,0 @@
1
- //#region src/utils/markAt/types.d.ts
2
- /**
3
- * 一意な値
4
- */
5
- export type MarkAtResult = number;
6
- //#endregion
@@ -1 +0,0 @@
1
- export { };