UNPKG

2.64 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _stringify = require('babel-runtime/core-js/json/stringify');
8
9var _stringify2 = _interopRequireDefault(_stringify);
10
11var _getIterator2 = require('babel-runtime/core-js/get-iterator');
12
13var _getIterator3 = _interopRequireDefault(_getIterator2);
14
15var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
16
17var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18
19var _createClass2 = require('babel-runtime/helpers/createClass');
20
21var _createClass3 = _interopRequireDefault(_createClass2);
22
23function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
25var ButtonSet = function () {
26 function ButtonSet() {
27 (0, _classCallCheck3.default)(this, ButtonSet);
28
29 this._buttons = [];
30 }
31
32 (0, _createClass3.default)(ButtonSet, [{
33 key: 'add',
34 value: function add(_ref) {
35 var text = _ref.text;
36 var data = _ref.data;
37 var url = _ref.url;
38 var event = _ref.event;
39
40 if (!data && !url) {
41 throw Error('Must provide a url or data i.e. {data: null} or {url: \'https://facebook.com\'}');
42 }
43
44 this._buttons.push({ text: text || 'Button', event: event, data: data, url: url });
45 return this;
46 }
47 }, {
48 key: 'toJSON',
49 value: function toJSON() {
50 var buttons = [];
51 var _iteratorNormalCompletion = true;
52 var _didIteratorError = false;
53 var _iteratorError = undefined;
54
55 try {
56 for (var _iterator = (0, _getIterator3.default)(this._buttons), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
57 var button = _step.value;
58
59 if (button.url) {
60 buttons.push({ type: 'web_url', url: button.url, title: button.text });
61 } else if (button.data) {
62 var payload = (0, _stringify2.default)({ data: button.data, event: button.event });
63 buttons.push({ type: 'postback', payload: payload, title: button.text });
64 }
65 }
66 } catch (err) {
67 _didIteratorError = true;
68 _iteratorError = err;
69 } finally {
70 try {
71 if (!_iteratorNormalCompletion && _iterator.return) {
72 _iterator.return();
73 }
74 } finally {
75 if (_didIteratorError) {
76 throw _iteratorError;
77 }
78 }
79 }
80
81 return buttons;
82 }
83 }, {
84 key: 'length',
85 get: function get() {
86 return this._buttons.length;
87 }
88 }]);
89 return ButtonSet;
90}();
91
92exports.default = ButtonSet;
93//# sourceMappingURL=Buttons.js.map