UNPKG

@sap-ux/ui-components

Version:

SAP UI Components Library

73 lines 2.4 kB
import React from 'react'; import { Spinner, Overlay, SpinnerSize } from '@fluentui/react'; import './UILoader.scss'; export { SpinnerSize as UISpinnerSize }; /** * UILoader component * based on https://developer.microsoft.com/en-us/fluentui#/controls/web/spinner * * @exports * @class UILoader * @extends {React.Component<ISpinnerProps, {}>} */ export class UILoader extends React.Component { /** * Initializes component properties. * * @param {UILoaderProps} props */ constructor(props) { super(props); } /** * @returns {JSX.Element} */ render() { const { blockDOM, delayed } = this.props; const loaderStyles = () => ({ ...{ root: { ...(blockDOM && { height: '100%' }) }, circle: [ { borderColor: 'var(--vscode-progressBar-background) var(--vscode-terminal-ansiBrightWhite) var(--vscode-terminal-ansiBrightWhite)', borderWidth: 2, zIndex: 1 } ], label: { color: 'var(--vscode-foreground)', fontSize: 14, fontWeight: 'bold', zIndex: 1 } } }); const spinner = React.createElement(Spinner, { ...this.props, styles: loaderStyles }); if (!blockDOM) { return spinner; } else { const overlayStyles = () => ({ ...{ root: { backgroundColor: 'transparent', selectors: { '&:before': { content: '""', position: 'absolute', inset: 0, backgroundColor: 'var(--vscode-editor-background)', opacity: 0.6, zIndex: 1 } } } } }); return (React.createElement(Overlay, { className: `ui-loader-blocker${delayed ? ' ui-loader--delayed' : ''}`, styles: overlayStyles }, spinner)); } } } //# sourceMappingURL=UILoader.js.map