// Copyright 2022 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import { useEffect, useState } from 'react'; export function useValueAtFixedRate(value: T, rate: number): T { const [currentValue, setCurrentValue] = useState(value); useEffect(() => { const timeout = setTimeout(() => { setCurrentValue(value); }, rate); return () => { clearTimeout(timeout); }; }, [value, rate]); return currentValue; }