import Button from "@material-ui/core/Button"; import Dialog from "@material-ui/core/Dialog"; import DialogActions from "@material-ui/core/DialogActions"; import DialogContent from "@material-ui/core/DialogContent"; import DialogTitle from "@material-ui/core/DialogTitle"; import TextField from "@material-ui/core/TextField"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import makeStyles from "@material-ui/core/styles/makeStyles"; import ConfirmButton, { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import { DialogProps, UserError } from "@saleor/types"; import { AddressTypeInput } from "@saleor/customers/types"; import useModalDialogOpen from "@saleor/hooks/useModalDialogOpen"; import useModalDialogErrors from "@saleor/hooks/useModalDialogErrors"; import CompanyAddressForm from "@saleor/components/CompanyAddressInput/CompanyAddressForm"; import { buttonMessages } from "@saleor/intl"; import Hr from "@saleor/components/Hr"; import Form from "@saleor/components/Form"; import useAddressValidation from "@saleor/hooks/useAddressValidation"; import useStateFromProps from "@saleor/hooks/useStateFromProps"; import { ShopInfo_shop_countries } from "@saleor/components/Shop/types/ShopInfo"; import createSingleAutocompleteSelectHandler from "@saleor/utils/handlers/singleAutocompleteSelectChangeHandler"; import FormSpacer from "@saleor/components/FormSpacer"; export interface ShippingZoneAddWarehouseDialogSubmitData extends AddressTypeInput { name: string; } export interface ShippingZoneAddWarehouseDialogProps extends DialogProps { confirmButtonState: ConfirmButtonTransitionState; countries: ShopInfo_shop_countries[]; disabled: boolean; errors: UserError[]; onSubmit: (data: ShippingZoneAddWarehouseDialogSubmitData) => void; } const initialForm: ShippingZoneAddWarehouseDialogSubmitData = { city: "", cityArea: "", companyName: "", country: "", countryArea: "", firstName: "", lastName: "", name: "", phone: "", postalCode: "", streetAddress1: "", streetAddress2: "" }; const useStyles = makeStyles( { overflow: { overflowY: "visible" } }, { name: "ShippingZoneAddWarehouseDialog" } ); const ShippingZoneAddWarehouseDialog: React.FC = ({ confirmButtonState, countries, disabled, errors: apiErrors, open, onClose, onSubmit }) => { const classes = useStyles({}); const [countryDisplayName, setCountryDisplayName] = useStateFromProps(""); const { errors: validationErrors, submit: handleSubmit } = useAddressValidation(onSubmit); const errors = useModalDialogErrors( [...apiErrors, ...validationErrors], open ); useModalDialogOpen(open, {}); const intl = useIntl(); const countryChoices = countries.map(country => ({ label: country.country, value: country.code })); return (
{({ change, data }) => { const handleCountrySelect = createSingleAutocompleteSelectHandler( change, setCountryDisplayName, countryChoices ); return ( <>
); }}
); }; ShippingZoneAddWarehouseDialog.displayName = "ShippingZoneAddWarehouseDialog"; export default ShippingZoneAddWarehouseDialog;