Files
Dorod-Sky/skyvern-frontend/src/hooks/useRerender.ts

35 lines
562 B
TypeScript
Raw Normal View History

import { useState } from "react";
/**
* ```tsx
2025-09-02 16:06:59 -04:00
* 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;
}) => {
2025-09-02 16:06:59 -04:00
const [forceRenderKey, setForceRenderKey] = useState(0);
const bump = () => {
setTimeout(() => {
2025-09-02 16:06:59 -04:00
setForceRenderKey((prev) => prev + 1);
}, delay);
};
return {
bump,
2025-09-02 16:06:59 -04:00
key: `${prefix}-${forceRenderKey}`,
};
};
export { useRerender };