import { FC, useState, useCallback, useEffect } from 'react' import cn from 'classnames' import s from './ShippingView.module.css' import { Button, Input } from '@components/ui' import { useUI } from '@components/ui/context' import SidebarLayout from '@components/common/SidebarLayout' import { validate } from 'email-validator' import { v4 as uuid } from 'uuid' import { setCustomerForOrderMutation } from '@framework/utils/mutations/set-customer-for-order-mutation' import { setOrderShippingAddressMutation } from '@framework/utils/mutations/set-order-shipping-address-mutation' import request from '@commerce/utils/request' const PaymentMethodView: FC = () => { // Form State const [firstName, setFirstName] = useState('') const [lastName, setLastName] = useState('') const [phoneNumber, setPhoneNumber] = useState('') const [email, setEmail] = useState('') const [streetDetails, setStreetDetails] = useState('') const [apartmentDetails, setApartmentDetails] = useState('') const [loading, setLoading] = useState(false) const [disabled, setDisabled] = useState(true) const { setSidebarView } = useUI() const setCustomerForOrder = async () => { console.log('Setting customer') const data = await request({ query: setCustomerForOrderMutation, variables: { input: { title: `${firstName} ${lastName}`, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber, emailAddress: `${email}+${uuid().split('-')[0]}` } } }) console.log(data, 111) } const addShippingAddress = async () => { console.log('Add shipping address') const data = await request({ query: setOrderShippingAddressMutation, variables: { input: { fullName: `${firstName} ${lastName}`, phoneNumber: phoneNumber, streetLine1: streetDetails, streetLine2: apartmentDetails, countryCode: "TM" } } }) console.log(data, 222) } const handleValidation = useCallback( () => { setDisabled( !validate(email) || firstName.length < 3 || lastName.length < 3 || phoneNumber.length < 6 || streetDetails.length < 5 ) }, [ firstName, lastName, phoneNumber, email, streetDetails, apartmentDetails ], ) const handleAddShippingAddress = async (e: React.SyntheticEvent) => { e.preventDefault() handleValidation() console.log('Handle Add Shipping Address') try { setLoading(true) await setCustomerForOrder() await addShippingAddress() setLoading(false) setSidebarView('CHECKOUT_VIEW') } catch ({ errors }) { console.log(errors, 333) } } useEffect(() => { handleValidation() }, [handleValidation]) return ( setSidebarView('CHECKOUT_VIEW')}>

Shipping

{/*
Same as billing address
Use a different shipping address

*/}
{/*
*/} {/*
*/}
) } export default PaymentMethodView