Skip to content

Commit b1f5de3

Browse files
committed
refactor: normalize delay config
1 parent d1486a0 commit b1f5de3

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

src/hooks/useDelayState.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,21 @@ export default function useDelayState<T>(
3535

3636
const setDelayValue = useEvent<SetDelayState<T>>(
3737
(nextValue, immediatelyOrDelay) => {
38+
const delayConfig = immediatelyOrDelay || { frame: 1 };
3839
cancelPending();
3940

40-
if (immediatelyOrDelay === true) {
41+
if (delayConfig === true) {
4142
setValue(nextValue);
42-
} else if (
43-
typeof immediatelyOrDelay === 'object' &&
44-
'ms' in immediatelyOrDelay
45-
) {
43+
} else if ('ms' in delayConfig) {
4644
delayRef.current = [
4745
false,
48-
window.setTimeout(() => setValue(nextValue), immediatelyOrDelay.ms),
46+
window.setTimeout(() => setValue(nextValue), delayConfig.ms),
4947
];
5048
} else {
51-
const frame =
52-
typeof immediatelyOrDelay === 'object'
53-
? immediatelyOrDelay.frame
54-
: undefined;
55-
delayRef.current = [true, raf(() => setValue(nextValue), frame)];
49+
delayRef.current = [
50+
true,
51+
raf(() => setValue(nextValue), delayConfig.frame),
52+
];
5653
}
5754
},
5855
);

0 commit comments

Comments
 (0)