mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-02-14 18:09:51 +00:00
* Move the code from `ui` directory to `ui-common` * Remove `ui` directory * Rename `ui-common` to `ui` * Fix the UI build * Fix CI
32 lines
757 B
TypeScript
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;
|