Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/resources/scripts/components/elements/SpinnerOverlay.tsx
7461 views
1
import React from 'react';
2
import Spinner, { SpinnerSize } from '@/components/elements/Spinner';
3
import Fade from '@/components/elements/Fade';
4
import tw from 'twin.macro';
5
6
interface Props {
7
visible: boolean;
8
fixed?: boolean;
9
size?: SpinnerSize;
10
backgroundOpacity?: number;
11
}
12
13
const SpinnerOverlay: React.FC<Props> = ({ size, fixed, visible, backgroundOpacity, children }) => (
14
<Fade timeout={150} in={visible} unmountOnExit>
15
<div
16
css={[
17
tw`top-0 left-0 flex items-center justify-center w-full h-full rounded flex-col z-40`,
18
!fixed ? tw`absolute` : tw`fixed`,
19
]}
20
style={{ background: `rgba(0, 0, 0, ${backgroundOpacity || 0.45})` }}
21
>
22
<Spinner size={size} />
23
{children && (typeof children === 'string' ? <p css={tw`mt-4 text-neutral-400`}>{children}</p> : children)}
24
</div>
25
</Fade>
26
);
27
28
export default SpinnerOverlay;
29
30