import { layoutMixins } from '@/styles/layoutMixins';
import styled, { type AnyStyledComponent, keyframes } from 'styled-components';
// In some strange cases, hiding a spinner on one part of the page causes the linearGradient to
// be hidden on all other instances of the page. An id can be passed in to prevent this.
export const LoadingSpinner: React.FC<{
id?: string;
className?: string;
disabled?: boolean;
}> = ({ id, className, disabled = false }) => {
return (
{!disabled && (
)}
);
};
export const LoadingSpace: React.FC<{ className?: string; id: string }> = ({ className, id }) => (
);
const Styled: Record = {};
Styled.LoadingSpaceContainer = styled.div`
${layoutMixins.centered}
`;
Styled.Spinner = styled.div`
--spinner-width: auto;
line-height: 0;
color: var(--color-text-0);
`;
Styled.LoadingSpinnerSvg = styled.svg`
width: var(--spinner-width);
animation: ${keyframes`
to {
transform: rotate(1turn);
}
`} 1.5s linear infinite;
`;