From 0ddde9acc170a42e0a2564c57e8ba9421bc90df4 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Wed, 17 Mar 2021 03:56:06 +0300 Subject: feat: mutate item after changing status --- src/containers/Service/ServiceContext.tsx | 1 + src/containers/Service/ServiceItem.tsx | 2 +- src/containers/WaybillPanel.tsx | 13 ++++++++----- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/containers/Service/ServiceContext.tsx b/src/containers/Service/ServiceContext.tsx index b4200a0..f9e1605 100644 --- a/src/containers/Service/ServiceContext.tsx +++ b/src/containers/Service/ServiceContext.tsx @@ -3,6 +3,7 @@ import { FormikProps } from 'formik'; export interface PanelProps { item: any; + mutate: (item: any) => void; } export interface ServiceParams { diff --git a/src/containers/Service/ServiceItem.tsx b/src/containers/Service/ServiceItem.tsx index bd449f9..585f609 100644 --- a/src/containers/Service/ServiceItem.tsx +++ b/src/containers/Service/ServiceItem.tsx @@ -51,7 +51,7 @@ const ServiceItem: React.FC = () => { /> )} - {item && service.Panel && } + {item && service.Panel && } ); }; diff --git a/src/containers/WaybillPanel.tsx b/src/containers/WaybillPanel.tsx index 397b16b..a978ad3 100644 --- a/src/containers/WaybillPanel.tsx +++ b/src/containers/WaybillPanel.tsx @@ -7,14 +7,17 @@ import { patch } from '../requests'; import { PanelProps } from './Service/ServiceContext'; -const WaybillPanel: React.FC = ({ item }) => { +const WaybillPanel: React.FC = ({ item, mutate }) => { const history = useHistory(); - const handleExecute = () => patch(`/waybills/${item._id}`, { status: 'executed' }) - .then(() => history.push('/waybills')); + const handleChangeStatus = status => patch(`/waybills/${item._id}`, { status }) + .then(() => { + history.push('/waybills'); + mutate({ ...item, status }); + }); - const handleCancel = () => patch(`/waybills/${item._id}`, { status: 'cancelled' }) - .then(() => history.push('/waybills')); + const handleExecute = () => handleChangeStatus('executed'); + const handleCancel = () => handleChangeStatus('cancelled'); const executed = item.status === 'executed'; -- cgit v1.2.3