import React from 'react'; import { Braintree, HostedField } from '../src/index'; const Demo = () => { const [tokenize, setTokenizeFunc] = React.useState(); const [cardType, setCardType] = React.useState(''); const [error, setError] = React.useState(null); const [token, setToken] = React.useState(null); const [focusedFieldName, setFocusedField] = React.useState(''); const numberField = React.useRef(); const cvvField = React.useRef(); const cardholderNameField = React.useRef(); const onAuthorizationSuccess = () => { numberField.current.focus(); }; const onDataCollectorInstanceReady = (collector) => { // DO SOMETHING with Braintree collector as needed }; const handleError = (newError) => { setError(newError.message || String(newError)); }; const onFieldBlur = (field, event) => setFocusedField(''); const onFieldFocus = (field, event) => setFocusedField(event.emittedBy); const onCardTypeChange = ({ cards }) => { if (1 === cards.length) { const [card] = cards; setCardType(card.type); if (card.code && card.code.name) { cvvField.current.setPlaceholder(card.code.name); } else { cvvField.current.setPlaceholder('CVV'); } } else { setCardType(''); cvvField.current.setPlaceholder('CVV'); } }; const getToken = () => { tokenize() .then(setToken) .catch(handleError); }; const renderResult = (title, obj) => { if (!obj) { return null; } return (
{JSON.stringify(obj, null, 4)}
Card type: {cardType}
Name: