Files
Dorod-Sky/skyvern-frontend/src/hooks/useRerender.ts
2025-09-02 16:06:59 -04:00

35 lines
562 B
TypeScript

import { useState } from "react";
/**
* ```tsx
* const { bump, key } = useRerender({ delay: 40, prefix: "my-prefix" });
*
* <div key={key}>...</div>
*
* // somewhere else
* bump();
* ```
*/
const useRerender = ({
delay = 40,
prefix,
}: {
delay?: number;
prefix: string;
}) => {
const [forceRenderKey, setForceRenderKey] = useState(0);
const bump = () => {
setTimeout(() => {
setForceRenderKey((prev) => prev + 1);
}, delay);
};
return {
bump,
key: `${prefix}-${forceRenderKey}`,
};
};
export { useRerender };