Add warehouse deleting
This commit is contained in:
parent
8445d2d815
commit
e5274afa64
2 changed files with 41 additions and 2 deletions
|
@ -34,6 +34,7 @@ export interface WarehouseDetailsPageProps {
|
||||||
shop: ShopInfo_shop;
|
shop: ShopInfo_shop;
|
||||||
warehouse: WarehouseDetails_warehouse;
|
warehouse: WarehouseDetails_warehouse;
|
||||||
onBack: () => void;
|
onBack: () => void;
|
||||||
|
onDelete: () => void;
|
||||||
onShippingZoneClick: (id: string) => void;
|
onShippingZoneClick: (id: string) => void;
|
||||||
onSubmit: (data: WarehouseDetailsPageFormData) => void;
|
onSubmit: (data: WarehouseDetailsPageFormData) => void;
|
||||||
}
|
}
|
||||||
|
@ -45,6 +46,7 @@ const WarehouseDetailsPage: React.FC<WarehouseDetailsPageProps> = ({
|
||||||
shop,
|
shop,
|
||||||
warehouse,
|
warehouse,
|
||||||
onBack,
|
onBack,
|
||||||
|
onDelete,
|
||||||
onShippingZoneClick,
|
onShippingZoneClick,
|
||||||
onSubmit
|
onSubmit
|
||||||
}) => {
|
}) => {
|
||||||
|
@ -127,6 +129,7 @@ const WarehouseDetailsPage: React.FC<WarehouseDetailsPageProps> = ({
|
||||||
<SaveButtonBar
|
<SaveButtonBar
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
onCancel={onBack}
|
onCancel={onBack}
|
||||||
|
onDelete={onDelete}
|
||||||
onSave={submit}
|
onSave={submit}
|
||||||
state={saveButtonBarState}
|
state={saveButtonBarState}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -5,7 +5,8 @@ import WarehouseDetailsPage from "@saleor/warehouses/components/WarehouseDetails
|
||||||
import useNavigator from "@saleor/hooks/useNavigator";
|
import useNavigator from "@saleor/hooks/useNavigator";
|
||||||
import {
|
import {
|
||||||
warehouseListUrl,
|
warehouseListUrl,
|
||||||
WarehouseUrlQueryParams
|
WarehouseUrlQueryParams,
|
||||||
|
warehouseUrl
|
||||||
} from "@saleor/warehouses/urls";
|
} from "@saleor/warehouses/urls";
|
||||||
import { useWarehouseDetails } from "@saleor/warehouses/queries";
|
import { useWarehouseDetails } from "@saleor/warehouses/queries";
|
||||||
import { commonMessages } from "@saleor/intl";
|
import { commonMessages } from "@saleor/intl";
|
||||||
|
@ -14,8 +15,13 @@ import { maybe, findValueInEnum, getMutationStatus } from "@saleor/misc";
|
||||||
import { CountryCode } from "@saleor/types/globalTypes";
|
import { CountryCode } from "@saleor/types/globalTypes";
|
||||||
import useShop from "@saleor/hooks/useShop";
|
import useShop from "@saleor/hooks/useShop";
|
||||||
import { WindowTitle } from "@saleor/components/WindowTitle";
|
import { WindowTitle } from "@saleor/components/WindowTitle";
|
||||||
import { useWarehouseUpdate } from "@saleor/warehouses/mutations";
|
import {
|
||||||
|
useWarehouseUpdate,
|
||||||
|
useWarehouseDelete
|
||||||
|
} from "@saleor/warehouses/mutations";
|
||||||
import { shippingZoneUrl } from "@saleor/shipping/urls";
|
import { shippingZoneUrl } from "@saleor/shipping/urls";
|
||||||
|
import WarehouseDeleteDialog from "@saleor/warehouses/components/WarehouseDeleteDialog";
|
||||||
|
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||||
|
|
||||||
export interface WarehouseDetailsProps {
|
export interface WarehouseDetailsProps {
|
||||||
id: string;
|
id: string;
|
||||||
|
@ -41,6 +47,24 @@ const WarehouseDetails: React.FC<WarehouseDetailsProps> = ({ id, params }) => {
|
||||||
});
|
});
|
||||||
const updateWarehouseTransitionState = getMutationStatus(updateWarehouseOpts);
|
const updateWarehouseTransitionState = getMutationStatus(updateWarehouseOpts);
|
||||||
|
|
||||||
|
const [deleteWarehouse, deleteWarehouseOpts] = useWarehouseDelete({
|
||||||
|
onCompleted: data => {
|
||||||
|
if (data.deleteWarehouse.errors.length === 0) {
|
||||||
|
notify({
|
||||||
|
text: intl.formatMessage(commonMessages.savedChanges)
|
||||||
|
});
|
||||||
|
navigate(warehouseListUrl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const deleteWarehouseTransitionState = getMutationStatus(deleteWarehouseOpts);
|
||||||
|
|
||||||
|
const [openModal, closeModal] = createDialogActionHandlers(
|
||||||
|
navigate,
|
||||||
|
params => warehouseUrl(id, params),
|
||||||
|
params
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<WindowTitle title={maybe(() => data.warehouse.name)} />
|
<WindowTitle title={maybe(() => data.warehouse.name)} />
|
||||||
|
@ -54,6 +78,7 @@ const WarehouseDetails: React.FC<WarehouseDetailsProps> = ({ id, params }) => {
|
||||||
saveButtonBarState={updateWarehouseTransitionState}
|
saveButtonBarState={updateWarehouseTransitionState}
|
||||||
shop={shop}
|
shop={shop}
|
||||||
warehouse={maybe(() => data.warehouse)}
|
warehouse={maybe(() => data.warehouse)}
|
||||||
|
onDelete={() => openModal("delete")}
|
||||||
onShippingZoneClick={id => navigate(shippingZoneUrl(id))}
|
onShippingZoneClick={id => navigate(shippingZoneUrl(id))}
|
||||||
onSubmit={data =>
|
onSubmit={data =>
|
||||||
updateWarehouse({
|
updateWarehouse({
|
||||||
|
@ -76,6 +101,17 @@ const WarehouseDetails: React.FC<WarehouseDetailsProps> = ({ id, params }) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
<WarehouseDeleteDialog
|
||||||
|
confirmButtonState={deleteWarehouseTransitionState}
|
||||||
|
name={maybe(() => data.warehouse.name)}
|
||||||
|
onClose={closeModal}
|
||||||
|
onConfirm={() =>
|
||||||
|
deleteWarehouse({
|
||||||
|
variables: { id }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
open={params.action === "delete"}
|
||||||
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue