Files
kubeshark/ui/src/components/UI/LoadingOverlay/LoadingOverlay.tsx
M. Mert Yildiran 2a35abd4e0 🔨 Move the code from ui directory to ui-common (#1242)
* Move the code from `ui` directory to `ui-common`

* Remove `ui` directory

* Rename `ui-common` to `ui`

* Fix the UI build

* Fix CI
2022-11-23 01:20:27 +03:00

32 lines
757 B
TypeScript

import React, {useEffect, useState} from "react";
import style from './LoadingOverlay.module.sass';
const SpinnerShowDelayMs = 350;
interface LoadingOverlayProps {
delay?: number
}
const LoadingOverlay: React.FC<LoadingOverlayProps> = ({delay}) => {
const [isVisible, setIsVisible] = useState(false);
// @ts-ignore
useEffect(() => {
let isRelevant = true;
setTimeout(() => {
if(isRelevant)
setIsVisible(true);
}, delay || SpinnerShowDelayMs);
return () => isRelevant = false;
}, [delay]);
return <div className={style.loadingOverlayContainer} hidden={!isVisible}>
<div className={style.loadingOverlaySpinner}/>
</div>
};
export default LoadingOverlay;