@bigbinary/neeto-integrations-frontend 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -1
- package/dist/ZapierForm.cjs.js +359 -0
- package/dist/ZapierForm.cjs.js.map +1 -0
- package/dist/ZapierForm.js +333 -0
- package/dist/ZapierForm.js.map +1 -0
- package/dist/index.cjs.js +60 -4015
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +70 -4024
- package/dist/index.js.map +1 -1
- package/package.json +21 -6
- package/src/translations/en.json +49 -0
- package/src/translations/index.js +1 -0
- package/types/ZapierForm.d.ts +18 -0
- package/types.d.ts +19 -21
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ Available components:
|
|
|
20
20
|
- [Connect](./docs/connect/README.md)
|
|
21
21
|
- [Finish](./docs/finish/README.md)
|
|
22
22
|
- [Demo](./docs/demo/README.md)
|
|
23
|
+
- [DisconnectAlert](./docs/DisconnectAlert/README.md)
|
|
23
24
|
|
|
24
25
|
View the [example app](./example/src/App.jsx) to see usage.
|
|
25
26
|
|
|
@@ -54,7 +55,44 @@ will run the example app using webpack.
|
|
|
54
55
|
webpack-dev-server in host if changes are not applied.
|
|
55
56
|
8. Video explanation on how to use yalc: https://vimeo.com/722958162/9e931b640c
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
## Exports and Types
|
|
59
|
+
|
|
60
|
+
The **neeto-integrations-frontend** JavaScript library offers two types of
|
|
61
|
+
exports: the common bundle and the per-component bundle.
|
|
62
|
+
|
|
63
|
+
### Common Bundle
|
|
64
|
+
|
|
65
|
+
The common bundle includes components such as `Card`, `Modal`, and `Connect`.
|
|
66
|
+
You can import them using the following syntax:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
import { Card, Modal, Connect } from "@bigbinary/neeto-integrations-frontend";
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
To add a component to the common bundle, follow these steps:
|
|
73
|
+
|
|
74
|
+
1. Place the component inside the `components` folder
|
|
75
|
+
2. Add the necessary types for the component in the `types.d.ts` file located in
|
|
76
|
+
the library's root directory
|
|
77
|
+
3. Export the component in the `index.js` file located in the library's root
|
|
78
|
+
directory
|
|
79
|
+
|
|
80
|
+
### Per-Component Bundle
|
|
81
|
+
|
|
82
|
+
Each component inside the `components/Integrations` folder has its own bundle.
|
|
83
|
+
For example, the `ZapierForm` component can be imported using the following
|
|
84
|
+
syntax:
|
|
85
|
+
|
|
86
|
+
```js
|
|
87
|
+
import ZapierForm from "@bigbinary/neeto-integrations-frontend/ZapierForm";
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
To export a component as its own bundle, follow these steps:
|
|
91
|
+
|
|
92
|
+
1. Place the component strictly inside the `components/Integrations` folder.
|
|
93
|
+
2. Add the necessary types for the component in the `types` folder.
|
|
94
|
+
|
|
95
|
+
## Building and releasing.
|
|
58
96
|
|
|
59
97
|
The `@bigbinary/neeto-integrations-frontend` package gets published to NPM when
|
|
60
98
|
we merge a PR with `patch`, `minor` or `major` label to the `main` branch. The
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var pure = require('@bigbinary/neeto-commons-frontend/pure');
|
|
5
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
6
|
+
var ramda = require('ramda');
|
|
7
|
+
var reactI18next = require('react-i18next');
|
|
8
|
+
var i18next = require('i18next');
|
|
9
|
+
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
10
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
11
|
+
var formik = require('@bigbinary/neetoui/formik');
|
|
12
|
+
var Yup = require('yup');
|
|
13
|
+
|
|
14
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
|
+
|
|
16
|
+
function _interopNamespace(e) {
|
|
17
|
+
if (e && e.__esModule) return e;
|
|
18
|
+
var n = Object.create(null);
|
|
19
|
+
if (e) {
|
|
20
|
+
Object.keys(e).forEach(function (k) {
|
|
21
|
+
if (k !== 'default') {
|
|
22
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
23
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return e[k]; }
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
n["default"] = e;
|
|
31
|
+
return Object.freeze(n);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
35
|
+
var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
|
|
36
|
+
var Yup__namespace = /*#__PURE__*/_interopNamespace(Yup);
|
|
37
|
+
|
|
38
|
+
function _arrayWithHoles(arr) {
|
|
39
|
+
if (Array.isArray(arr)) return arr;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function _iterableToArrayLimit(arr, i) {
|
|
43
|
+
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
|
|
44
|
+
if (null != _i) {
|
|
45
|
+
var _s,
|
|
46
|
+
_e,
|
|
47
|
+
_x,
|
|
48
|
+
_r,
|
|
49
|
+
_arr = [],
|
|
50
|
+
_n = !0,
|
|
51
|
+
_d = !1;
|
|
52
|
+
try {
|
|
53
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) {
|
|
54
|
+
if (Object(_i) !== _i) return;
|
|
55
|
+
_n = !1;
|
|
56
|
+
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
57
|
+
} catch (err) {
|
|
58
|
+
_d = !0, _e = err;
|
|
59
|
+
} finally {
|
|
60
|
+
try {
|
|
61
|
+
if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
|
|
62
|
+
} finally {
|
|
63
|
+
if (_d) throw _e;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return _arr;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function _arrayLikeToArray(arr, len) {
|
|
71
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
72
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
73
|
+
return arr2;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
77
|
+
if (!o) return;
|
|
78
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
79
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
80
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
81
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
82
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function _nonIterableRest() {
|
|
86
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function _slicedToArray(arr, i) {
|
|
90
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function _typeof(obj) {
|
|
94
|
+
"@babel/helpers - typeof";
|
|
95
|
+
|
|
96
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
97
|
+
return typeof obj;
|
|
98
|
+
} : function (obj) {
|
|
99
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
100
|
+
}, _typeof(obj);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function _toPrimitive(input, hint) {
|
|
104
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
105
|
+
var prim = input[Symbol.toPrimitive];
|
|
106
|
+
if (prim !== undefined) {
|
|
107
|
+
var res = prim.call(input, hint || "default");
|
|
108
|
+
if (_typeof(res) !== "object") return res;
|
|
109
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
110
|
+
}
|
|
111
|
+
return (hint === "string" ? String : Number)(input);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function _toPropertyKey(arg) {
|
|
115
|
+
var key = _toPrimitive(arg, "string");
|
|
116
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function _defineProperty(obj, key, value) {
|
|
120
|
+
key = _toPropertyKey(key);
|
|
121
|
+
if (key in obj) {
|
|
122
|
+
Object.defineProperty(obj, key, {
|
|
123
|
+
value: value,
|
|
124
|
+
enumerable: true,
|
|
125
|
+
configurable: true,
|
|
126
|
+
writable: true
|
|
127
|
+
});
|
|
128
|
+
} else {
|
|
129
|
+
obj[key] = value;
|
|
130
|
+
}
|
|
131
|
+
return obj;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
var Menu = neetoui.Dropdown.Menu,
|
|
135
|
+
MenuItem = neetoui.Dropdown.MenuItem;
|
|
136
|
+
var Actions = function Actions(_ref) {
|
|
137
|
+
var apiKey = _ref.apiKey,
|
|
138
|
+
setApiKeyToDelete = _ref.setApiKeyToDelete;
|
|
139
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
140
|
+
t = _useTranslation.t;
|
|
141
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
|
|
142
|
+
buttonStyle: "text",
|
|
143
|
+
icon: neetoIcons.MenuHorizontal,
|
|
144
|
+
strategy: "fixed"
|
|
145
|
+
}, /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
|
|
146
|
+
"data-cy": "delete-apikey-button",
|
|
147
|
+
onClick: function onClick() {
|
|
148
|
+
return setApiKeyToDelete(apiKey);
|
|
149
|
+
}
|
|
150
|
+
}, t("neetoIntegrations.common.delete"))));
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
154
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
155
|
+
var getApiKeysTableColumnData = function getApiKeysTableColumnData() {
|
|
156
|
+
return [{
|
|
157
|
+
title: i18next__default["default"].t("neetoIntegrations.zapier.tableColumns.label"),
|
|
158
|
+
dataIndex: "options",
|
|
159
|
+
key: "options",
|
|
160
|
+
width: 272,
|
|
161
|
+
render: function render(options, _ref) {
|
|
162
|
+
var actions = _ref.actions;
|
|
163
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
164
|
+
className: "flex items-center justify-between gap-x-3"
|
|
165
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
166
|
+
className: "w-4/5",
|
|
167
|
+
style: "body2"
|
|
168
|
+
}, options === null || options === void 0 ? void 0 : options.label), actions);
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
171
|
+
title: i18next__default["default"].t("neetoIntegrations.zapier.tableColumns.createdAt"),
|
|
172
|
+
dataIndex: "createdAt",
|
|
173
|
+
key: "createdAt"
|
|
174
|
+
}];
|
|
175
|
+
};
|
|
176
|
+
var getApiKeysTableRowData = function getApiKeysTableRowData(_ref2) {
|
|
177
|
+
var apiKeys = _ref2.apiKeys,
|
|
178
|
+
setApiKeyToDelete = _ref2.setApiKeyToDelete;
|
|
179
|
+
return apiKeys.map(function (apiKey) {
|
|
180
|
+
return _objectSpread$1(_objectSpread$1({}, apiKey), {}, {
|
|
181
|
+
createdAt: utils.timeFormat.fromNow(apiKey.createdAt),
|
|
182
|
+
actions: /*#__PURE__*/React__default["default"].createElement(Actions, {
|
|
183
|
+
apiKey: apiKey,
|
|
184
|
+
setApiKeyToDelete: setApiKeyToDelete
|
|
185
|
+
})
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var ApiKeysList = function ApiKeysList(_ref) {
|
|
191
|
+
var _apiKeyToDelete$optio;
|
|
192
|
+
var _ref$apiKeys = _ref.apiKeys,
|
|
193
|
+
apiKeys = _ref$apiKeys === void 0 ? [] : _ref$apiKeys,
|
|
194
|
+
_ref$deleteApiKey = _ref.deleteApiKey,
|
|
195
|
+
deleteApiKey = _ref$deleteApiKey === void 0 ? pure.noop : _ref$deleteApiKey,
|
|
196
|
+
_ref$isDeleting = _ref.isDeleting,
|
|
197
|
+
isDeleting = _ref$isDeleting === void 0 ? false : _ref$isDeleting,
|
|
198
|
+
_ref$setNewlyCreatedA = _ref.setNewlyCreatedApiKey,
|
|
199
|
+
setNewlyCreatedApiKey = _ref$setNewlyCreatedA === void 0 ? pure.noop : _ref$setNewlyCreatedA;
|
|
200
|
+
var _useState = React.useState(null),
|
|
201
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
202
|
+
apiKeyToDelete = _useState2[0],
|
|
203
|
+
setApiKeyToDelete = _useState2[1];
|
|
204
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
205
|
+
t = _useTranslation.t;
|
|
206
|
+
var closeAlert = function closeAlert() {
|
|
207
|
+
return setApiKeyToDelete(null);
|
|
208
|
+
};
|
|
209
|
+
var handleSubmit = function handleSubmit() {
|
|
210
|
+
deleteApiKey(apiKeyToDelete === null || apiKeyToDelete === void 0 ? void 0 : apiKeyToDelete.id, {
|
|
211
|
+
onSuccess: function onSuccess() {
|
|
212
|
+
closeAlert();
|
|
213
|
+
setNewlyCreatedApiKey("");
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
if (ramda.isEmpty(apiKeys)) return null;
|
|
218
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
219
|
+
className: "space-y-2"
|
|
220
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
221
|
+
style: "h3"
|
|
222
|
+
}, t("neetoIntegrations.zapier.tableTitle")), /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
|
|
223
|
+
fixedHeight: true,
|
|
224
|
+
allowRowClick: false,
|
|
225
|
+
columnData: getApiKeysTableColumnData(),
|
|
226
|
+
rowData: getApiKeysTableRowData({
|
|
227
|
+
apiKeys: apiKeys,
|
|
228
|
+
setApiKeyToDelete: setApiKeyToDelete
|
|
229
|
+
})
|
|
230
|
+
})), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
|
|
231
|
+
backdropClassName: "zapier-delete-alert",
|
|
232
|
+
isOpen: ramda.isNotNil(apiKeyToDelete),
|
|
233
|
+
isSubmitting: isDeleting,
|
|
234
|
+
submitButtonLabel: t("neetoIntegrations.common.delete"),
|
|
235
|
+
title: t("neetoIntegrations.zapier.deleteApiKey.title"),
|
|
236
|
+
message: /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
|
|
237
|
+
i18nKey: "neetoIntegrations.zapier.deleteApiKey.message",
|
|
238
|
+
values: {
|
|
239
|
+
key: apiKeyToDelete === null || apiKeyToDelete === void 0 ? void 0 : (_apiKeyToDelete$optio = apiKeyToDelete.options) === null || _apiKeyToDelete$optio === void 0 ? void 0 : _apiKeyToDelete$optio.label
|
|
240
|
+
}
|
|
241
|
+
}),
|
|
242
|
+
onClose: closeAlert,
|
|
243
|
+
onSubmit: handleSubmit
|
|
244
|
+
}));
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
var GENERATE_API_KEY_VALIDATION = Yup__namespace.object({
|
|
248
|
+
label: Yup__namespace.string().required(i18next__default["default"].t("neetoIntegrations.common.required"))
|
|
249
|
+
});
|
|
250
|
+
var GENERATE_API_KEY_FORMIK_PROPS = {
|
|
251
|
+
initialValues: {
|
|
252
|
+
label: ""
|
|
253
|
+
},
|
|
254
|
+
validationSchema: GENERATE_API_KEY_VALIDATION
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
258
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
259
|
+
var GenerateKey = function GenerateKey(_ref) {
|
|
260
|
+
var handleSubmit = _ref.handleSubmit,
|
|
261
|
+
isLoading = _ref.isLoading;
|
|
262
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
263
|
+
t = _useTranslation.t;
|
|
264
|
+
var inputRef = React.useRef(null);
|
|
265
|
+
React.useEffect(function () {
|
|
266
|
+
if (inputRef.current) {
|
|
267
|
+
inputRef.current.focus();
|
|
268
|
+
}
|
|
269
|
+
}, []);
|
|
270
|
+
return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
|
|
271
|
+
formikProps: _objectSpread(_objectSpread({}, GENERATE_API_KEY_FORMIK_PROPS), {}, {
|
|
272
|
+
onSubmit: handleSubmit
|
|
273
|
+
})
|
|
274
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
275
|
+
className: "space-y-4"
|
|
276
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
|
|
277
|
+
name: "label",
|
|
278
|
+
placeholder: t("neetoIntegrations.zapier.labelInputPlaceholder"),
|
|
279
|
+
ref: inputRef
|
|
280
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
281
|
+
label: t("neetoIntegrations.zapier.generateApiKey"),
|
|
282
|
+
loading: isLoading,
|
|
283
|
+
type: "submit"
|
|
284
|
+
})));
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
var NewApiKeyCallout = function NewApiKeyCallout(_ref) {
|
|
288
|
+
var apiKey = _ref.apiKey;
|
|
289
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
290
|
+
t = _useTranslation.t;
|
|
291
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
292
|
+
className: "mb-8 space-y-2"
|
|
293
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, null, t("neetoIntegrations.zapier.newApiKeyInstruction")), /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
|
|
294
|
+
className: "flex justify-between",
|
|
295
|
+
style: "success"
|
|
296
|
+
}, apiKey, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
297
|
+
icon: neetoIcons.Copy,
|
|
298
|
+
style: "text",
|
|
299
|
+
tooltipProps: {
|
|
300
|
+
content: t("neetoIntegrations.zapier.copyApiKey")
|
|
301
|
+
},
|
|
302
|
+
onClick: function onClick() {
|
|
303
|
+
return utils.copyToClipboard(apiKey);
|
|
304
|
+
}
|
|
305
|
+
})));
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
var ZapierForm = function ZapierForm(_ref) {
|
|
309
|
+
var _ref$newlyCreatedApiK = _ref.newlyCreatedApiKey,
|
|
310
|
+
newlyCreatedApiKey = _ref$newlyCreatedApiK === void 0 ? "" : _ref$newlyCreatedApiK,
|
|
311
|
+
_ref$videoUrl = _ref.videoUrl,
|
|
312
|
+
videoUrl = _ref$videoUrl === void 0 ? "" : _ref$videoUrl,
|
|
313
|
+
_ref$apiKeys = _ref.apiKeys,
|
|
314
|
+
apiKeys = _ref$apiKeys === void 0 ? [] : _ref$apiKeys,
|
|
315
|
+
_ref$isGenerating = _ref.isGenerating,
|
|
316
|
+
isGenerating = _ref$isGenerating === void 0 ? false : _ref$isGenerating,
|
|
317
|
+
_ref$isLoading = _ref.isLoading,
|
|
318
|
+
isLoading = _ref$isLoading === void 0 ? true : _ref$isLoading,
|
|
319
|
+
_ref$isDeleting = _ref.isDeleting,
|
|
320
|
+
isDeleting = _ref$isDeleting === void 0 ? false : _ref$isDeleting,
|
|
321
|
+
_ref$deleteApiKey = _ref.deleteApiKey,
|
|
322
|
+
deleteApiKey = _ref$deleteApiKey === void 0 ? pure.noop : _ref$deleteApiKey,
|
|
323
|
+
_ref$handleGenerateAp = _ref.handleGenerateApiKey,
|
|
324
|
+
handleGenerateApiKey = _ref$handleGenerateAp === void 0 ? pure.noop : _ref$handleGenerateAp,
|
|
325
|
+
_ref$setNewlyCreatedA = _ref.setNewlyCreatedApiKey,
|
|
326
|
+
setNewlyCreatedApiKey = _ref$setNewlyCreatedA === void 0 ? pure.noop : _ref$setNewlyCreatedA,
|
|
327
|
+
_ref$setIsDemoModalOp = _ref.setIsDemoModalOpen,
|
|
328
|
+
setIsDemoModalOpen = _ref$setIsDemoModalOp === void 0 ? pure.noop : _ref$setIsDemoModalOp;
|
|
329
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
330
|
+
t = _useTranslation.t;
|
|
331
|
+
if (isLoading) return /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null);
|
|
332
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
333
|
+
className: "w-full max-w-xl space-y-10 p-10"
|
|
334
|
+
}, pure.isNotEmpty(newlyCreatedApiKey) && /*#__PURE__*/React__default["default"].createElement(NewApiKeyCallout, {
|
|
335
|
+
apiKey: newlyCreatedApiKey
|
|
336
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
337
|
+
style: "h2"
|
|
338
|
+
}, t("neetoIntegrations.zapier.apiKeys")), ramda.isEmpty(apiKeys) && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
339
|
+
style: "h4"
|
|
340
|
+
}, t("neetoIntegrations.zapier.emptyText")), /*#__PURE__*/React__default["default"].createElement(GenerateKey, {
|
|
341
|
+
handleSubmit: handleGenerateApiKey,
|
|
342
|
+
isLoading: isGenerating
|
|
343
|
+
}), /*#__PURE__*/React__default["default"].createElement(ApiKeysList, {
|
|
344
|
+
apiKeys: apiKeys,
|
|
345
|
+
deleteApiKey: deleteApiKey,
|
|
346
|
+
isDeleting: isDeleting,
|
|
347
|
+
setNewlyCreatedApiKey: setNewlyCreatedApiKey
|
|
348
|
+
}), pure.isNotEmpty(videoUrl) && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
349
|
+
className: "mb-6",
|
|
350
|
+
label: t("neetoIntegrations.zapier.walkthroughText"),
|
|
351
|
+
style: "link",
|
|
352
|
+
onClick: function onClick() {
|
|
353
|
+
return setIsDemoModalOpen(true);
|
|
354
|
+
}
|
|
355
|
+
}));
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
module.exports = ZapierForm;
|
|
359
|
+
//# sourceMappingURL=ZapierForm.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZapierForm.cjs.js","sources":["../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../src/components/Integrations/ZapierForm/Actions.jsx","../src/components/Integrations/ZapierForm/utils.jsx","../src/components/Integrations/ZapierForm/ApiKeysList.jsx","../src/components/Integrations/ZapierForm/constants.js","../src/components/Integrations/ZapierForm/GenerateKey.jsx","../src/components/Integrations/ZapierForm/NewApiKeyCallout.jsx","../src/components/Integrations/ZapierForm/index.jsx"],"sourcesContent":["export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import React from \"react\";\n\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Actions = ({ apiKey, setApiKeyToDelete }) => {\n const { t } = useTranslation();\n\n return (\n <Dropdown buttonStyle=\"text\" icon={MenuHorizontal} strategy=\"fixed\">\n <Menu>\n <MenuItem.Button\n data-cy=\"delete-apikey-button\"\n onClick={() => setApiKeyToDelete(apiKey)}\n >\n {t(\"neetoIntegrations.common.delete\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n );\n};\n\nexport default Actions;\n","import React from \"react\";\n\nimport i18next from \"i18next\";\nimport { timeFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport Actions from \"./Actions\";\n\nexport const getApiKeysTableColumnData = () => [\n {\n title: i18next.t(\"neetoIntegrations.zapier.tableColumns.label\"),\n dataIndex: \"options\",\n key: \"options\",\n width: 272,\n render: (options, { actions }) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography className=\"w-4/5\" style=\"body2\">\n {options?.label}\n </Typography>\n {actions}\n </div>\n ),\n },\n {\n title: i18next.t(\"neetoIntegrations.zapier.tableColumns.createdAt\"),\n dataIndex: \"createdAt\",\n key: \"createdAt\",\n },\n];\n\nexport const getApiKeysTableRowData = ({ apiKeys, setApiKeyToDelete }) =>\n apiKeys.map(apiKey => ({\n ...apiKey,\n createdAt: timeFormat.fromNow(apiKey.createdAt),\n actions: <Actions apiKey={apiKey} setApiKeyToDelete={setApiKeyToDelete} />,\n }));\n","import React, { useState } from \"react\";\n\nimport { noop } from \"neetocommons/pure\";\nimport { Alert, Table, Typography } from \"neetoui\";\nimport { isNotNil, isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { getApiKeysTableColumnData, getApiKeysTableRowData } from \"./utils\";\n\nconst ApiKeysList = ({\n apiKeys = [],\n deleteApiKey = noop,\n isDeleting = false,\n setNewlyCreatedApiKey = noop,\n}) => {\n const [apiKeyToDelete, setApiKeyToDelete] = useState(null);\n\n const { t } = useTranslation();\n\n const closeAlert = () => setApiKeyToDelete(null);\n\n const handleSubmit = () => {\n deleteApiKey(apiKeyToDelete?.id, {\n onSuccess: () => {\n closeAlert();\n setNewlyCreatedApiKey(\"\");\n },\n });\n };\n\n if (isEmpty(apiKeys)) return null;\n\n return (\n <>\n <div className=\"space-y-2\">\n <Typography style=\"h3\">\n {t(\"neetoIntegrations.zapier.tableTitle\")}\n </Typography>\n <Table\n fixedHeight\n allowRowClick={false}\n columnData={getApiKeysTableColumnData()}\n rowData={getApiKeysTableRowData({ apiKeys, setApiKeyToDelete })}\n />\n </div>\n <Alert\n backdropClassName=\"zapier-delete-alert\"\n isOpen={isNotNil(apiKeyToDelete)}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoIntegrations.common.delete\")}\n title={t(\"neetoIntegrations.zapier.deleteApiKey.title\")}\n message={\n <Trans\n i18nKey=\"neetoIntegrations.zapier.deleteApiKey.message\"\n values={{ key: apiKeyToDelete?.options?.label }}\n />\n }\n onClose={closeAlert}\n onSubmit={handleSubmit}\n />\n </>\n );\n};\n\nexport default ApiKeysList;\n","import i18next from \"i18next\";\nimport * as Yup from \"yup\";\n\nconst GENERATE_API_KEY_VALIDATION = Yup.object({\n label: Yup.string().required(i18next.t(\"neetoIntegrations.common.required\")),\n});\n\nexport const GENERATE_API_KEY_FORMIK_PROPS = {\n initialValues: { label: \"\" },\n validationSchema: GENERATE_API_KEY_VALIDATION,\n};\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Button } from \"neetoui\";\nimport { Form, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { GENERATE_API_KEY_FORMIK_PROPS } from \"./constants\";\n\nconst GenerateKey = ({ handleSubmit, isLoading }) => {\n const { t } = useTranslation();\n const inputRef = useRef(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, []);\n\n return (\n <Form\n formikProps={{\n ...GENERATE_API_KEY_FORMIK_PROPS,\n onSubmit: handleSubmit,\n }}\n >\n <div className=\"space-y-4\">\n <Input\n name=\"label\"\n placeholder={t(\"neetoIntegrations.zapier.labelInputPlaceholder\")}\n ref={inputRef}\n />\n <Button\n label={t(\"neetoIntegrations.zapier.generateApiKey\")}\n loading={isLoading}\n type=\"submit\"\n />\n </div>\n </Form>\n );\n};\n\nexport default GenerateKey;\n","import React from \"react\";\n\nimport { copyToClipboard } from \"neetocommons/utils\";\nimport { Copy } from \"neetoicons\";\nimport { Button, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst NewApiKeyCallout = ({ apiKey }) => {\n const { t } = useTranslation();\n\n return (\n <div className=\"mb-8 space-y-2\">\n <Callout>{t(\"neetoIntegrations.zapier.newApiKeyInstruction\")}</Callout>\n <Callout className=\"flex justify-between\" style=\"success\">\n {apiKey}\n <Button\n icon={Copy}\n style=\"text\"\n tooltipProps={{ content: t(\"neetoIntegrations.zapier.copyApiKey\") }}\n onClick={() => copyToClipboard(apiKey)}\n />\n </Callout>\n </div>\n );\n};\n\nexport default NewApiKeyCallout;\n","import React from \"react\";\n\nimport { isNotEmpty, noop } from \"neetocommons/pure\";\nimport { Button, Spinner, Typography } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ApiKeysList from \"./ApiKeysList\";\nimport GenerateKey from \"./GenerateKey\";\nimport NewApiKeyCallout from \"./NewApiKeyCallout\";\n\nconst ZapierForm = ({\n newlyCreatedApiKey = \"\",\n videoUrl = \"\",\n apiKeys = [],\n isGenerating = false,\n isLoading = true,\n isDeleting = false,\n deleteApiKey = noop,\n handleGenerateApiKey = noop,\n setNewlyCreatedApiKey = noop,\n setIsDemoModalOpen = noop,\n}) => {\n const { t } = useTranslation();\n\n if (isLoading) return <Spinner />;\n\n return (\n <div className=\"w-full max-w-xl space-y-10 p-10\">\n {isNotEmpty(newlyCreatedApiKey) && (\n <NewApiKeyCallout apiKey={newlyCreatedApiKey} />\n )}\n <Typography style=\"h2\">\n {t(\"neetoIntegrations.zapier.apiKeys\")}\n </Typography>\n {isEmpty(apiKeys) && (\n <Typography style=\"h4\">\n {t(\"neetoIntegrations.zapier.emptyText\")}\n </Typography>\n )}\n <GenerateKey\n handleSubmit={handleGenerateApiKey}\n isLoading={isGenerating}\n />\n <ApiKeysList\n apiKeys={apiKeys}\n deleteApiKey={deleteApiKey}\n isDeleting={isDeleting}\n setNewlyCreatedApiKey={setNewlyCreatedApiKey}\n />\n {isNotEmpty(videoUrl) && (\n <Button\n className=\"mb-6\"\n label={t(\"neetoIntegrations.zapier.walkthroughText\")}\n style=\"link\"\n onClick={() => setIsDemoModalOpen(true)}\n />\n )}\n </div>\n );\n};\n\nexport default ZapierForm;\n"],"names":["_arrayWithHoles","arr","Array","isArray","_iterableToArrayLimit","i","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","Object","done","push","value","length","err","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","n","prototype","toString","slice","constructor","name","from","test","_nonIterableRest","TypeError","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_typeof","obj","_toPrimitive","input","hint","prim","toPrimitive","undefined","res","String","Number","_toPropertyKey","arg","key","_defineProperty","toPropertyKey","defineProperty","enumerable","configurable","writable","Menu","Dropdown","MenuItem","Actions","_ref","apiKey","setApiKeyToDelete","_useTranslation","useTranslation","t","React","createElement","buttonStyle","icon","MenuHorizontal","strategy","Button","onClick","getApiKeysTableColumnData","title","i18next","dataIndex","width","render","options","actions","className","Typography","style","label","getApiKeysTableRowData","_ref2","apiKeys","map","_objectSpread","createdAt","timeFormat","fromNow","ApiKeysList","_apiKeyToDelete$optio","_ref$apiKeys","_ref$deleteApiKey","deleteApiKey","noop","_ref$isDeleting","isDeleting","_ref$setNewlyCreatedA","setNewlyCreatedApiKey","_useState","useState","_useState2","apiKeyToDelete","closeAlert","handleSubmit","id","onSuccess","isEmpty","Fragment","Table","fixedHeight","allowRowClick","columnData","rowData","Alert","backdropClassName","isOpen","isNotNil","isSubmitting","submitButtonLabel","message","Trans","i18nKey","values","onClose","onSubmit","GENERATE_API_KEY_VALIDATION","Yup","object","string","required","GENERATE_API_KEY_FORMIK_PROPS","initialValues","validationSchema","GenerateKey","isLoading","inputRef","useRef","useEffect","current","focus","Form","formikProps","Input","placeholder","ref","loading","type","NewApiKeyCallout","Callout","Copy","tooltipProps","content","copyToClipboard","ZapierForm","_ref$newlyCreatedApiK","newlyCreatedApiKey","_ref$videoUrl","videoUrl","_ref$isGenerating","isGenerating","_ref$isLoading","_ref$handleGenerateAp","handleGenerateApiKey","_ref$setIsDemoModalOp","setIsDemoModalOpen","Spinner","isNotEmpty"],"mappings":"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"}
|