|
|
|
@ -32,7 +32,12 @@ import { dataForPayHighlights } from 'pages/HighlightsPage/storeHighlightsAtoms' |
|
|
|
|
|
|
|
|
|
|
|
import { onePayment } from 'requests/onePayment' |
|
|
|
import { onePayment } from 'requests/onePayment' |
|
|
|
|
|
|
|
|
|
|
|
import { SelectedCountry, useCountries } from './useCountries' |
|
|
|
import { |
|
|
|
|
|
|
|
SelectedCountry, |
|
|
|
|
|
|
|
SelectedState, |
|
|
|
|
|
|
|
useCountries, |
|
|
|
|
|
|
|
} from './useCountries' |
|
|
|
|
|
|
|
|
|
|
|
import { |
|
|
|
import { |
|
|
|
isValidAddress, |
|
|
|
isValidAddress, |
|
|
|
isValidName, |
|
|
|
isValidName, |
|
|
|
@ -47,6 +52,7 @@ export enum ElementTypes { |
|
|
|
CardExpiry = 'cardExpiry', |
|
|
|
CardExpiry = 'cardExpiry', |
|
|
|
CardHolder = 'cardHolder', |
|
|
|
CardHolder = 'cardHolder', |
|
|
|
CardNumber = 'cardNumber', |
|
|
|
CardNumber = 'cardNumber', |
|
|
|
|
|
|
|
CardState = 'cardState', |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export type Props = { |
|
|
|
export type Props = { |
|
|
|
@ -72,6 +78,7 @@ const initialState = { |
|
|
|
cardExpiry: inputState, |
|
|
|
cardExpiry: inputState, |
|
|
|
cardHolder: inputState, |
|
|
|
cardHolder: inputState, |
|
|
|
cardNumber: inputState, |
|
|
|
cardNumber: inputState, |
|
|
|
|
|
|
|
cardState: inputState, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export const useFormSubmit = ({ |
|
|
|
export const useFormSubmit = ({ |
|
|
|
@ -93,6 +100,7 @@ export const useFormSubmit = ({ |
|
|
|
const [name, setName] = useState('') |
|
|
|
const [name, setName] = useState('') |
|
|
|
const [city, setCity] = useState('') |
|
|
|
const [city, setCity] = useState('') |
|
|
|
const [address, setAddress] = useState('') |
|
|
|
const [address, setAddress] = useState('') |
|
|
|
|
|
|
|
const [usaStateValue, setUsaStateValue] = useState('') |
|
|
|
const [inputStates, setInputStates] = useObjectState(initialState) |
|
|
|
const [inputStates, setInputStates] = useObjectState(initialState) |
|
|
|
const [errorMessage, setErrorMessage] = useState('') |
|
|
|
const [errorMessage, setErrorMessage] = useState('') |
|
|
|
const [loader, setLoader] = useState(false) |
|
|
|
const [loader, setLoader] = useState(false) |
|
|
|
@ -107,7 +115,10 @@ export const useFormSubmit = ({ |
|
|
|
const { |
|
|
|
const { |
|
|
|
countries, |
|
|
|
countries, |
|
|
|
selectedCountry, |
|
|
|
selectedCountry, |
|
|
|
|
|
|
|
selectedState, |
|
|
|
setSelectedCountry, |
|
|
|
setSelectedCountry, |
|
|
|
|
|
|
|
setSelectedState, |
|
|
|
|
|
|
|
usaStates, |
|
|
|
} = useCountries() |
|
|
|
} = useCountries() |
|
|
|
|
|
|
|
|
|
|
|
const resetErrors = useCallback(() => { |
|
|
|
const resetErrors = useCallback(() => { |
|
|
|
@ -154,8 +165,25 @@ export const useFormSubmit = ({ |
|
|
|
if (country?.id === selectedCountry?.id) return |
|
|
|
if (country?.id === selectedCountry?.id) return |
|
|
|
setSelectedCountry(country) |
|
|
|
setSelectedCountry(country) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (selectedCountry?.id !== 194) { |
|
|
|
|
|
|
|
setSelectedState(null) |
|
|
|
|
|
|
|
} |
|
|
|
setElementTypeState(ElementTypes.CardCountry, country?.name_eng || '') |
|
|
|
setElementTypeState(ElementTypes.CardCountry, country?.name_eng || '') |
|
|
|
}, [resetErrors, selectedCountry?.id, setElementTypeState, setSelectedCountry]) |
|
|
|
}, [ |
|
|
|
|
|
|
|
resetErrors, |
|
|
|
|
|
|
|
selectedCountry?.id, |
|
|
|
|
|
|
|
setElementTypeState, |
|
|
|
|
|
|
|
setSelectedCountry, |
|
|
|
|
|
|
|
setSelectedState, |
|
|
|
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const onStateSelect = useCallback((state: SelectedState) => { |
|
|
|
|
|
|
|
resetErrors() |
|
|
|
|
|
|
|
if (state?.id === selectedState?.id) return |
|
|
|
|
|
|
|
setSelectedState(state) |
|
|
|
|
|
|
|
setUsaStateValue('') |
|
|
|
|
|
|
|
setElementTypeState(ElementTypes.CardState, state?.name_eng || '') |
|
|
|
|
|
|
|
}, [resetErrors, selectedState?.id, setElementTypeState, setSelectedState]) |
|
|
|
|
|
|
|
|
|
|
|
const onCityChange = (e: ChangeEvent<HTMLInputElement>) => { |
|
|
|
const onCityChange = (e: ChangeEvent<HTMLInputElement>) => { |
|
|
|
const { value } = e.target |
|
|
|
const { value } = e.target |
|
|
|
@ -167,6 +195,12 @@ export const useFormSubmit = ({ |
|
|
|
resetErrors() |
|
|
|
resetErrors() |
|
|
|
setElementTypeState(ElementTypes.CardCity, value) |
|
|
|
setElementTypeState(ElementTypes.CardCity, value) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const onStateChange = (e: ChangeEvent<HTMLInputElement>) => { |
|
|
|
|
|
|
|
const { value } = e.target |
|
|
|
|
|
|
|
setUsaStateValue(value) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const onAddressChange = (e: ChangeEvent<HTMLInputElement>) => { |
|
|
|
const onAddressChange = (e: ChangeEvent<HTMLInputElement>) => { |
|
|
|
const { value } = e.target |
|
|
|
const { value } = e.target |
|
|
|
if (!isValidAddress(value)) { |
|
|
|
if (!isValidAddress(value)) { |
|
|
|
@ -244,6 +278,7 @@ export const useFormSubmit = ({ |
|
|
|
address_city: city, |
|
|
|
address_city: city, |
|
|
|
address_country: selectedCountry?.name || '', |
|
|
|
address_country: selectedCountry?.name || '', |
|
|
|
address_line1: address, |
|
|
|
address_line1: address, |
|
|
|
|
|
|
|
address_state: selectedState?.name_eng, |
|
|
|
name, |
|
|
|
name, |
|
|
|
}, |
|
|
|
}, |
|
|
|
) |
|
|
|
) |
|
|
|
@ -303,6 +338,11 @@ export const useFormSubmit = ({ |
|
|
|
onInputsChange, |
|
|
|
onInputsChange, |
|
|
|
onInputsFocus, |
|
|
|
onInputsFocus, |
|
|
|
onNameChange, |
|
|
|
onNameChange, |
|
|
|
|
|
|
|
onStateChange, |
|
|
|
|
|
|
|
onStateSelect, |
|
|
|
selectedCountry, |
|
|
|
selectedCountry, |
|
|
|
|
|
|
|
selectedState, |
|
|
|
|
|
|
|
usaStateValue, |
|
|
|
|
|
|
|
usaStates, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|