Add warehouse select

This commit is contained in:
dominik-zeglen 2020-02-06 16:19:08 +01:00
parent 321c9a5712
commit 8f02117865
3 changed files with 20 additions and 3 deletions

View file

@ -13,6 +13,7 @@ import SaveButtonBar from "@saleor/components/SaveButtonBar";
import { ShippingErrorFragment } from "@saleor/shipping/types/ShippingErrorFragment"; import { ShippingErrorFragment } from "@saleor/shipping/types/ShippingErrorFragment";
import createMultiAutocompleteSelectHandler from "@saleor/utils/handlers/multiAutocompleteSelectChangeHandler"; import createMultiAutocompleteSelectHandler from "@saleor/utils/handlers/multiAutocompleteSelectChangeHandler";
import { MultiAutocompleteChoiceType } from "@saleor/components/MultiAutocompleteSelectField"; import { MultiAutocompleteChoiceType } from "@saleor/components/MultiAutocompleteSelectField";
import useStateFromProps from "@saleor/hooks/useStateFromProps";
import { maybe } from "../../../misc"; import { maybe } from "../../../misc";
import { ShippingMethodTypeEnum } from "../../../types/globalTypes"; import { ShippingMethodTypeEnum } from "../../../types/globalTypes";
import { import {
@ -78,7 +79,7 @@ const ShippingZoneDetailsPage: React.FC<ShippingZoneDetailsPageProps> = ({
name: shippingZone?.name || "", name: shippingZone?.name || "",
warehouses: shippingZone?.warehouses.map(warehouse => warehouse.id) || [] warehouses: shippingZone?.warehouses.map(warehouse => warehouse.id) || []
}; };
const [warehouseDisplayValues, setWarehouseDisplayValues] = React.useState( const [warehouseDisplayValues, setWarehouseDisplayValues] = useStateFromProps(
shippingZone?.warehouses.map(warehouseToChoice) shippingZone?.warehouses.map(warehouseToChoice)
); );

View file

@ -36,7 +36,7 @@ export const ShippingZoneWarehouses: React.FC<ShippingZonewWarehousesProps> = pr
<Card> <Card>
<CardTitle <CardTitle
title={intl.formatMessage({ title={intl.formatMessage({
defaultMessage: "Visibility", defaultMessage: "Warehouse",
description: "section header" description: "section header"
})} })}
/> />
@ -46,10 +46,17 @@ export const ShippingZoneWarehouses: React.FC<ShippingZonewWarehousesProps> = pr
displayValues={displayValue} displayValues={displayValue}
fetchChoices={() => undefined} fetchChoices={() => undefined}
hasMore={hasMore} hasMore={hasMore}
label={intl.formatMessage({
defaultMessage: "Warehouse"
})}
loading={loading} loading={loading}
name="warehouse" name="warehouse"
onChange={onChange} onChange={onChange}
onFetchMore={onFetchMore} onFetchMore={onFetchMore}
placeholder={intl.formatMessage({
defaultMessage: "Select Warehouse",
description: "input placeholder"
})}
value={data.warehouses} value={data.warehouses}
/> />
</CardContent> </CardContent>

View file

@ -13,7 +13,8 @@ import {
useShippingRateUpdate, useShippingRateUpdate,
useShippingRateDelete, useShippingRateDelete,
useShippingZoneDelete, useShippingZoneDelete,
useShippingZoneUpdate useShippingZoneUpdate,
useAassignShippingZoneToWarehouse
} from "@saleor/shipping/mutations"; } from "@saleor/shipping/mutations";
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
import ShippingZoneRateDialog from "@saleor/shipping/components/ShippingZoneRateDialog"; import ShippingZoneRateDialog from "@saleor/shipping/components/ShippingZoneRateDialog";
@ -55,6 +56,8 @@ const ShippingZoneDetails: React.FC<ShippingZoneDetailsProps> = ({
variables: DEFAULT_INITIAL_SEARCH_DATA variables: DEFAULT_INITIAL_SEARCH_DATA
}); });
const [assignToWarehouse] = useAassignShippingZoneToWarehouse({});
const { data, loading } = useShippingZone({ const { data, loading } = useShippingZone({
displayLoader: true, displayLoader: true,
variables: { id } variables: { id }
@ -132,6 +135,12 @@ const ShippingZoneDetails: React.FC<ShippingZoneDetailsProps> = ({
} }
} }
}); });
assignToWarehouse({
variables: {
shippingZoneId: id,
warehouseId: data.warehouse
}
});
}; };
if (data?.shippingZone === null) { if (data?.shippingZone === null) {