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