UNPKG

@atlaskit/editor-plugin-extension

Version:

editor-plugin-extension plugin for @atlaskit/editor-core

50 lines (49 loc) 1.77 kB
/** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports import { css, jsx } from '@emotion/react'; import { injectIntl } from 'react-intl'; import { messages } from '@atlaskit/editor-common/extensions'; import SectionMessage from '@atlaskit/section-message'; import Spinner from '@atlaskit/spinner'; import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments'; var spinnerWrapperStyles = css({ display: 'flex', justifyContent: 'center', marginTop: "var(--ds-space-800, 64px)" }); var errorWrapperStyles = css({ marginTop: "var(--ds-space-400, 32px)" // Add some padding to the top to make sure we place this below the offline status banner }); var LoadingStateWithErrorHandling = injectIntl(function (props) { if (props.error) { return jsx("div", { css: errorWrapperStyles, "data-testid": "ConfigPanelLoadingError" }, jsx(SectionMessage, { appearance: "error" }, props.intl.formatMessage(messages.panelLoadingError))); } return jsx("div", { css: spinnerWrapperStyles, "data-testid": "ConfigPanelLoading" }, jsx(Spinner, { size: "small", interactionName: "config-panel-spinner" })); }); var LoadingStateWithoutErrorHandling = function LoadingStateWithoutErrorHandling() { return jsx("div", { css: spinnerWrapperStyles, "data-testid": "ConfigPanelLoading" }, jsx(Spinner, { size: "small", interactionName: "config-panel-spinner" })); }; var LoadingState = function LoadingState(props) { return editorExperiment('platform_editor_offline_editing_web', true) ? LoadingStateWithErrorHandling(props) : LoadingStateWithoutErrorHandling(); }; export default LoadingState;