Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 31x 31x 31x 31x 31x 31x 31x 46x 46x 46x 46x 46x 31x 46x 46x 92x 46x 46x 46x 64x 46x 31x | import React, { FunctionComponent } from 'react'; import { withCheckout, CheckoutContextProps } from '../../checkout'; import { connectFormik, ConnectFormikProps } from '../../common/form'; import { Fieldset } from '../../ui/form'; import InstrumentStorageField from './InstrumentStorageField'; import InstrumentStoreAsDefaultField from './InstrumentStoreAsDefaultField'; interface StoreInstrumentFieldsetProps { isAccountInstrument?: boolean; instrumentId?: string; } interface WithStorageSettings { showSave: boolean; showSetAsDefault: boolean; setAsDefaultEnabled: boolean; } type WithFormValues = ConnectFormikProps<{ shouldSaveInstrument: boolean }>; const StoreInstrumentFieldset: FunctionComponent< StoreInstrumentFieldsetProps & WithStorageSettings > = ({ showSave, showSetAsDefault, isAccountInstrument = false, setAsDefaultEnabled, }) => ( <Fieldset> { showSave && ( <InstrumentStorageField isAccountInstrument={ isAccountInstrument } /> ) } { showSetAsDefault && ( <InstrumentStoreAsDefaultField disabled={ !setAsDefaultEnabled } isAccountInstrument={ isAccountInstrument } /> ) } </Fieldset> ); const mapToProps = ( context: CheckoutContextProps, props: StoreInstrumentFieldsetProps & WithFormValues ): WithStorageSettings | null => { const { checkoutState: { data: { getInstruments }, }, } = context; const allInstruments = getInstruments(); const { formik: { values: { shouldSaveInstrument: saveIsChecked }, }, instrumentId, } = props; const addingNewInstrument = !instrumentId; const hasAnyOtherInstruments = !!allInstruments && allInstruments.length > 0; const instrument = allInstruments && allInstruments.find(({ bigpayToken }) => bigpayToken === instrumentId); return { ...props, showSave: addingNewInstrument, showSetAsDefault: (addingNewInstrument && hasAnyOtherInstruments) || Boolean(instrument && !instrument.defaultInstrument), setAsDefaultEnabled: !addingNewInstrument || saveIsChecked, }; }; export default connectFormik(withCheckout(mapToProps)(StoreInstrumentFieldset)); |