
META-INF.resources.js.components.ObjectRelationship.EditObjectRelationship.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 {
API,
Card,
SidePanelForm,
openToast,
saveAndReload,
} from '@liferay/object-js-components-web';
import {ILearnResourceContext} from 'frontend-js-components-web';
import React, {FormEvent, useState} from 'react';
import {EditObjectRelationshipContent} from './EditObjectRelationshipContent';
import {useObjectRelationshipForm} from './useObjectRelationshipForm';
interface EditObjectRelationshipProps {
baseResourceURL: string;
hasUpdateObjectDefinitionPermission: boolean;
learnResources: ILearnResourceContext;
objectDefinitionExternalReferenceCode: string;
objectRelationship: ObjectRelationship;
objectRelationshipDeletionTypes: LabelValueObject[];
parameterRequired: boolean;
restContextPath: string;
}
export default function EditObjectRelationship({
baseResourceURL,
hasUpdateObjectDefinitionPermission,
learnResources,
objectDefinitionExternalReferenceCode,
objectRelationship: initialValues,
objectRelationshipDeletionTypes,
parameterRequired,
restContextPath,
}: EditObjectRelationshipProps) {
const [submitError, setSubmitError] = useState(null);
const {errors, handleChange, handleValidate, setValues, values} =
useObjectRelationshipForm({
initialValues,
onSubmit: () => {},
parameterRequired,
});
const onSubmit = async (
objectRelationship: Partial = values
) => {
try {
await API.putObjectRelationship(objectRelationship);
saveAndReload();
openToast({
message: Liferay.Language.get(
'the-object-relationship-was-updated-successfully'
),
});
}
catch (error: unknown) {
const {message} = error as Error;
if (!Liferay.FeatureFlags['LPD-34594']) {
openToast({message, type: 'danger'});
}
else {
setSubmitError(message);
}
}
};
const handleSubmit = (event: FormEvent) => {
event.preventDefault();
const validationErrors = handleValidate();
if (!Object.keys(validationErrors).length) {
onSubmit(values);
}
};
const readOnly =
!hasUpdateObjectDefinitionPermission ||
values.reverse ||
initialValues.system;
const handleInheritanceCheckboxChange = ({
target,
}: React.ChangeEvent) => {
if (target.checked) {
setValues({
...values,
edge: true,
});
}
else {
const parentWindow = Liferay.Util.getOpener();
parentWindow.Liferay.fire('openModalDisableInheritance', {
handleDisable: async () => {
setValues({
...values,
edge: false,
});
},
});
}
};
return (
);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy