From f910eb2540e624dc26cfdd4f51b83ab1b0302166 Mon Sep 17 00:00:00 2001 From: wo-o29 Date: Sat, 13 Sep 2025 16:08:20 +0900 Subject: [PATCH 1/6] docs: add generic type --- src/hooks/useRefEffect/ko/useRefEffect.md | 10 +++++----- src/hooks/useRefEffect/useRefEffect.md | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/hooks/useRefEffect/ko/useRefEffect.md b/src/hooks/useRefEffect/ko/useRefEffect.md index 036d7e0c..1ca412ea 100644 --- a/src/hooks/useRefEffect/ko/useRefEffect.md +++ b/src/hooks/useRefEffect/ko/useRefEffect.md @@ -5,10 +5,10 @@ ## 인터페이스 ```ts -function useRefEffect( - callback: (element: Element) => CleanupCallback | void, +function useRefEffect( + callback: (element: E) => CleanupCallback | void, deps: DependencyList -): (element: Element | null) => void; +): (element: E | null) => void; ``` ### 파라미터 @@ -16,7 +16,7 @@ function useRefEffect( @@ -31,7 +31,7 @@ function useRefEffect( diff --git a/src/hooks/useRefEffect/useRefEffect.md b/src/hooks/useRefEffect/useRefEffect.md index 78abbff6..b7e7a2e7 100644 --- a/src/hooks/useRefEffect/useRefEffect.md +++ b/src/hooks/useRefEffect/useRefEffect.md @@ -5,10 +5,10 @@ ## Interface ```ts -function useRefEffect( - callback: (element: Element) => CleanupCallback | void, +function useRefEffect( + callback: (element: E) => CleanupCallback | void, deps: DependencyList -): (element: Element | null) => void; +): (element: E | null) => void; ``` ### Parameters @@ -16,7 +16,7 @@ function useRefEffect( @@ -31,7 +31,7 @@ function useRefEffect( From a8ecfc4599c9845e883cdf250a3d830f61c2a8b2 Mon Sep 17 00:00:00 2001 From: wo-o29 Date: Sat, 13 Sep 2025 16:08:53 +0900 Subject: [PATCH 2/6] refactor: strict null check to effect callback --- src/hooks/useRefEffect/useRefEffect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/useRefEffect/useRefEffect.ts b/src/hooks/useRefEffect/useRefEffect.ts index 065331d9..82f20db5 100644 --- a/src/hooks/useRefEffect/useRefEffect.ts +++ b/src/hooks/useRefEffect/useRefEffect.ts @@ -41,7 +41,7 @@ export function useRefEffect( cleanupCallbackRef.current(); cleanupCallbackRef.current = () => {}; - if (element == null) { + if (element === null) { return; } From bfe58619e1fe26130da2fc9ebd547377faef8006 Mon Sep 17 00:00:00 2001 From: wo-o29 Date: Wed, 4 Mar 2026 00:54:40 +0900 Subject: [PATCH 3/6] refactor: use loose null check for element in useRefEffect --- src/hooks/useRefEffect/useRefEffect.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/useRefEffect/useRefEffect.ts b/src/hooks/useRefEffect/useRefEffect.ts index 82f20db5..065331d9 100644 --- a/src/hooks/useRefEffect/useRefEffect.ts +++ b/src/hooks/useRefEffect/useRefEffect.ts @@ -41,7 +41,7 @@ export function useRefEffect( cleanupCallbackRef.current(); cleanupCallbackRef.current = () => {}; - if (element === null) { + if (element == null) { return; } From 8e5459605bd88afb49b0e8ec75fbfcccde48e868 Mon Sep 17 00:00:00 2001 From: wo-o29 Date: Wed, 4 Mar 2026 00:58:02 +0900 Subject: [PATCH 4/6] refactor: update type parameter from Element to RefElement in useRefEffect --- src/hooks/useRefEffect/ko/useRefEffect.md | 10 +++++----- src/hooks/useRefEffect/useRefEffect.md | 10 +++++----- src/hooks/useRefEffect/useRefEffect.ts | 12 ++++++------ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/hooks/useRefEffect/ko/useRefEffect.md b/src/hooks/useRefEffect/ko/useRefEffect.md index 1ca412ea..b058db4c 100644 --- a/src/hooks/useRefEffect/ko/useRefEffect.md +++ b/src/hooks/useRefEffect/ko/useRefEffect.md @@ -5,10 +5,10 @@ ## 인터페이스 ```ts -function useRefEffect( - callback: (element: E) => CleanupCallback | void, +function useRefEffect( + callback: (element: RefElement) => CleanupCallback | void, deps: DependencyList -): (element: E | null) => void; +): (element: RefElement | null) => void; ``` ### 파라미터 @@ -16,7 +16,7 @@ function useRefEffect( @@ -31,7 +31,7 @@ function useRefEffect( diff --git a/src/hooks/useRefEffect/useRefEffect.md b/src/hooks/useRefEffect/useRefEffect.md index b7e7a2e7..62c1725c 100644 --- a/src/hooks/useRefEffect/useRefEffect.md +++ b/src/hooks/useRefEffect/useRefEffect.md @@ -5,10 +5,10 @@ ## Interface ```ts -function useRefEffect( - callback: (element: E) => CleanupCallback | void, +function useRefEffect( + callback: (element: RefElement) => CleanupCallback | void, deps: DependencyList -): (element: E | null) => void; +): (element: RefElement | null) => void; ``` ### Parameters @@ -16,7 +16,7 @@ function useRefEffect( @@ -31,7 +31,7 @@ function useRefEffect( diff --git a/src/hooks/useRefEffect/useRefEffect.ts b/src/hooks/useRefEffect/useRefEffect.ts index 065331d9..2a67cded 100644 --- a/src/hooks/useRefEffect/useRefEffect.ts +++ b/src/hooks/useRefEffect/useRefEffect.ts @@ -9,10 +9,10 @@ export type CleanupCallback = () => void; * `useRefEffect` is a React hook that helps you set a reference to a specific DOM element and execute a callback whenever the element changes. * This hook calls a cleanup function whenever the element changes to prevent memory leaks. * - * @param {(element: Element) => CleanupCallback | void} callback - A callback function that is executed when the element is set. This function can return a cleanup function. + * @param {(element: RefElement) => CleanupCallback | void} callback - A callback function that is executed when the element is set. This function can return a cleanup function. * @param {DependencyList} deps - An array of dependencies that define when the callback should be re-executed. The `callback` is re-executed whenever the `deps` change. * - * @returns {(element: Element | null) => void} A function to set the element. Pass this function to the `ref` attribute, and the `callback` will be called whenever the element changes. + * @returns {(element: RefElement | null) => void} A function to set the element. Pass this function to the `ref` attribute, and the `callback` will be called whenever the element changes. * * @example * import { useRefEffect } from 'react-simplikit'; @@ -29,15 +29,15 @@ export type CleanupCallback = () => void; * return
Basic Example
; * } */ -export function useRefEffect( - callback: (element: Element) => CleanupCallback | void, +export function useRefEffect( + callback: (element: RefElement) => CleanupCallback | void, deps: DependencyList -): (element: Element | null) => void { +): (element: RefElement | null) => void { const preservedCallback = usePreservedCallback(callback); const cleanupCallbackRef = useRef(() => {}); const effect = useCallback( - (element: Element | null) => { + (element: RefElement | null) => { cleanupCallbackRef.current(); cleanupCallbackRef.current = () => {}; From 3e34b87247b4c22ba172a9595221222ed30ca4a4 Mon Sep 17 00:00:00 2001 From: wo-o29 Date: Wed, 4 Mar 2026 01:08:09 +0900 Subject: [PATCH 5/6] docs: Add generic type support to useRefEffect interface --- .changeset/tiny-banks-sort.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tiny-banks-sort.md diff --git a/.changeset/tiny-banks-sort.md b/.changeset/tiny-banks-sort.md new file mode 100644 index 00000000..95564d92 --- /dev/null +++ b/.changeset/tiny-banks-sort.md @@ -0,0 +1,5 @@ +--- +'react-simplikit': minor +--- + +docs: Add generic type support to useRefEffect interface From 1f1d360d202dcc04ce2a320ac40e665128804baa Mon Sep 17 00:00:00 2001 From: wo-o29 Date: Wed, 4 Mar 2026 01:12:58 +0900 Subject: [PATCH 6/6] docs: Add generic type support to useRefEffect interface --- .changeset/{tiny-banks-sort.md => hip-shoes-show.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .changeset/{tiny-banks-sort.md => hip-shoes-show.md} (72%) diff --git a/.changeset/tiny-banks-sort.md b/.changeset/hip-shoes-show.md similarity index 72% rename from .changeset/tiny-banks-sort.md rename to .changeset/hip-shoes-show.md index 95564d92..4edab412 100644 --- a/.changeset/tiny-banks-sort.md +++ b/.changeset/hip-shoes-show.md @@ -1,5 +1,5 @@ --- -'react-simplikit': minor +'react-simplikit': patch --- docs: Add generic type support to useRefEffect interface