Repository URL to install this package:
|
Version:
0.0.13 ▾
|
import * as React from 'react';
import { OneFormState } from '@skava/packages/features/Forms';
import { stepperContainer } from '../container';
import { deleteThenAddAddPaymentBinding, } from './state';
import { cartContainer } from '@skava/packages/core/cart/state';
import { StyledAddCardButton, StyledAddCreditCardForm } from './styled';
const renderButtonGroup = () => React.createElement(StyledAddCardButton, null);
const validation = {
onSubmit(args) {
// @todo put the below in the serializer of that plugin...
// const serialized = (args.state.toJSON() as {}) as SerializedAddPaymentType
const stateAttributes = args.state.inputsList[0].attributes;
if (stateAttributes.validate()) {
const { creditCardState } = stateAttributes;
const { cardNumberState, cvvState, expiryDateState } = creditCardState;
const { monthState, yearState } = expiryDateState.attributes.expiryDateState;
const cardNumber = cardNumberState.value;
const securityCode = cvvState.value;
const expirationMonth = monthState.value;
const expirationYear = yearState.value;
const serialized = {
cardNumber,
securityCode,
expirationMonth,
expirationYear,
};
const HACK_PARAMS = {
type: 'CREDITCARD',
creditCard: {
number: serialized.cardNumber,
cvv: serialized.securityCode,
expirationMonth: serialized.expirationMonth,
expirationYear: serialized.expirationYear,
// on gql end?
type: '001',
name: '001',
},
/**
* @todo @@packages !!! NEED TO GET THIS FROM THE BILLING ADDRESS !!!
* ^ AND NEED TO NOT USE THE STEPPER ACCORDION CONTAINER TO DO IT!
*/
address: {
addressLine1: '5999 eh street',
addressLine2: '',
postalCode: '111222',
phone: '6253761523',
city: 'Courtenay',
state: 'BC',
firstName: 'ssadas',
lastName: 'dasd',
middleName: '',
country: 'US',
email: 'james.rue21@skava.com',
},
amount: cartContainer.math.grandTotal,
};
console.log({ serialized, HACK_PARAMS });
deleteThenAddAddPaymentBinding(HACK_PARAMS);
stepperContainer.handleNext();
}
},
};
class AddCreditCardForm extends React.PureComponent {
constructor() {
super(...arguments);
this.observableFormState = new OneFormState().setInputsList([
{
type: 'creditCard',
},
]);
}
render() {
return (React.createElement(StyledAddCreditCardForm, { validation: validation, state: this.observableFormState, renderButtonGroup: renderButtonGroup }));
}
}
export { AddCreditCardForm };
//# sourceMappingURL=AddCreditCardForm.js.map