Skip to content

Commit 6145ef8

Browse files
committed
Update demo files for ghpages
1 parent 2551bb1 commit 6145ef8

File tree

2 files changed

+106
-91
lines changed

2 files changed

+106
-91
lines changed

docs/demo.js

Lines changed: 105 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@
8686
/************************************************************************/
8787
/******/ ({
8888

89-
/***/ "./demo/demo-functional.jsx":
90-
/*!**********************************!*\
91-
!*** ./demo/demo-functional.jsx ***!
92-
\**********************************/
89+
/***/ "./demo/demo-class.jsx":
90+
/*!*****************************!*\
91+
!*** ./demo/demo-class.jsx ***!
92+
\*****************************/
9393
/*! exports provided: default */
9494
/***/ (function(module, __webpack_exports__, __webpack_require__) {
9595

@@ -104,109 +104,124 @@ __webpack_require__.r(__webpack_exports__);
104104

105105

106106

107-
var Demo = () => {
108-
var [tokenize, setTokenizeFunc] = react__WEBPACK_IMPORTED_MODULE_1___default.a.useState();
109-
var [cardType, setCardType] = react__WEBPACK_IMPORTED_MODULE_1___default.a.useState('');
110-
var [error, setError] = react__WEBPACK_IMPORTED_MODULE_1___default.a.useState(null);
111-
var [token, setToken] = react__WEBPACK_IMPORTED_MODULE_1___default.a.useState(null);
112-
var [focusedFieldName, setFocusedField] = react__WEBPACK_IMPORTED_MODULE_1___default.a.useState('');
113-
var numberField = react__WEBPACK_IMPORTED_MODULE_1___default.a.useRef();
114-
var cvvField = react__WEBPACK_IMPORTED_MODULE_1___default.a.useRef();
115-
console.log({
116-
focusedFieldName
117-
});
118-
119-
var onAuthorizationSuccess = () => {
120-
numberField.current.focus();
121-
};
122-
123-
var onDataCollectorInstanceReady = collector => {// DO SOMETHING with Braintree collector as needed
124-
};
125-
126-
var handleError = error => {
127-
setError(error.message || String(error));
128-
};
107+
class Demo extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent {
108+
constructor(props) {
109+
super(props);
110+
this.state = {};
111+
this.state = {
112+
numberFocused: false
113+
};
114+
this.numberField = react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef();
115+
this.braintree = react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef();
116+
['onError', 'getToken', 'onCardTypeChange', 'onAuthorizationSuccess'].forEach(prop => this[prop] = this[prop].bind(this));
117+
}
129118

130-
var onFieldBlur = (field, event) => setFocusedField('');
119+
onError(error) {
120+
this.setState({
121+
error: error.message || String(error)
122+
});
123+
}
131124

132-
var onFieldFocus = (field, event) => setFocusedField(event.emittedBy);
125+
getToken() {
126+
this.tokenize().then(token => this.setState({
127+
token,
128+
error: null
129+
})).catch(error => this.onError(error));
130+
}
133131

134-
var onCardTypeChange = (_ref) => {
132+
onCardTypeChange(_ref) {
135133
var {
136134
cards
137135
} = _ref;
138136

139137
if (1 === cards.length) {
140138
var [card] = cards;
141-
setCardType(card.type);
139+
this.setState({
140+
card: card.type
141+
});
142142

143143
if (card.code && card.code.name) {
144-
cvvField.current.setPlaceholder(card.code.name);
144+
this.cvvField.setPlaceholder(card.code.name);
145145
} else {
146-
cvvField.current.setPlaceholder('CVV');
146+
this.cvvField.setPlaceholder('CVV');
147147
}
148148
} else {
149-
setCardType('');
150-
cvvField.current.setPlaceholder('CVV');
149+
this.setState({
150+
card: ''
151+
});
152+
this.cvvField.setPlaceholder('CVV');
151153
}
152-
};
154+
}
153155

154-
var getToken = () => {
155-
tokenize().then(setToken).catch(handleError);
156-
};
156+
componentDidMount() {
157+
this.setState({
158+
authorization: 'sandbox_g42y39zw_348pk9cgf3bgyw2b'
159+
});
160+
}
157161

158-
var renderResult = (title, obj) => {
162+
renderResult(title, obj) {
159163
if (!obj) {
160164
return null;
161165
}
162166

163167
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("b", null, title, ":"), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("pre", null, JSON.stringify(obj, null, 4)));
164-
};
168+
}
165169

166-
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["Braintree"], {
167-
className: "demo",
168-
authorization: "sandbox_g42y39zw_348pk9cgf3bgyw2b",
169-
onAuthorizationSuccess: onAuthorizationSuccess,
170-
onDataCollectorInstanceReady: onDataCollectorInstanceReady,
171-
onError: handleError,
172-
onCardTypeChange: onCardTypeChange,
173-
getTokenRef: ref => setTokenizeFunc(() => ref),
174-
styles: {
175-
'input': {
176-
'font-size': 'inherit'
177-
},
178-
':focus': {
179-
'color': 'blue'
180-
}
181-
}
182-
}, renderResult('Error', error), renderResult('Token', token), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", null, "Number:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
183-
type: "number",
184-
className: focusedFieldName == 'number' ? 'focused' : '',
185-
onBlur: onFieldBlur,
186-
onFocus: onFieldFocus,
187-
prefill: "4111 1111 1111 1111",
188-
ref: numberField
189-
}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("p", null, "Card type: ", cardType), "Date:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
190-
type: "expirationDate",
191-
onBlur: onFieldBlur,
192-
onFocus: onFieldFocus,
193-
className: focusedFieldName == 'expirationDate' ? 'focused' : ''
194-
}), "Month:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
195-
type: "expirationMonth"
196-
}), "Year:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
197-
type: "expirationYear"
198-
}), "CVV:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
199-
type: "cvv",
200-
placeholder: "CVV",
201-
ref: cvvField
202-
}), "Zip:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
203-
type: "postalCode"
204-
}))), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
205-
className: "footer"
206-
}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
207-
onClick: getToken
208-
}, "Get nonce token")));
209-
};
170+
onAuthorizationSuccess() {
171+
this.numberField.current.focus();
172+
}
173+
174+
render() {
175+
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("h1", null, "Braintree Hosted Fields Demo"), this.renderResult('Error', this.state.error), this.renderResult('Token', this.state.token), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["Braintree"], {
176+
ref: this.braintree,
177+
authorization: this.state.authorization,
178+
onAuthorizationSuccess: this.onAuthorizationSuccess,
179+
onError: this.onError,
180+
getTokenRef: t => this.tokenize = t,
181+
onCardTypeChange: this.onCardTypeChange,
182+
styles: {
183+
input: {
184+
'font-size': '14px',
185+
'font-family': 'helvetica, tahoma, calibri, sans-serif',
186+
color: '#7d6b6b'
187+
},
188+
':focus': {
189+
color: 'black'
190+
}
191+
}
192+
}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", null, "Number:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
193+
type: "number",
194+
onBlur: () => this.setState({
195+
numberFocused: false
196+
}),
197+
onFocus: () => this.setState({
198+
numberFocused: true
199+
}),
200+
className: this.state.numberFocused ? 'focused' : '',
201+
prefill: "4111 1111 1111 1111",
202+
ref: this.numberField
203+
}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("p", null, "Card type: ", this.state.card), "Date:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
204+
type: "expirationDate"
205+
}), "Month:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
206+
type: "expirationMonth"
207+
}), "Year:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
208+
type: "expirationYear"
209+
}), "CVV:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
210+
type: "cvv",
211+
placeholder: "CVV",
212+
ref: cvvField => {
213+
this.cvvField = cvvField;
214+
}
215+
}), "Zip:", react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_src_index__WEBPACK_IMPORTED_MODULE_2__["HostedField"], {
216+
type: "postalCode"
217+
}))), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
218+
className: "footer"
219+
}, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", {
220+
onClick: this.getToken
221+
}, "Get nonce token")));
222+
}
223+
224+
}
210225

211226
/* harmony default export */ __webpack_exports__["default"] = (Demo);
212227

@@ -226,13 +241,13 @@ __webpack_require__.r(__webpack_exports__);
226241
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
227242
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
228243
/* harmony import */ var _src_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../src/index */ "./src/index.js");
229-
/* harmony import */ var _demo_functional_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./demo-functional.jsx */ "./demo/demo-functional.jsx");
244+
/* harmony import */ var _demo_class_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./demo-class.jsx */ "./demo/demo-class.jsx");
230245

231246

232-
//import Demo from './demo-class.jsx'
233247

248+
//import Demo from './demo-functional.jsx'
234249

235-
Object(react_dom__WEBPACK_IMPORTED_MODULE_0__["render"])(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_demo_functional_jsx__WEBPACK_IMPORTED_MODULE_3__["default"]), document.getElementById('root'));
250+
Object(react_dom__WEBPACK_IMPORTED_MODULE_0__["render"])(react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_demo_class_jsx__WEBPACK_IMPORTED_MODULE_3__["default"]), document.getElementById('root'));
236251

237252
/***/ }),
238253

@@ -40218,8 +40233,8 @@ class Braintree extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
4021840233
this.api.teardown();
4021940234
}
4022040235

40221-
componentWillReceiveProps(nextProps) {
40222-
this.api.setAuthorization(nextProps.authorization, this.props.onAuthorizationSuccess);
40236+
componentDidUpdate() {
40237+
this.api.setAuthorization(this.props.authorization, this.props.onAuthorizationSuccess);
4022340238
}
4022440239

4022540240
tokenize(options) {
@@ -40301,7 +40316,7 @@ class BraintreeHostedField extends react__WEBPACK_IMPORTED_MODULE_0___default.a.
4030140316
this.context.braintreeApi.setAttribute(this.props.type, 'placeholder', text);
4030240317
}
4030340318

40304-
componentWillMount() {
40319+
componentDidMount() {
4030540320
this.fieldId = this.context.braintreeApi.checkInField(this.props);
4030640321
}
4030740322

docs/demo.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)