All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.js.import.ImportModal.js Maven / Gradle / Ivy

/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

import ClayButton from '@clayui/button';
import ClayForm from '@clayui/form';
import ClayLabel from '@clayui/label';
import ClayModal, {useModal} from '@clayui/modal';
import ClayProgressBar from '@clayui/progress-bar';
import PropTypes from 'prop-types';
import React from 'react';

import {fetchErrorReportFile, importStatus} from '../BatchPlannerImport';
import Poller from '../Poller';

const ImportModal = ({closeModal, formDataQuerySelector, formImportURL}) => {
	const {
		downloadFile,
		errorMessage,
		externalReferenceCode,
		loading,
		percentage,
		ready,
	} = Poller(
		formDataQuerySelector,
		formImportURL,
		importStatus,
		fetchErrorReportFile
	);
	const {observer, onClose} = useModal({
		onClose: () => {
			closeModal();
		},
	});

	let modalStatus;
	let title;
	let labelType;
	let label;

	if (ready) {
		modalStatus = 'success';
		title = Liferay.Language.get(
			'the-import-process-completed-successfully'
		);
		labelType = 'success';
		label = Liferay.Language.get('completed');
	}
	else if (errorMessage) {
		modalStatus = 'danger';
		title = errorMessage;
		labelType = 'danger';
		label = Liferay.Language.get('failed');
	}
	else {
		modalStatus = 'info';
		title = Liferay.Language.get(
			'data-is-importing.-you-can-safely-close-the-dialog'
		);
		labelType = 'warning';
		label = Liferay.Language.get('running');
	}

	return (
		
			
				{Liferay.Language.get('import-file')}
			

			
				
					
						{title}

						{label}
					

					
				
			

			
						
							{Liferay.Language.get('close')}
						

						{modalStatus === 'danger' &&
							!!externalReferenceCode && (
								
									{Liferay.Language.get(
										'download-error-report'
									)}
								
							)}
					
				}
			/>
		
	);
};

ImportModal.propTypes = {
	formImportURL: PropTypes.string.isRequired,
};

export default ImportModal;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy