saleor-dashboard/src/shipping/views/ShippingZoneCreate.tsx

47 lines
1.5 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import useNavigator from "@saleor/hooks/useNavigator";
import useNotifier from "@saleor/hooks/useNotifier";
import useShop from "@saleor/hooks/useShop";
import { commonMessages } from "@saleor/intl";
import React from "react";
import { useIntl } from "react-intl";
2019-06-19 14:40:52 +00:00
import ShippingZoneCreatePage from "../components/ShippingZoneCreatePage";
2020-02-11 15:32:47 +00:00
import { useShippingZoneCreate } from "../mutations";
2019-06-19 14:40:52 +00:00
import { shippingZonesListUrl, shippingZoneUrl } from "../urls";
const ShippingZoneCreate: React.FC<{}> = () => {
2019-06-19 14:40:52 +00:00
const navigate = useNavigator();
2020-02-11 15:32:47 +00:00
const notify = useNotifier();
2019-06-19 14:40:52 +00:00
const shop = useShop();
const intl = useIntl();
2019-06-19 14:40:52 +00:00
2020-02-11 15:32:47 +00:00
const [createShippingZone, createShippingZoneOpts] = useShippingZoneCreate({
onCompleted: data => {
if (data.shippingZoneCreate.errors.length === 0) {
notify({
2020-07-01 09:39:36 +00:00
status: "success",
2020-02-11 15:32:47 +00:00
text: intl.formatMessage(commonMessages.savedChanges)
});
navigate(shippingZoneUrl(data.shippingZoneCreate.shippingZone.id));
}
2019-06-19 14:40:52 +00:00
}
2020-02-11 15:32:47 +00:00
});
2019-06-19 14:40:52 +00:00
return (
2020-02-11 15:32:47 +00:00
<ShippingZoneCreatePage
countries={shop?.countries || []}
disabled={createShippingZoneOpts.loading}
errors={createShippingZoneOpts.data?.shippingZoneCreate.errors || []}
onBack={() => navigate(shippingZonesListUrl())}
onSubmit={formData =>
createShippingZone({
variables: {
input: formData
2019-12-06 17:11:46 +00:00
}
2020-02-11 15:32:47 +00:00
})
}
saveButtonBarState={createShippingZoneOpts.status}
/>
2019-06-19 14:40:52 +00:00
);
};
export default ShippingZoneCreate;