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;
|
||||
warehouse: WarehouseDetails_warehouse;
|
||||
onBack: () => void;
|
||||
onDelete: () => void;
|
||||
onShippingZoneClick: (id: string) => void;
|
||||
onSubmit: (data: WarehouseDetailsPageFormData) => void;
|
||||
}
|
||||
|
@ -45,6 +46,7 @@ const WarehouseDetailsPage: React.FC<WarehouseDetailsPageProps> = ({
|
|||
shop,
|
||||
warehouse,
|
||||
onBack,
|
||||
onDelete,
|
||||
onShippingZoneClick,
|
||||
onSubmit
|
||||
}) => {
|
||||
|
@ -127,6 +129,7 @@ const WarehouseDetailsPage: React.FC<WarehouseDetailsPageProps> = ({
|
|||
<SaveButtonBar
|
||||
disabled={disabled}
|
||||
onCancel={onBack}
|
||||
onDelete={onDelete}
|
||||
onSave={submit}
|
||||
state={saveButtonBarState}
|
||||
/>
|
||||
|
|
|
@ -5,7 +5,8 @@ import WarehouseDetailsPage from "@saleor/warehouses/components/WarehouseDetails
|
|||
import useNavigator from "@saleor/hooks/useNavigator";
|
||||
import {
|
||||
warehouseListUrl,
|
||||
WarehouseUrlQueryParams
|
||||
WarehouseUrlQueryParams,
|
||||
warehouseUrl
|
||||
} from "@saleor/warehouses/urls";
|
||||
import { useWarehouseDetails } from "@saleor/warehouses/queries";
|
||||
import { commonMessages } from "@saleor/intl";
|
||||
|
@ -14,8 +15,13 @@ import { maybe, findValueInEnum, getMutationStatus } from "@saleor/misc";
|
|||
import { CountryCode } from "@saleor/types/globalTypes";
|
||||
import useShop from "@saleor/hooks/useShop";
|
||||
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 WarehouseDeleteDialog from "@saleor/warehouses/components/WarehouseDeleteDialog";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
|
||||
export interface WarehouseDetailsProps {
|
||||
id: string;
|
||||
|
@ -41,6 +47,24 @@ const WarehouseDetails: React.FC<WarehouseDetailsProps> = ({ id, params }) => {
|
|||
});
|
||||
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 (
|
||||
<>
|
||||
<WindowTitle title={maybe(() => data.warehouse.name)} />
|
||||
|
@ -54,6 +78,7 @@ const WarehouseDetails: React.FC<WarehouseDetailsProps> = ({ id, params }) => {
|
|||
saveButtonBarState={updateWarehouseTransitionState}
|
||||
shop={shop}
|
||||
warehouse={maybe(() => data.warehouse)}
|
||||
onDelete={() => openModal("delete")}
|
||||
onShippingZoneClick={id => navigate(shippingZoneUrl(id))}
|
||||
onSubmit={data =>
|
||||
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