
META-INF.resources.js.components.ModalAddObjectLayout.tsx 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 {ClayModalProvider, useModal} from '@clayui/modal';
import {Observer} from '@clayui/modal/lib/types';
import React, {useEffect, useState} from 'react';
import ModalBasicWithFieldName from './ModalBasicWithFieldName';
interface IProps extends React.HTMLAttributes {
apiURL: string;
observer: Observer;
onClose: () => void;
}
const ModalWithProvider: React.FC<
{children?: React.ReactNode | undefined} & IProps
> = ({apiURL}) => {
const [visibleModal, setVisibleModal] = useState(false);
const {observer, onClose} = useModal({
onClose: () => setVisibleModal(false),
});
useEffect(() => {
const openModal = () => setVisibleModal(true);
Liferay.on('addObjectLayout', openModal);
return () => {
Liferay.detach('addObjectLayout', openModal);
};
}, []);
return (
{visibleModal && (
)}
);
};
export default ModalWithProvider;
© 2015 - 2025 Weber Informatics LLC | Privacy Policy