import * as React from 'react'; import {withProfiler} from '@sentry/react'; import classNames from 'classnames'; import sentryLoader from 'sentry-images/sentry-loader.svg'; type Props = { overlay?: boolean; dark?: boolean; mini?: boolean; triangle?: boolean; finished?: boolean; relative?: boolean; hideMessage?: boolean; hideSpinner?: boolean; size?: number; className?: string; style?: React.CSSProperties; children?: React.ReactNode; }; function renderLogoSpinner() { return ; } function LoadingIndicator(props: Props) { const { hideMessage, mini, triangle, overlay, dark, children, finished, className, style, relative, size, hideSpinner, } = props; const cx = classNames(className, { overlay, dark, loading: true, mini, triangle, }); const loadingCx = classNames({ relative, 'loading-indicator': true, 'load-complete': finished, }); let loadingStyle = {}; if (size) { loadingStyle = { width: size, height: size, }; } return (
{!hideSpinner && (
{triangle && renderLogoSpinner()} {finished ?
: null}
)} {!hideMessage &&
{children}
}
); } export default withProfiler(LoadingIndicator, { includeUpdates: false, });