Spaces:
Runtime error
Runtime error
| /* | |
| * Copyright (c) Meta Platforms, Inc. and affiliates. | |
| * | |
| * This source code is licensed under the Chameleon License found in the | |
| * LICENSE file in the root directory of this source tree. | |
| */ | |
| import { useEffect, useRef } from "react"; | |
| export function useInterval(callback, delay) { | |
| const savedCallback = useRef<() => void>(); | |
| // Remember the latest callback. | |
| useEffect(() => { | |
| savedCallback.current = callback; | |
| }, [callback]); | |
| // Set up the interval. | |
| useEffect(() => { | |
| function tick() { | |
| if (savedCallback && savedCallback.current) { | |
| savedCallback.current(); | |
| } | |
| } | |
| if (delay !== null) { | |
| const id = setInterval(tick, delay); | |
| return () => clearInterval(id); | |
| } | |
| }, [delay]); | |
| } | |