@bigbinary/neeto-thank-you-frontend 1.2.0-beta1 → 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.
Files changed (61) hide show
  1. package/README.md +33 -16
  2. package/dist/BrandingInfo-da0b773a.js +32 -0
  3. package/dist/BrandingInfo-da0b773a.js.map +1 -0
  4. package/dist/ConfigureThankYou.js +536 -0
  5. package/dist/ConfigureThankYou.js.map +1 -0
  6. package/dist/ShowThankYou.js +85 -0
  7. package/dist/ShowThankYou.js.map +1 -0
  8. package/dist/SocialShare-d2986d0d.js +40 -0
  9. package/dist/SocialShare-d2986d0d.js.map +1 -0
  10. package/dist/cjs/BrandingInfo-cdb9a379.js +38 -0
  11. package/dist/cjs/BrandingInfo-cdb9a379.js.map +1 -0
  12. package/dist/cjs/ConfigureThankYou.js +578 -0
  13. package/dist/cjs/ConfigureThankYou.js.map +1 -0
  14. package/dist/cjs/ShowThankYou.js +93 -0
  15. package/dist/cjs/ShowThankYou.js.map +1 -0
  16. package/dist/cjs/SocialShare-99170cdb.js +47 -0
  17. package/dist/cjs/SocialShare-99170cdb.js.map +1 -0
  18. package/dist/cjs/commons.js +42 -0
  19. package/dist/cjs/commons.js.map +1 -0
  20. package/dist/cjs/constants.js +19 -0
  21. package/dist/cjs/constants.js.map +1 -0
  22. package/dist/cjs/index.js +54 -0
  23. package/dist/cjs/index.js.map +1 -0
  24. package/dist/cjs/query-95d5312e.js +12 -0
  25. package/dist/cjs/query-95d5312e.js.map +1 -0
  26. package/dist/cjs/useShowThankYouConfiguration.js +12 -0
  27. package/dist/cjs/useShowThankYouConfiguration.js.map +1 -0
  28. package/dist/cjs/useShowThankYouPage.js +11 -0
  29. package/dist/cjs/useShowThankYouPage.js.map +1 -0
  30. package/dist/cjs/useThankYouConfigurationApi-302df56a.js +58 -0
  31. package/dist/cjs/useThankYouConfigurationApi-302df56a.js.map +1 -0
  32. package/dist/cjs/useThankYouPageApi-b6b47745.js +43 -0
  33. package/dist/cjs/useThankYouPageApi-b6b47745.js.map +1 -0
  34. package/dist/cjs/utils.js +16 -0
  35. package/dist/cjs/utils.js.map +1 -0
  36. package/dist/commons.js +33 -0
  37. package/dist/commons.js.map +1 -0
  38. package/dist/constants.js +13 -0
  39. package/dist/constants.js.map +1 -0
  40. package/dist/index.js +43 -877
  41. package/dist/index.js.map +1 -1
  42. package/dist/query-ab526f47.js +9 -0
  43. package/dist/query-ab526f47.js.map +1 -0
  44. package/dist/useShowThankYouConfiguration.js +7 -0
  45. package/dist/useShowThankYouConfiguration.js.map +1 -0
  46. package/dist/useShowThankYouPage.js +6 -0
  47. package/dist/useShowThankYouPage.js.map +1 -0
  48. package/dist/useThankYouConfigurationApi-ed20746a.js +51 -0
  49. package/dist/useThankYouConfigurationApi-ed20746a.js.map +1 -0
  50. package/dist/useThankYouPageApi-1ac56883.js +37 -0
  51. package/dist/useThankYouPageApi-1ac56883.js.map +1 -0
  52. package/dist/utils.js +12 -0
  53. package/dist/utils.js.map +1 -0
  54. package/package.json +24 -15
  55. package/types/ConfigureThankYou.d.ts +49 -0
  56. package/types/ShowThankYou.d.ts +28 -0
  57. package/types/useShowThankYouConfiguration.d.ts +8 -0
  58. package/types/useShowThankYouPage.d.ts +17 -0
  59. package/types.d.ts +4 -78
  60. package/dist/index.cjs.js +0 -924
  61. package/dist/index.cjs.js.map +0 -1
@@ -0,0 +1,578 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var neetoCist = require('@bigbinary/neeto-cist');
5
+ var Scrollable = require('@bigbinary/neeto-molecules/Scrollable');
6
+ var SocialShare = require('./SocialShare-99170cdb.js');
7
+ var i18next = require('i18next');
8
+ var classNames = require('classnames');
9
+ var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
10
+ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
11
+ var BlockNavigation = require('@bigbinary/neetoui/formik/BlockNavigation');
12
+ var NeetoUIForm = require('@bigbinary/neetoui/formik/Form');
13
+ var Radio = require('@bigbinary/neetoui/formik/Radio');
14
+ var ramda = require('ramda');
15
+ var useThankYouConfigurationApi = require('./useThankYouConfigurationApi-302df56a.js');
16
+ var formik = require('formik');
17
+ var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
18
+ var Label$1 = require('@bigbinary/neetoui/Label');
19
+ var Input = require('@bigbinary/neetoui/formik/Input');
20
+ var Switch = require('@bigbinary/neetoui/formik/Switch');
21
+ var reactI18next = require('react-i18next');
22
+ var neetoImageUploaderFrontend = require('@bigbinary/neeto-image-uploader-frontend');
23
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
24
+ var Button = require('@bigbinary/neetoui/Button');
25
+ var Typography = require('@bigbinary/neetoui/Typography');
26
+ var Modal = require('@bigbinary/neetoui/Modal');
27
+ var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
28
+ var BrandingInfo = require('./BrandingInfo-cdb9a379.js');
29
+ var Link = require('@bigbinary/neeto-icons/Link');
30
+ var utils = require('@bigbinary/neeto-editor/utils');
31
+ var yup = require('yup');
32
+ var NeetoUIHeader = require('@bigbinary/neeto-molecules/Header');
33
+ require('@tanstack/react-query');
34
+ require('axios');
35
+ require('./query-95d5312e.js');
36
+ require('./utils.js');
37
+ require('@bigbinary/neeto-commons-frontend/utils');
38
+ require('./constants.js');
39
+ require('@bigbinary/neeto-commons-frontend/initializers');
40
+
41
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
42
+
43
+ function _interopNamespace(e) {
44
+ if (e && e.__esModule) return e;
45
+ var n = Object.create(null);
46
+ if (e) {
47
+ Object.keys(e).forEach(function (k) {
48
+ if (k !== 'default') {
49
+ var d = Object.getOwnPropertyDescriptor(e, k);
50
+ Object.defineProperty(n, k, d.get ? d : {
51
+ enumerable: true,
52
+ get: function () { return e[k]; }
53
+ });
54
+ }
55
+ });
56
+ }
57
+ n["default"] = e;
58
+ return Object.freeze(n);
59
+ }
60
+
61
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
62
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
63
+ var Scrollable__default = /*#__PURE__*/_interopDefaultLegacy(Scrollable);
64
+ var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
65
+ var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
66
+ var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
67
+ var BlockNavigation__default = /*#__PURE__*/_interopDefaultLegacy(BlockNavigation);
68
+ var NeetoUIForm__default = /*#__PURE__*/_interopDefaultLegacy(NeetoUIForm);
69
+ var Radio__default = /*#__PURE__*/_interopDefaultLegacy(Radio);
70
+ var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
71
+ var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label$1);
72
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
73
+ var Switch__default = /*#__PURE__*/_interopDefaultLegacy(Switch);
74
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
75
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
76
+ var Modal__default = /*#__PURE__*/_interopDefaultLegacy(Modal);
77
+ var EditorContent__default = /*#__PURE__*/_interopDefaultLegacy(EditorContent);
78
+ var Link__default = /*#__PURE__*/_interopDefaultLegacy(Link);
79
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
80
+ var NeetoUIHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoUIHeader);
81
+
82
+ var css = ".neeto-thank-you-configuration-radio__item{align-items:flex-start;background-color:rgb(var(--neeto-ui-white));border:1px solid rgb(var(--neeto-ui-gray-300));border-radius:var(--neeto-ui-rounded);padding:12px 16px}.neeto-thank-you-configuration-radio__item.neeto-ui-radio__item:not(:last-child){margin-right:0!important}.neeto-thank-you-configuration-radio__item.neeto-ui-radio__item{align-items:start!important}.neeto-thank-you-configuration-radio__item.neeto-ui-radio__item .neeto-ui-radio{margin-top:3px}.neeto-thank-you-configuration-radio__item.active{background-color:rgb(var(--neeto-ui-primary-100));border:1.5px solid rgb(var(--neeto-ui-primary-800))}";
83
+ SocialShare.n(css,{});
84
+
85
+ const FORM_OPTIONS = {
86
+ customize: {
87
+ label: i18next.t("neetoThankYou.thankYou.customize"),
88
+ description: i18next.t("neetoThankYou.thankYou.customizeDescription"),
89
+ kind: "custom_message"
90
+ },
91
+ externalLink: {
92
+ label: i18next.t("neetoThankYou.thankYou.externalLink"),
93
+ description: i18next.t("neetoThankYou.thankYou.externalLinkDescription"),
94
+ kind: "redirect_to_url"
95
+ }
96
+ };
97
+ const DEFAULT_IMAGE_PROPERTIES = {
98
+ imageSignedId: null,
99
+ imageUrl: ""
100
+ };
101
+ const EXTERNAL_URL_PREFIX = "https://";
102
+ const THANK_YOU_TEXT_ALIGNMENTS = {
103
+ left: "left",
104
+ center: "center"
105
+ };
106
+
107
+ function _extends$1() {
108
+ _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
109
+ for (var i = 1; i < arguments.length; i++) {
110
+ var source = arguments[i];
111
+ for (var key in source) {
112
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
113
+ target[key] = source[key];
114
+ }
115
+ }
116
+ }
117
+ return target;
118
+ };
119
+ return _extends$1.apply(this, arguments);
120
+ }
121
+
122
+ const IMAGE_SIZE_LIMIT = 1; // MB
123
+ const IMAGE_UPLOADER_CONFIG = {
124
+ maxImageSize: IMAGE_SIZE_LIMIT
125
+ };
126
+
127
+ const Image = () => {
128
+ const {
129
+ setFieldValue,
130
+ values
131
+ } = formik.useFormikContext();
132
+ const handleImageChange = image => {
133
+ if (ramda.isEmpty(image.signedId)) {
134
+ setFieldValue("imageUrl", "");
135
+ setFieldValue("imageSignedId", null);
136
+ return;
137
+ }
138
+ setFieldValue("imageUrl", image.url);
139
+ setFieldValue("imageSignedId", image.signedId);
140
+ };
141
+ return /*#__PURE__*/React__default["default"].createElement(neetoImageUploaderFrontend.ImageUploader, {
142
+ className: "h-60",
143
+ key: values.imageUrl,
144
+ src: values.imageUrl,
145
+ uploadConfig: IMAGE_UPLOADER_CONFIG,
146
+ onUploadComplete: handleImageChange
147
+ });
148
+ };
149
+
150
+ const ResubmissionWarningModal = reactUtils.withT(_ref => {
151
+ let {
152
+ t,
153
+ isOpen,
154
+ setIsOpen,
155
+ uniqueSubmissionLink
156
+ } = _ref;
157
+ return /*#__PURE__*/React__default["default"].createElement(Modal__default["default"], {
158
+ isOpen,
159
+ onClose: () => setIsOpen(false)
160
+ }, /*#__PURE__*/React__default["default"].createElement(Modal__default["default"].Header, null, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
161
+ style: "h3",
162
+ weight: "semibold"
163
+ }, t("neetoThankYou.common.alert"), "!")), /*#__PURE__*/React__default["default"].createElement(Modal__default["default"].Body, null, t("neetoThankYou.thankYou.resubmissionWarning")), /*#__PURE__*/React__default["default"].createElement(Modal__default["default"].Footer, {
164
+ className: "space-x-2"
165
+ }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
166
+ label: t("neetoThankYou.common.ok"),
167
+ style: "tertiary",
168
+ onClick: () => setIsOpen(false)
169
+ }), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
170
+ label: t("neetoThankYou.thankYou.uniqueSubmissionLinkText"),
171
+ to: uniqueSubmissionLink
172
+ })));
173
+ });
174
+
175
+ const Customize = _ref => {
176
+ let {
177
+ editorRef,
178
+ uniqueSubmissionEnabled,
179
+ hasImageUploader,
180
+ uniqueSubmissionLink,
181
+ entityId,
182
+ disableSocialShare,
183
+ disableSubmitAnotherResponse,
184
+ editorProps
185
+ } = _ref;
186
+ const [isUniqueSubmissionWarningModalOpen, setIsUniqueSubmissionWarningModalOpen] = React.useState(false);
187
+ const {
188
+ t
189
+ } = reactI18next.useTranslation();
190
+ const {
191
+ values,
192
+ setFieldValue
193
+ } = formik.useFormikContext();
194
+ const {
195
+ data: {
196
+ thankYouConfiguration
197
+ } = {},
198
+ isFetching
199
+ } = useThankYouConfigurationApi.useShowThankYouConfiguration({
200
+ entityId
201
+ });
202
+ React.useEffect(() => {
203
+ if (isFetching) return;
204
+ setFieldValue("message", thankYouConfiguration.message);
205
+ editorRef.current.editor?.commands.setContent(thankYouConfiguration.message);
206
+ }, [isFetching]);
207
+ const handleResubmitLinkChange = event => {
208
+ uniqueSubmissionEnabled ? setIsUniqueSubmissionWarningModalOpen(true) : setFieldValue("showResubmitLink", event.target.checked);
209
+ };
210
+ return /*#__PURE__*/React__default["default"].createElement("div", {
211
+ className: "flex flex-col gap-4"
212
+ }, hasImageUploader && /*#__PURE__*/React__default["default"].createElement("div", {
213
+ className: "flex flex-col gap-2"
214
+ }, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, t("neetoThankYou.thankYou.imageLabel")), /*#__PURE__*/React__default["default"].createElement(Image, null)), /*#__PURE__*/React__default["default"].createElement("div", {
215
+ className: "flex flex-col gap-2"
216
+ }, /*#__PURE__*/React__default["default"].createElement(FormikEditor__default["default"], _extends$1({
217
+ required: true,
218
+ "data-cy": "thank-you-message-editor",
219
+ label: t("neetoThankYou.thankYou.messageLabel"),
220
+ name: "message",
221
+ ref: editorRef
222
+ }, editorProps))), !disableSocialShare && /*#__PURE__*/React__default["default"].createElement(Switch__default["default"], {
223
+ label: t("neetoThankYou.thankYou.socialShareIcons"),
224
+ name: "socialSharingEnabled"
225
+ }), !disableSubmitAnotherResponse && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Switch__default["default"], {
226
+ label: t("neetoThankYou.thankYou.showResubmitLink"),
227
+ name: "showResubmitLink",
228
+ className: classNames__default["default"]({
229
+ "neeto-ui-switch--disabled": uniqueSubmissionEnabled
230
+ }),
231
+ onChange: handleResubmitLinkChange
232
+ }), values.showResubmitLink && /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
233
+ required: true,
234
+ label: t("neetoThankYou.thankYou.resubmitLinkText"),
235
+ name: "resubmitLinkText"
236
+ })), /*#__PURE__*/React__default["default"].createElement(ResubmissionWarningModal, {
237
+ uniqueSubmissionLink,
238
+ isOpen: isUniqueSubmissionWarningModalOpen,
239
+ setIsOpen: setIsUniqueSubmissionWarningModalOpen
240
+ }));
241
+ };
242
+
243
+ var _ellipse, _ellipse2, _ellipse3;
244
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
245
+ const SvgBrowserControls = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
246
+ xmlns: "http://www.w3.org/2000/svg",
247
+ width: 43,
248
+ height: 13,
249
+ fill: "none"
250
+ }, props), _ellipse || (_ellipse = /*#__PURE__*/React__namespace.createElement("ellipse", {
251
+ cx: 6.405,
252
+ cy: 6.644,
253
+ fill: "#FFEFED",
254
+ rx: 5.745,
255
+ ry: 5.859
256
+ })), _ellipse2 || (_ellipse2 = /*#__PURE__*/React__namespace.createElement("ellipse", {
257
+ cx: 37.044,
258
+ cy: 6.644,
259
+ fill: "#98F3F4",
260
+ rx: 5.745,
261
+ ry: 5.859
262
+ })), _ellipse3 || (_ellipse3 = /*#__PURE__*/React__namespace.createElement("ellipse", {
263
+ cx: 21.725,
264
+ cy: 6.644,
265
+ fill: "#FFF2D7",
266
+ rx: 5.745,
267
+ ry: 5.859
268
+ })));
269
+
270
+ const MemoizedEditorContent = /*#__PURE__*/React__default["default"].memo(EditorContent__default["default"]);
271
+ const Preview = _ref => {
272
+ let {
273
+ socialHandles,
274
+ thankYouTextAlignment,
275
+ resubmitLink,
276
+ publicLinkId,
277
+ isPublished,
278
+ appName,
279
+ brandingInfo
280
+ } = _ref;
281
+ const {
282
+ values
283
+ } = formik.useFormikContext();
284
+ const {
285
+ t
286
+ } = reactI18next.useTranslation();
287
+ return /*#__PURE__*/React__default["default"].createElement("div", {
288
+ className: "flex flex-col"
289
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
290
+ className: "mb-3 block md:hidden",
291
+ lineHeight: "normal",
292
+ style: "h3",
293
+ weight: "semibold"
294
+ }, t("neetoThankYou.thankYou.preview")), /*#__PURE__*/React__default["default"].createElement("div", {
295
+ className: classNames__default["default"]("neeto-thank-you-configuration-preview", {
296
+ "neeto-thank-you-configuration-alignment--left": thankYouTextAlignment === THANK_YOU_TEXT_ALIGNMENTS.left,
297
+ "neeto-thank-you-configuration-alignment--center": thankYouTextAlignment === THANK_YOU_TEXT_ALIGNMENTS.center,
298
+ "pointer-events-none": !isPublished
299
+ })
300
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
301
+ className: "neeto-thank-you-configuration-preview__browser-header"
302
+ }, /*#__PURE__*/React__default["default"].createElement(SvgBrowserControls, null)), /*#__PURE__*/React__default["default"].createElement("div", {
303
+ className: "neeto-thank-you-configuration"
304
+ }, /*#__PURE__*/React__default["default"].createElement("main", {
305
+ className: "neeto-thank-you-configuration__main"
306
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
307
+ className: "neeto-thank-you-configuration__box"
308
+ }, !ramda.isEmpty(values?.imageUrl) && /*#__PURE__*/React__default["default"].createElement("div", {
309
+ className: "neeto-thank-you-configuration__img"
310
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
311
+ alt: "",
312
+ src: values.imageUrl
313
+ })), values?.message && /*#__PURE__*/React__default["default"].createElement("div", {
314
+ className: "neeto-thank-you-configuration__description"
315
+ }, /*#__PURE__*/React__default["default"].createElement(MemoizedEditorContent, {
316
+ content: values.message,
317
+ "data-cy": "preview-editor-content"
318
+ })), values?.showResubmitLink && /*#__PURE__*/React__default["default"].createElement("a", {
319
+ className: "neeto-thank-you-configuration__resubmit",
320
+ href: resubmitLink
321
+ }, values?.resubmitLinkText ?? t("neetoThankYou.thankYou.resubmit")), values?.socialSharingEnabled && /*#__PURE__*/React__default["default"].createElement(SocialShare.SocialShare, {
322
+ publicLinkId,
323
+ socialHandles
324
+ })))), values?.brandingEnabled && /*#__PURE__*/React__default["default"].createElement(BrandingInfo.BrandingInfo, {
325
+ appName,
326
+ brandingInfo
327
+ })));
328
+ };
329
+
330
+ const ExternalLink = () => {
331
+ const {
332
+ t
333
+ } = reactI18next.useTranslation();
334
+ return /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
335
+ autoFocus: true,
336
+ required: true,
337
+ label: t("neetoThankYou.thankYou.link"),
338
+ name: "redirectUrl",
339
+ placeholder: EXTERNAL_URL_PREFIX,
340
+ prefix: /*#__PURE__*/React__default["default"].createElement(Link__default["default"], null)
341
+ });
342
+ };
343
+
344
+ const Label = _ref => {
345
+ let {
346
+ label,
347
+ description,
348
+ kind
349
+ } = _ref;
350
+ return /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
351
+ className: "neeto-ui-text-gray-700",
352
+ "data-cy": `neeto-thank-you-configuration-${neetoCist.hyphenate(kind)}-label`,
353
+ style: "body2",
354
+ weight: "semibold"
355
+ }, label, /*#__PURE__*/React__default["default"].createElement("span", {
356
+ className: "block text-xs font-normal leading-snug",
357
+ "data-cy": `neeto-thank-you-configuration-${neetoCist.hyphenate(kind)}-description`
358
+ }, description));
359
+ };
360
+
361
+ const buildValidationSchema = function () {
362
+ let allowEmptyCustomMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
363
+ return yup__namespace.object().shape({
364
+ kind: yup__namespace.string().required(),
365
+ message: yup__namespace.string().test("message", i18next.t("neetoThankYou.thankYou.validations.messageRequired"), value => allowEmptyCustomMessage || !utils.isEditorEmpty(value)),
366
+ socialSharingEnabled: yup__namespace.bool(),
367
+ showResubmitLink: yup__namespace.bool(),
368
+ resubmitLinkText: yup__namespace.string().when("showResubmitLink", {
369
+ is: true,
370
+ then: yup__namespace.string().required(i18next.t("neetoThankYou.thankYou.validations.resubmitLinkTextIsRequired"))
371
+ }),
372
+ redirectUrl: yup__namespace.string().when("kind", {
373
+ is: FORM_OPTIONS.externalLink.kind,
374
+ then: yup__namespace.string().url(i18next.t("neetoThankYou.thankYou.validations.invalidLink")).required(i18next.t("neetoThankYou.thankYou.validations.invalidLink")).when("kind", {
375
+ is: FORM_OPTIONS.customize.kind,
376
+ then: yup__namespace.string()
377
+ })
378
+ })
379
+ });
380
+ };
381
+
382
+ const Form = _ref => {
383
+ let {
384
+ socialHandles,
385
+ entityId,
386
+ publicLinkId,
387
+ hasImageUploader,
388
+ uniqueSubmissionEnabled,
389
+ uniqueSubmissionLink,
390
+ redirectToOnCancel,
391
+ thankYouTextAlignment,
392
+ resubmitLink,
393
+ isPublished,
394
+ disableSubmitAnotherResponse,
395
+ disableRadioSelection,
396
+ appName,
397
+ blockNavigation,
398
+ onConfigUpdateSuccess,
399
+ brandingInfo,
400
+ editorProps,
401
+ preview: CustomPreview,
402
+ allowEmptyCustomMessage
403
+ } = _ref;
404
+ const {
405
+ data: {
406
+ thankYouConfiguration
407
+ } = {},
408
+ isLoading
409
+ } = useThankYouConfigurationApi.useShowThankYouConfiguration({
410
+ entityId
411
+ });
412
+ const {
413
+ mutate: updateThankYouConfiguration,
414
+ isPending: isUpdatingForm
415
+ } = useThankYouConfigurationApi.useUpdateThankYouConfiguration();
416
+ const editorRef = React.useRef({
417
+ editor: {}
418
+ });
419
+ if (isLoading) {
420
+ return /*#__PURE__*/React__default["default"].createElement("div", {
421
+ className: "flex h-full w-full items-center justify-center"
422
+ }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
423
+ }
424
+ const resetEditor = () => editorRef.current.editor?.commands.setContent(thankYouConfiguration.message);
425
+ return /*#__PURE__*/React__default["default"].createElement(NeetoUIForm__default["default"], {
426
+ formikProps: {
427
+ enableReinitialize: true,
428
+ initialValues: {
429
+ ...DEFAULT_IMAGE_PROPERTIES,
430
+ ...thankYouConfiguration
431
+ },
432
+ validationSchema: buildValidationSchema(allowEmptyCustomMessage),
433
+ onSubmit: values => updateThankYouConfiguration({
434
+ entityId,
435
+ payload: {
436
+ ...values,
437
+ image: values.imageSignedId
438
+ }
439
+ }, {
440
+ onSuccess: function () {
441
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
442
+ args[_key] = arguments[_key];
443
+ }
444
+ return onConfigUpdateSuccess(args, thankYouConfiguration);
445
+ }
446
+ })
447
+ }
448
+ }, _ref2 => {
449
+ let {
450
+ values
451
+ } = _ref2;
452
+ return /*#__PURE__*/React__default["default"].createElement("div", {
453
+ className: "grid grid-cols-1 gap-10 pb-6 md:grid-cols-2 md:gap-6"
454
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
455
+ className: "flex flex-col"
456
+ }, blockNavigation && /*#__PURE__*/React__default["default"].createElement(BlockNavigation__default["default"], null), !disableRadioSelection && /*#__PURE__*/React__default["default"].createElement("div", {
457
+ className: "mb-6 w-full"
458
+ }, /*#__PURE__*/React__default["default"].createElement(Radio__default["default"], {
459
+ containerClassName: "grid grid-cols-1 sm:grid-cols-2 gap-6 items-stretch w-full",
460
+ name: "kind"
461
+ }, Object.values(FORM_OPTIONS).map(option => /*#__PURE__*/React__default["default"].createElement(Radio__default["default"].Item, {
462
+ key: option.kind,
463
+ label: /*#__PURE__*/React__default["default"].createElement(Label, option),
464
+ name: "kind",
465
+ value: option.kind,
466
+ className: classNames__default["default"]("neeto-thank-you-configuration-radio__item", {
467
+ active: values.kind === option.kind
468
+ })
469
+ })))), values.kind === FORM_OPTIONS.customize.kind ? /*#__PURE__*/React__default["default"].createElement(Customize, {
470
+ disableSubmitAnotherResponse,
471
+ editorProps,
472
+ editorRef,
473
+ entityId,
474
+ hasImageUploader,
475
+ uniqueSubmissionEnabled,
476
+ uniqueSubmissionLink,
477
+ disableSocialShare: ramda.isEmpty(socialHandles)
478
+ }) : /*#__PURE__*/React__default["default"].createElement(ExternalLink, null), /*#__PURE__*/React__default["default"].createElement(ActionBlock__default["default"], {
479
+ className: "mt-6",
480
+ isSubmitting: isUpdatingForm,
481
+ cancelButtonProps: {
482
+ "data-cy": "neeto-thank-you-configuration-cancel-button",
483
+ ...(redirectToOnCancel ? {
484
+ to: redirectToOnCancel,
485
+ onClick: neetoCist.noop
486
+ } : {
487
+ type: "reset",
488
+ onClick: resetEditor
489
+ })
490
+ },
491
+ submitButtonProps: {
492
+ "data-cy": "neeto-thank-you-configuration-save-button"
493
+ }
494
+ })), values.kind === FORM_OPTIONS.customize.kind && (CustomPreview ? /*#__PURE__*/React__default["default"].createElement(CustomPreview, {
495
+ values
496
+ }) : /*#__PURE__*/React__default["default"].createElement(Preview, {
497
+ appName,
498
+ brandingInfo,
499
+ isPublished,
500
+ publicLinkId,
501
+ resubmitLink,
502
+ socialHandles,
503
+ thankYouTextAlignment
504
+ })));
505
+ });
506
+ };
507
+
508
+ const Header = _ref => {
509
+ let {
510
+ breadcrumbs
511
+ } = _ref;
512
+ const {
513
+ t
514
+ } = reactI18next.useTranslation();
515
+ return /*#__PURE__*/React__default["default"].createElement("div", {
516
+ className: "w-full px-6"
517
+ }, /*#__PURE__*/React__default["default"].createElement(NeetoUIHeader__default["default"], {
518
+ breadcrumbs: breadcrumbs,
519
+ size: "small",
520
+ title: t("neetoThankYou.common.thankYou")
521
+ }));
522
+ };
523
+
524
+ const ConfigureThankYou = _ref => {
525
+ let {
526
+ breadcrumbs,
527
+ isPublished,
528
+ entityId,
529
+ publicLinkId,
530
+ resubmitLink,
531
+ redirectToOnCancel,
532
+ socialHandles = [],
533
+ uniqueSubmissionLink = "",
534
+ uniqueSubmissionEnabled = false,
535
+ hasImageUploader = false,
536
+ disableSubmitAnotherResponse = false,
537
+ disableRadioSelection = false,
538
+ thankYouTextAlignment = THANK_YOU_TEXT_ALIGNMENTS.center,
539
+ customHeader,
540
+ appName,
541
+ blockNavigation = false,
542
+ onConfigUpdateSuccess = neetoCist.noop,
543
+ brandingInfo,
544
+ editorProps = {},
545
+ preview,
546
+ allowEmptyCustomMessage = false
547
+ } = _ref;
548
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, customHeader || /*#__PURE__*/React__default["default"].createElement(Header, {
549
+ breadcrumbs
550
+ }), /*#__PURE__*/React__default["default"].createElement(Scrollable__default["default"], {
551
+ className: "w-full p-6 pt-0"
552
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
553
+ className: "mx-auto h-full max-w-7xl"
554
+ }, /*#__PURE__*/React__default["default"].createElement(Form, {
555
+ allowEmptyCustomMessage,
556
+ appName,
557
+ blockNavigation,
558
+ brandingInfo,
559
+ disableRadioSelection,
560
+ disableSubmitAnotherResponse,
561
+ editorProps,
562
+ entityId,
563
+ hasImageUploader,
564
+ isPublished,
565
+ onConfigUpdateSuccess,
566
+ preview,
567
+ publicLinkId,
568
+ redirectToOnCancel,
569
+ resubmitLink,
570
+ socialHandles,
571
+ thankYouTextAlignment,
572
+ uniqueSubmissionEnabled,
573
+ uniqueSubmissionLink
574
+ }))));
575
+ };
576
+
577
+ module.exports = ConfigureThankYou;
578
+ //# sourceMappingURL=ConfigureThankYou.js.map