fix accordion rebder bug from flippable component (#3203)
This commit is contained in:
34
skyvern-frontend/src/hooks/useRerender.ts
Normal file
34
skyvern-frontend/src/hooks/useRerender.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
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(`${prefix}-0`);
|
||||
|
||||
const bump = () => {
|
||||
setTimeout(() => {
|
||||
setForceRenderKey((prev) => `${prefix}-${prev + 1}`);
|
||||
}, delay);
|
||||
};
|
||||
|
||||
return {
|
||||
bump,
|
||||
key: forceRenderKey,
|
||||
};
|
||||
};
|
||||
|
||||
export { useRerender };
|
||||
Reference in New Issue
Block a user