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

META-INF.resources.page_editor.app.components.PublishButton.js Maven / Gradle / Ivy

The newest version!
/**
 * 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 PropTypes from 'prop-types';
import React, {useState} from 'react';

import {config} from '../config/index';
import useCheckFormsValidity from '../utils/useCheckFormsValidity';
import {FormValidationModal} from './FormValidationModal';

export default function PublishButton({canPublish, formRef, label, onPublish}) {
	const checkFormsValidity = useCheckFormsValidity();

	const [openFormValidationModal, setOpenFormValidationModal] =
		useState(false);

	const submitURL =
		config.singleSegmentsExperienceMode &&
		config.saveVariantSegmentsExperienceURL
			? config.saveVariantSegmentsExperienceURL
			: config.publishURL;

	return (
		<>
			
{ checkFormsValidity().then((valid) => { if (valid) { onPublish(); } else { setOpenFormValidationModal(true); } }); }} size="sm" > {label}
{openFormValidationModal && ( setOpenFormValidationModal(false)} onPublish={onPublish} /> )} ); } PublishButton.propTypes = { canPublish: PropTypes.bool, formRef: PropTypes.object, label: PropTypes.string, onPublish: PropTypes.func, };




© 2015 - 2025 Weber Informatics LLC | Privacy Policy