30 lines
593 B
TypeScript
30 lines
593 B
TypeScript
import React from "react";
|
|
|
|
type Params = {
|
|
timeout?: number;
|
|
};
|
|
|
|
let timeout: any;
|
|
|
|
export default function twuiUseReady(params?: Params) {
|
|
const [ready, setReady] = React.useState(false);
|
|
|
|
const finalTimeout = params?.timeout || 300;
|
|
|
|
React.useEffect(() => {
|
|
requestAnimationFrame(() => {
|
|
window.clearTimeout(timeout);
|
|
|
|
timeout = setTimeout(() => {
|
|
setReady(true);
|
|
}, finalTimeout);
|
|
});
|
|
|
|
return function () {
|
|
window.clearTimeout(timeout);
|
|
};
|
|
}, []);
|
|
|
|
return { ready };
|
|
}
|