export function GenerateReportLoadingModal()

in dashboards-reports/public/components/main/loading_modal/loading_modal.tsx [22:89]


export function GenerateReportLoadingModal(props: { setShowLoading: any }) {
  const { setShowLoading } = props;

  const [isModalVisible, setIsModalVisible] = useState(true);

  const closeModal = () => {
    setIsModalVisible(false);
    setShowLoading(false);
  };
  const showModal = () => setIsModalVisible(true);

  return (
    <div>
      <EuiOverlayMask>
        <EuiModal
          onClose={closeModal}
          style={{ maxWidth: 350, minWidth: 300 }}
          id="downloadInProgressLoadingModal"
        >
          <EuiModalHeader>
            <EuiTitle>
              <EuiText textAlign="right">
                <h2>
                  {i18n.translate(
                    'opensearch.reports.loading.generatingReport',
                    { defaultMessage: 'Generating report' }
                  )}
                </h2>
              </EuiText>
            </EuiTitle>
          </EuiModalHeader>
          <EuiModalBody>
            <EuiText>
              {i18n.translate('opensearch.reports.loading.preparingYourFile', {
                defaultMessage: 'Preparing your file for download.',
              })}
            </EuiText>
            <EuiText>
              {i18n.translate('opensearch.reports.loading.youCanClose', {
                defaultMessage:
                  'You can close this dialog while we continue in the background.',
              })}
            </EuiText>
            <EuiSpacer />
            <EuiFlexGroup justifyContent="center" alignItems="center">
              <EuiFlexItem grow={false}>
                <EuiLoadingSpinner
                  size="xl"
                  style={{ minWidth: 75, minHeight: 75 }}
                />
              </EuiFlexItem>
            </EuiFlexGroup>
            <EuiSpacer size="l" />
            <EuiFlexGroup alignItems="flexEnd" justifyContent="flexEnd">
              <EuiFlexItem grow={false}>
                <EuiButton onClick={closeModal}>
                  {i18n.translate('opensearch.reports.loading.close', {
                    defaultMessage: 'Close',
                  })}
                </EuiButton>
              </EuiFlexItem>
            </EuiFlexGroup>
          </EuiModalBody>
        </EuiModal>
      </EuiOverlayMask>
    </div>
  );
}