powr-sdk-web 5.6.10 → 5.6.11
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/dist/admin/index.js +3 -0
- package/dist/forms/admin.js +177 -61
- package/package.json +1 -1
package/dist/admin/index.js
CHANGED
|
@@ -30,6 +30,7 @@ var AdminDashboard = function AdminDashboard(_ref) {
|
|
|
30
30
|
projectId = _ref.projectId,
|
|
31
31
|
_ref$sections = _ref.sections,
|
|
32
32
|
sections = _ref$sections === void 0 ? [] : _ref$sections,
|
|
33
|
+
formPublicBaseUrl = _ref.formPublicBaseUrl,
|
|
33
34
|
_ref$theme = _ref.theme,
|
|
34
35
|
theme = _ref$theme === void 0 ? "default" : _ref$theme;
|
|
35
36
|
var _useState = (0, _react.useState)(null),
|
|
@@ -190,6 +191,7 @@ var AdminDashboard = function AdminDashboard(_ref) {
|
|
|
190
191
|
var sectionProps = {
|
|
191
192
|
apiUrl: apiUrl,
|
|
192
193
|
projectId: projectId,
|
|
194
|
+
formPublicBaseUrl: formPublicBaseUrl,
|
|
193
195
|
theme: theme === 'dark' ? 'dark' : 'blue'
|
|
194
196
|
};
|
|
195
197
|
switch (currentSection) {
|
|
@@ -272,6 +274,7 @@ var AdminDashboard = function AdminDashboard(_ref) {
|
|
|
272
274
|
AdminDashboard.propTypes = {
|
|
273
275
|
projectId: _propTypes["default"].string,
|
|
274
276
|
sections: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
277
|
+
formPublicBaseUrl: _propTypes["default"].string,
|
|
275
278
|
theme: _propTypes["default"].oneOf(['default', 'dark'])
|
|
276
279
|
};
|
|
277
280
|
var _default = exports["default"] = AdminDashboard;
|
package/dist/forms/admin.js
CHANGED
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _auth = require("../utils/auth");
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t5 in e) "default" !== _t5 && {}.hasOwnProperty.call(e, _t5) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t5)) && (i.get || i.set) ? o(f, _t5, i) : f[_t5] = e[_t5]); return f; })(e, t); }
|
|
11
11
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
12
12
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
13
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
@@ -30,6 +30,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
|
30
30
|
var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
31
31
|
var projectId = _ref.projectId,
|
|
32
32
|
apiUrl = _ref.apiUrl,
|
|
33
|
+
formPublicBaseUrl = _ref.formPublicBaseUrl,
|
|
33
34
|
onFormAction = _ref.onFormAction,
|
|
34
35
|
onRefresh = _ref.onRefresh;
|
|
35
36
|
var _useState = (0, _react.useState)([]),
|
|
@@ -56,39 +57,47 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
56
57
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
57
58
|
createFeedback = _useState10[0],
|
|
58
59
|
setCreateFeedback = _useState10[1];
|
|
59
|
-
var _useState11 = (0, _react.useState)(
|
|
60
|
+
var _useState11 = (0, _react.useState)(''),
|
|
61
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
62
|
+
createdFormLink = _useState12[0],
|
|
63
|
+
setCreatedFormLink = _useState12[1];
|
|
64
|
+
var _useState13 = (0, _react.useState)(''),
|
|
65
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
66
|
+
copiedFormName = _useState14[0],
|
|
67
|
+
setCopiedFormName = _useState14[1];
|
|
68
|
+
var _useState15 = (0, _react.useState)({
|
|
60
69
|
formTitle: '',
|
|
61
70
|
formName: '',
|
|
62
71
|
formId: '',
|
|
63
72
|
fields: []
|
|
64
73
|
}),
|
|
65
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
66
|
-
formDraft = _useState12[0],
|
|
67
|
-
setFormDraft = _useState12[1];
|
|
68
|
-
var _useState13 = (0, _react.useState)(null),
|
|
69
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
70
|
-
selectedForm = _useState14[0],
|
|
71
|
-
setSelectedForm = _useState14[1];
|
|
72
|
-
var _useState15 = (0, _react.useState)(false),
|
|
73
74
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var _useState17 = (0, _react.useState)(
|
|
75
|
+
formDraft = _useState16[0],
|
|
76
|
+
setFormDraft = _useState16[1];
|
|
77
|
+
var _useState17 = (0, _react.useState)(null),
|
|
77
78
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
var _useState19 = (0, _react.useState)(
|
|
79
|
+
selectedForm = _useState18[0],
|
|
80
|
+
setSelectedForm = _useState18[1];
|
|
81
|
+
var _useState19 = (0, _react.useState)(false),
|
|
81
82
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var _useState21 = (0, _react.useState)(
|
|
83
|
+
showDetailModal = _useState20[0],
|
|
84
|
+
setShowDetailModal = _useState20[1];
|
|
85
|
+
var _useState21 = (0, _react.useState)('responses'),
|
|
85
86
|
_useState22 = _slicedToArray(_useState21, 2),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var _useState23 = (0, _react.useState)(
|
|
87
|
+
activeTab = _useState22[0],
|
|
88
|
+
setActiveTab = _useState22[1];
|
|
89
|
+
var _useState23 = (0, _react.useState)([]),
|
|
89
90
|
_useState24 = _slicedToArray(_useState23, 2),
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
formResponses = _useState24[0],
|
|
92
|
+
setFormResponses = _useState24[1];
|
|
93
|
+
var _useState25 = (0, _react.useState)(0),
|
|
94
|
+
_useState26 = _slicedToArray(_useState25, 2),
|
|
95
|
+
responseCount = _useState26[0],
|
|
96
|
+
setResponseCount = _useState26[1];
|
|
97
|
+
var _useState27 = (0, _react.useState)(false),
|
|
98
|
+
_useState28 = _slicedToArray(_useState27, 2),
|
|
99
|
+
loadingResponses = _useState28[0],
|
|
100
|
+
setLoadingResponses = _useState28[1];
|
|
92
101
|
var fetchForms = /*#__PURE__*/function () {
|
|
93
102
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
94
103
|
var _yield$apiCall, data, ok, _t;
|
|
@@ -200,7 +209,75 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
200
209
|
onFormAction(type, message);
|
|
201
210
|
}
|
|
202
211
|
};
|
|
212
|
+
var getFormPublicUrl = function getFormPublicUrl(formName) {
|
|
213
|
+
if (!formName) return '';
|
|
214
|
+
var base = (formPublicBaseUrl === null || formPublicBaseUrl === void 0 ? void 0 : formPublicBaseUrl.replace(/\/$/, '')) || (typeof window !== 'undefined' ? "".concat(window.location.origin, "/forms") : '/forms');
|
|
215
|
+
return "".concat(base, "?id=").concat(encodeURIComponent(formName));
|
|
216
|
+
};
|
|
217
|
+
var copyFormLink = /*#__PURE__*/function () {
|
|
218
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(formName, event) {
|
|
219
|
+
var _event$stopPropagatio;
|
|
220
|
+
var url, _t3;
|
|
221
|
+
return _regenerator().w(function (_context3) {
|
|
222
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
223
|
+
case 0:
|
|
224
|
+
event === null || event === void 0 || (_event$stopPropagatio = event.stopPropagation) === null || _event$stopPropagatio === void 0 || _event$stopPropagatio.call(event);
|
|
225
|
+
url = getFormPublicUrl(formName);
|
|
226
|
+
if (url) {
|
|
227
|
+
_context3.n = 1;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
return _context3.a(2);
|
|
231
|
+
case 1:
|
|
232
|
+
_context3.p = 1;
|
|
233
|
+
_context3.n = 2;
|
|
234
|
+
return navigator.clipboard.writeText(url);
|
|
235
|
+
case 2:
|
|
236
|
+
setCopiedFormName(formName);
|
|
237
|
+
setTimeout(function () {
|
|
238
|
+
return setCopiedFormName('');
|
|
239
|
+
}, 2000);
|
|
240
|
+
_context3.n = 4;
|
|
241
|
+
break;
|
|
242
|
+
case 3:
|
|
243
|
+
_context3.p = 3;
|
|
244
|
+
_t3 = _context3.v;
|
|
245
|
+
notify('error', 'Could not copy link');
|
|
246
|
+
case 4:
|
|
247
|
+
return _context3.a(2);
|
|
248
|
+
}
|
|
249
|
+
}, _callee3, null, [[1, 3]]);
|
|
250
|
+
}));
|
|
251
|
+
return function copyFormLink(_x2, _x3) {
|
|
252
|
+
return _ref4.apply(this, arguments);
|
|
253
|
+
};
|
|
254
|
+
}();
|
|
255
|
+
var FormPublicLink = function FormPublicLink(_ref5) {
|
|
256
|
+
var formName = _ref5.formName,
|
|
257
|
+
_ref5$compact = _ref5.compact,
|
|
258
|
+
compact = _ref5$compact === void 0 ? false : _ref5$compact;
|
|
259
|
+
var url = getFormPublicUrl(formName);
|
|
260
|
+
if (!url) return null;
|
|
261
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
262
|
+
className: "flex items-center gap-2 ".concat(compact ? 'mt-1' : 'mt-2'),
|
|
263
|
+
onClick: function onClick(e) {
|
|
264
|
+
return e.stopPropagation();
|
|
265
|
+
}
|
|
266
|
+
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
267
|
+
href: url,
|
|
268
|
+
target: "_blank",
|
|
269
|
+
rel: "noopener noreferrer",
|
|
270
|
+
className: "text-xs text-blue-600 hover:text-blue-800 underline truncate max-w-md"
|
|
271
|
+
}, url), /*#__PURE__*/_react["default"].createElement("button", {
|
|
272
|
+
type: "button",
|
|
273
|
+
onClick: function onClick(e) {
|
|
274
|
+
return copyFormLink(formName, e);
|
|
275
|
+
},
|
|
276
|
+
className: "shrink-0 text-xs text-gray-600 hover:text-gray-900 border border-gray-300 rounded px-2 py-0.5"
|
|
277
|
+
}, copiedFormName === formName ? 'Copied!' : 'Copy'));
|
|
278
|
+
};
|
|
203
279
|
var resetFormDraft = function resetFormDraft() {
|
|
280
|
+
setCreatedFormLink('');
|
|
204
281
|
setFormDraft({
|
|
205
282
|
formTitle: '',
|
|
206
283
|
formName: '',
|
|
@@ -265,46 +342,46 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
265
342
|
});
|
|
266
343
|
};
|
|
267
344
|
var createForm = /*#__PURE__*/function () {
|
|
268
|
-
var
|
|
269
|
-
var trimmedTitle, trimmedName, trimmedId, hasInvalidField, fieldNames, duplicateNames, usedNames, normalizedFields, payload, _yield$apiCall3, result, ok, errorMessage,
|
|
270
|
-
return _regenerator().w(function (
|
|
271
|
-
while (1) switch (
|
|
345
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
|
|
346
|
+
var trimmedTitle, trimmedName, trimmedId, hasInvalidField, fieldNames, duplicateNames, usedNames, normalizedFields, payload, _yield$apiCall3, result, ok, errorMessage, _t4;
|
|
347
|
+
return _regenerator().w(function (_context4) {
|
|
348
|
+
while (1) switch (_context4.p = _context4.n) {
|
|
272
349
|
case 0:
|
|
273
350
|
setCreateFeedback('');
|
|
274
351
|
if (projectId) {
|
|
275
|
-
|
|
352
|
+
_context4.n = 1;
|
|
276
353
|
break;
|
|
277
354
|
}
|
|
278
355
|
notify('error', 'Project ID is required');
|
|
279
|
-
return
|
|
356
|
+
return _context4.a(2);
|
|
280
357
|
case 1:
|
|
281
358
|
trimmedTitle = formDraft.formTitle.trim();
|
|
282
359
|
trimmedName = formDraft.formName.trim();
|
|
283
360
|
trimmedId = formDraft.formId.trim();
|
|
284
361
|
if (!(!trimmedTitle || !trimmedName || !trimmedId)) {
|
|
285
|
-
|
|
362
|
+
_context4.n = 2;
|
|
286
363
|
break;
|
|
287
364
|
}
|
|
288
365
|
notify('error', 'Form title, name, and ID are required');
|
|
289
|
-
return
|
|
366
|
+
return _context4.a(2);
|
|
290
367
|
case 2:
|
|
291
368
|
if (!(formDraft.fields.length === 0)) {
|
|
292
|
-
|
|
369
|
+
_context4.n = 3;
|
|
293
370
|
break;
|
|
294
371
|
}
|
|
295
372
|
notify('error', 'Add at least one field');
|
|
296
|
-
return
|
|
373
|
+
return _context4.a(2);
|
|
297
374
|
case 3:
|
|
298
375
|
hasInvalidField = formDraft.fields.some(function (field) {
|
|
299
376
|
var _field$name, _field$label;
|
|
300
377
|
return !((_field$name = field.name) !== null && _field$name !== void 0 && _field$name.trim()) || !((_field$label = field.label) !== null && _field$label !== void 0 && _field$label.trim());
|
|
301
378
|
});
|
|
302
379
|
if (!hasInvalidField) {
|
|
303
|
-
|
|
380
|
+
_context4.n = 4;
|
|
304
381
|
break;
|
|
305
382
|
}
|
|
306
383
|
notify('error', 'Each field needs a name and label');
|
|
307
|
-
return
|
|
384
|
+
return _context4.a(2);
|
|
308
385
|
case 4:
|
|
309
386
|
fieldNames = formDraft.fields.map(function (field) {
|
|
310
387
|
return field.name.trim();
|
|
@@ -313,14 +390,14 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
313
390
|
return fieldNames.indexOf(name) !== index;
|
|
314
391
|
});
|
|
315
392
|
if (!(duplicateNames.length > 0)) {
|
|
316
|
-
|
|
393
|
+
_context4.n = 5;
|
|
317
394
|
break;
|
|
318
395
|
}
|
|
319
396
|
notify('error', "Each field needs a unique name. Duplicate: ".concat(_toConsumableArray(new Set(duplicateNames)).join(', ')));
|
|
320
|
-
return
|
|
397
|
+
return _context4.a(2);
|
|
321
398
|
case 5:
|
|
322
399
|
setIsSaving(true);
|
|
323
|
-
|
|
400
|
+
_context4.p = 6;
|
|
324
401
|
usedNames = new Set();
|
|
325
402
|
normalizedFields = formDraft.fields.map(function (field, index, allFields) {
|
|
326
403
|
var _field$name2;
|
|
@@ -350,48 +427,46 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
350
427
|
formId: trimmedId,
|
|
351
428
|
fields: normalizedFields
|
|
352
429
|
};
|
|
353
|
-
|
|
430
|
+
_context4.n = 7;
|
|
354
431
|
return (0, _auth.apiCall)(apiUrl, "/forms/create-form", projectId, {
|
|
355
432
|
method: 'POST',
|
|
356
433
|
body: payload
|
|
357
434
|
});
|
|
358
435
|
case 7:
|
|
359
|
-
_yield$apiCall3 =
|
|
436
|
+
_yield$apiCall3 = _context4.v;
|
|
360
437
|
result = _yield$apiCall3.data;
|
|
361
438
|
ok = _yield$apiCall3.ok;
|
|
362
439
|
if (ok) {
|
|
363
|
-
|
|
440
|
+
_context4.n = 8;
|
|
364
441
|
break;
|
|
365
442
|
}
|
|
366
443
|
throw new Error(result.message || 'Failed to create form');
|
|
367
444
|
case 8:
|
|
368
445
|
notify('success', result.message || 'Form created successfully!');
|
|
369
|
-
|
|
370
|
-
setCreateFeedback('');
|
|
371
|
-
setShowCreateModal(false);
|
|
446
|
+
setCreatedFormLink(getFormPublicUrl(trimmedName));
|
|
372
447
|
fetchForms();
|
|
373
448
|
if (onRefresh) {
|
|
374
449
|
onRefresh();
|
|
375
450
|
}
|
|
376
|
-
|
|
451
|
+
_context4.n = 10;
|
|
377
452
|
break;
|
|
378
453
|
case 9:
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
console.error('Error creating form:',
|
|
382
|
-
errorMessage =
|
|
454
|
+
_context4.p = 9;
|
|
455
|
+
_t4 = _context4.v;
|
|
456
|
+
console.error('Error creating form:', _t4);
|
|
457
|
+
errorMessage = _t4 instanceof Error ? _t4.message : 'Failed to create form';
|
|
383
458
|
notify('error', errorMessage);
|
|
384
459
|
case 10:
|
|
385
|
-
|
|
460
|
+
_context4.p = 10;
|
|
386
461
|
setIsSaving(false);
|
|
387
|
-
return
|
|
462
|
+
return _context4.f(10);
|
|
388
463
|
case 11:
|
|
389
|
-
return
|
|
464
|
+
return _context4.a(2);
|
|
390
465
|
}
|
|
391
|
-
},
|
|
466
|
+
}, _callee4, null, [[6, 9, 10, 11]]);
|
|
392
467
|
}));
|
|
393
468
|
return function createForm() {
|
|
394
|
-
return
|
|
469
|
+
return _ref6.apply(this, arguments);
|
|
395
470
|
};
|
|
396
471
|
}();
|
|
397
472
|
var handleViewForm = function handleViewForm(form) {
|
|
@@ -481,7 +556,10 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
481
556
|
className: "text-xs text-gray-400"
|
|
482
557
|
}, "ID: ", form.formId), /*#__PURE__*/_react["default"].createElement("p", {
|
|
483
558
|
className: "text-xs text-gray-400"
|
|
484
|
-
}, "Name: ", form.formName)
|
|
559
|
+
}, "Name: ", form.formName), /*#__PURE__*/_react["default"].createElement(FormPublicLink, {
|
|
560
|
+
formName: form.formName,
|
|
561
|
+
compact: true
|
|
562
|
+
})))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
485
563
|
className: "text-sm text-gray-500"
|
|
486
564
|
}, ((_form$fields = form.fields) === null || _form$fields === void 0 ? void 0 : _form$fields.length) || 0, " fields"));
|
|
487
565
|
})))), showCreateModal && /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -490,9 +568,26 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
490
568
|
className: "bg-white rounded-2xl shadow-xl p-8 w-full max-w-3xl max-h-[90vh] overflow-y-auto"
|
|
491
569
|
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
492
570
|
className: "text-xl font-bold text-gray-800 mb-6"
|
|
493
|
-
}, "Create New Form"), createFeedback && /*#__PURE__*/_react["default"].createElement("div", {
|
|
571
|
+
}, "Create New Form"), createFeedback && !createdFormLink && /*#__PURE__*/_react["default"].createElement("div", {
|
|
494
572
|
className: "mb-4 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700"
|
|
495
|
-
}, createFeedback), /*#__PURE__*/_react["default"].createElement("div", {
|
|
573
|
+
}, createFeedback), createdFormLink && /*#__PURE__*/_react["default"].createElement("div", {
|
|
574
|
+
className: "mb-4 rounded-lg border border-green-200 bg-green-50 px-4 py-3 text-sm text-green-800 space-y-2"
|
|
575
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
576
|
+
className: "font-medium"
|
|
577
|
+
}, "Form created! Share this link:"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
578
|
+
className: "flex flex-wrap items-center gap-2"
|
|
579
|
+
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
580
|
+
href: createdFormLink,
|
|
581
|
+
target: "_blank",
|
|
582
|
+
rel: "noopener noreferrer",
|
|
583
|
+
className: "text-blue-700 underline break-all"
|
|
584
|
+
}, createdFormLink), /*#__PURE__*/_react["default"].createElement("button", {
|
|
585
|
+
type: "button",
|
|
586
|
+
onClick: function onClick() {
|
|
587
|
+
return copyFormLink(formDraft.formName.trim());
|
|
588
|
+
},
|
|
589
|
+
className: "text-xs border border-green-300 rounded px-2 py-1 bg-white"
|
|
590
|
+
}, "Copy link"))), !createdFormLink && /*#__PURE__*/_react["default"].createElement("div", {
|
|
496
591
|
className: "space-y-6"
|
|
497
592
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
498
593
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4"
|
|
@@ -550,7 +645,14 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
550
645
|
className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
551
646
|
}), /*#__PURE__*/_react["default"].createElement("p", {
|
|
552
647
|
className: "text-xs text-gray-500 mt-1"
|
|
553
|
-
}, "Used in URLs like `/forms?id=workshopform`")
|
|
648
|
+
}, "Used in URLs like `/forms?id=workshopform`"), formDraft.formName.trim() && /*#__PURE__*/_react["default"].createElement("div", {
|
|
649
|
+
className: "mt-2 rounded-md border border-blue-100 bg-blue-50 px-3 py-2"
|
|
650
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
651
|
+
className: "text-xs font-medium text-blue-900 mb-1"
|
|
652
|
+
}, "Public form link"), /*#__PURE__*/_react["default"].createElement(FormPublicLink, {
|
|
653
|
+
formName: formDraft.formName.trim(),
|
|
654
|
+
compact: true
|
|
655
|
+
})))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
554
656
|
className: "flex items-center justify-between mb-3"
|
|
555
657
|
}, /*#__PURE__*/_react["default"].createElement("h3", {
|
|
556
658
|
className: "text-sm font-semibold text-gray-900"
|
|
@@ -630,7 +732,15 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
630
732
|
}));
|
|
631
733
|
})))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
632
734
|
className: "flex justify-end gap-4 mt-6"
|
|
633
|
-
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
735
|
+
}, createdFormLink ? /*#__PURE__*/_react["default"].createElement("button", {
|
|
736
|
+
type: "button",
|
|
737
|
+
onClick: function onClick() {
|
|
738
|
+
resetFormDraft();
|
|
739
|
+
setCreateFeedback('');
|
|
740
|
+
setShowCreateModal(false);
|
|
741
|
+
},
|
|
742
|
+
className: "bg-blue-600 text-white hover:bg-blue-700 px-4 py-2 rounded-md"
|
|
743
|
+
}, "Done") : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("button", {
|
|
634
744
|
type: "button",
|
|
635
745
|
onClick: function onClick() {
|
|
636
746
|
resetFormDraft();
|
|
@@ -645,7 +755,7 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
645
755
|
className: "bg-blue-600 text-white hover:bg-blue-700 px-4 py-2 rounded-md disabled:opacity-50"
|
|
646
756
|
}, isSaving ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
647
757
|
className: "animate-spin h-5 w-5 mx-auto border-2 border-white border-t-transparent rounded-full"
|
|
648
|
-
}) : 'Create Form')))), showDetailModal && selectedForm && /*#__PURE__*/_react["default"].createElement("div", {
|
|
758
|
+
}) : 'Create Form'))))), showDetailModal && selectedForm && /*#__PURE__*/_react["default"].createElement("div", {
|
|
649
759
|
className: "fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-50"
|
|
650
760
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
651
761
|
className: "bg-white rounded-2xl shadow-xl p-8 w-full max-w-4xl max-h-[90vh] overflow-y-auto"
|
|
@@ -669,6 +779,12 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
669
779
|
strokeWidth: 2,
|
|
670
780
|
d: "M6 18L18 6M6 6l12 12"
|
|
671
781
|
})))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
782
|
+
className: "mb-4 rounded-lg border border-blue-100 bg-blue-50 px-4 py-3"
|
|
783
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
784
|
+
className: "text-sm font-medium text-blue-900 mb-1"
|
|
785
|
+
}, "Public form link"), /*#__PURE__*/_react["default"].createElement(FormPublicLink, {
|
|
786
|
+
formName: selectedForm.formName
|
|
787
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
672
788
|
className: "mb-4"
|
|
673
789
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
674
790
|
className: "flex space-x-4 border-b border-gray-200"
|