fix accordion rebder bug from flippable component (#3203)

This commit is contained in:
Jonathan Dobson
2025-08-15 08:53:29 -04:00
committed by GitHub
parent 40d104c193
commit f2e33c69bc
10 changed files with 100 additions and 16 deletions

View 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 };