
* Order confirmed webhook * Add status chip component and update order details page header * refactor * refactor and update types * Remove rebase leftovers * Create order settings page * Add order setting query * Connct order settings view with api * Show order settings update error message * Popup menu routing to order settings * Fix circular import error with order settings form types * Update order settings story * Update order settings messages * wip * Add order confirm mutation and types * Add confirm order feature to order details * Update global types * refactor after review * refactor after review * update types * Revert settings menu removal * Add changelog entry Co-authored-by: Tomasz Szymanski <lime129@gmail.com> Co-authored-by: Magdalena Markusik <magdalena.markusik@mirumee.com> Co-authored-by: Dawid Tarasiuk <tarasiukdawid@gmail.com>
64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
import useNavigator from "@saleor/hooks/useNavigator";
|
|
import useNotifier from "@saleor/hooks/useNotifier";
|
|
import { commonMessages } from "@saleor/intl";
|
|
import { getMutationState } from "@saleor/misc";
|
|
import OrderSettingsPage from "@saleor/orders/components/OrderSettingsPage";
|
|
import { OrderSettingsFormData } from "@saleor/orders/components/OrderSettingsPage/form";
|
|
import { useOrderSettingsUpdateMutation } from "@saleor/orders/mutations";
|
|
import { useOrderSettingsQuery } from "@saleor/orders/queries";
|
|
import { orderListUrl } from "@saleor/orders/urls";
|
|
import React from "react";
|
|
import { useIntl } from "react-intl";
|
|
|
|
export const OrderSettings: React.FC = () => {
|
|
const intl = useIntl();
|
|
const navigate = useNavigator();
|
|
const notify = useNotifier();
|
|
|
|
const { data, loading } = useOrderSettingsQuery({});
|
|
|
|
const [
|
|
orderSettingsUpdate,
|
|
orderSettingsUpdateOpts
|
|
] = useOrderSettingsUpdateMutation({});
|
|
|
|
const handleSubmit = async (data: OrderSettingsFormData) => {
|
|
const result = await orderSettingsUpdate({
|
|
variables: {
|
|
input: data
|
|
}
|
|
});
|
|
|
|
const errors = result.data?.orderSettingsUpdate.errors;
|
|
if (errors.length) {
|
|
notify({
|
|
status: "error",
|
|
text: intl.formatMessage(commonMessages.somethingWentWrong)
|
|
});
|
|
return errors;
|
|
}
|
|
|
|
notify({
|
|
status: "success",
|
|
text: intl.formatMessage(commonMessages.savedChanges)
|
|
});
|
|
return [];
|
|
};
|
|
|
|
const handleBack = () => navigate(orderListUrl());
|
|
|
|
return (
|
|
<OrderSettingsPage
|
|
data={data?.orderSettings}
|
|
disabled={loading || orderSettingsUpdateOpts.loading}
|
|
onSubmit={handleSubmit}
|
|
onBack={handleBack}
|
|
saveButtonBarState={getMutationState(
|
|
orderSettingsUpdateOpts.called,
|
|
orderSettingsUpdateOpts.loading,
|
|
[...(orderSettingsUpdateOpts.data?.orderSettingsUpdate.errors || [])]
|
|
)}
|
|
/>
|
|
);
|
|
};
|
|
export default OrderSettings;
|