diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-11-02 15:36:21 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-11-11 18:15:27 +0100 |
| commit | 655be4404630a20ae4ca40c4af84afcc2e63557b (patch) | |
| tree | b69cf241cfb4df7042f50be6a56b7c5f4414edd0 /src/utils/hooks/use-input-autofocus.tsx | |
| parent | e2daf7f81789c54b23ade72bd164492e7304d375 (diff) | |
refactor(hooks): replace useInputAutofocus with useAutofocus hook
* extract setTimeout logic using useTimeout
* change condition to be a function
* return a ref
Diffstat (limited to 'src/utils/hooks/use-input-autofocus.tsx')
| -rw-r--r-- | src/utils/hooks/use-input-autofocus.tsx | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/utils/hooks/use-input-autofocus.tsx b/src/utils/hooks/use-input-autofocus.tsx deleted file mode 100644 index d0fcd06..0000000 --- a/src/utils/hooks/use-input-autofocus.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { RefObject, useEffect } from 'react'; - -export type UseInputAutofocusProps = { - /** - * The focus condition. True give focus to the input. - */ - condition: boolean; - /** - * An optional delay. Default: 0. - */ - delay?: number; - /** - * A reference to the input element. - */ - ref: RefObject<HTMLInputElement>; -}; - -/** - * Set focus on an input with an optional delay. - */ -export const useInputAutofocus = ({ - condition, - delay = 0, - ref, -}: UseInputAutofocusProps) => { - useEffect(() => { - const timer = setTimeout(() => { - if (ref.current && condition) { - ref.current.focus(); - } - }, delay); - - return () => { - clearTimeout(timer); - }; - }, [condition, delay, ref]); -}; |
