diff --git a/client/src/components/contract-form/contract-form.component.jsx b/client/src/components/contract-form/contract-form.component.jsx index 0486e74c3..9006c9a4b 100644 --- a/client/src/components/contract-form/contract-form.component.jsx +++ b/client/src/components/contract-form/contract-form.component.jsx @@ -2,6 +2,7 @@ import { DatePicker, Form, Input, InputNumber } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; import ContractStatusSelector from "../contract-status-select/contract-status-select.component"; +import FormFieldsChanged from "../form-fields-changed-alert/form-fields-changed-alert.component"; import InputPhone from "../form-items-formatted/phone-form-item.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; @@ -9,6 +10,9 @@ export default function ContractFormComponent({ form }) { const { t } = useTranslation(); return (
+
+ +
{ form.resetFields(); }; - console.log("form.isFieldsTouched(true)", form.isFieldsTouched([], true)); const loc = useLocation(); return ( @@ -31,7 +30,7 @@ export default function FormsFieldChanged({ form }) { type="warning" message={
- {t("general.messages.unsavedchanges")} + {t("general.messages.unsavedchanges")} - +
diff --git a/client/src/pages/contract-detail/contract-detail.page.container.jsx b/client/src/pages/contract-detail/contract-detail.page.container.jsx index 798e74525..9082cbe59 100644 --- a/client/src/pages/contract-detail/contract-detail.page.container.jsx +++ b/client/src/pages/contract-detail/contract-detail.page.container.jsx @@ -17,6 +17,7 @@ import { } from "../../redux/application/application.actions"; import ContractDetailPageComponent from "./contract-detail.page.component"; import { CreateRecentItem } from "../../utils/create-recent-item"; +import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component"; const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -67,18 +68,22 @@ export function ContractDetailPageContainer({ setBreadcrumbs, addRecentItem }) { ); }, [t, data, error, loading, setBreadcrumbs, addRecentItem, contractId]); - const handleFinish = (values) => { - updateContract({ + const handleFinish = async (values) => { + const result = await updateContract({ variables: { cccontract: { ...values }, contractId: contractId }, - }) - .then((response) => { - notification["success"]({ message: t("contracts.successes.saved") }); - }) - .catch((error) => - notification["error"]({ - message: t("contracts.errors.saving", { error: error }), - }) - ); + }); + if (!!result.errors) { + notification["error"]({ + message: t("contracts.errors.saving", { + message: JSON.stringify(result.errors), + }), + }); + return; + } + notification["success"]({ message: t("contracts.successes.saved") }); + if (refetch) await refetch(); + form.resetFields(); + form.resetFields(); }; useEffect(() => { @@ -86,42 +91,41 @@ export function ContractDetailPageContainer({ setBreadcrumbs, addRecentItem }) { }, [data, form]); if (error) return ; + if (loading) return ; + return (
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 133606835..56aad6cda 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -370,7 +370,7 @@ "edit": "Edit", "login": "Login", "refresh": "Refresh", - "reset": " Reset your changes.", + "reset": "Reset your changes.", "save": "Save", "saveandnew": "Save and New", "submit": "Submit",