@bigbinary/neeto-email-notifications-frontend 2.2.14 → 2.2.15

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 CHANGED
@@ -76,6 +76,10 @@ Add the engine's routes to your application's `config/routes.rb`:
76
76
  mount NeetoEmailNotificationsEngine::Engine, at: "/neeto_email_notifications" # Or your preferred mount point
77
77
  ```
78
78
 
79
+ > **Note:** The engine uses the [`liquid`](https://github.com/Shopify/liquid)
80
+ > gem for template rendering. This will be installed automatically as a
81
+ > dependency.
82
+
79
83
  ## Configuration (Backend Engine)
80
84
 
81
85
  ### 1. Initializer Setup
@@ -231,6 +235,34 @@ The engine creates a table `neeto_email_notifications_engine_email_notifications
231
235
  - `is_enabled`: Boolean flag to enable/disable notifications.
232
236
  - `custom_fields`: JSONB column for additional metadata.
233
237
  - `reply_to_id`: Optional reference for reply-to configuration.
238
+ - `type`: String column for Single Table Inheritance (STI) support.
239
+
240
+ #### Default Attributes Class Method
241
+
242
+ **Important:** Host applications must define the `default_attributes` class method in their custom notification models that inherit from `NeetoEmailNotificationsEngine::EmailNotification`. This method is required and will receive the `notification_holder` as a parameter. This method should return a hash with the default attributes for the email notification.
243
+
244
+ Variables in the subject and message must always be wrapped like this:
245
+ ```html
246
+ <span data-variable data-label="label" data-id="key">{{key}}</span>
247
+ ```
248
+
249
+ **Example Implementation**
250
+
251
+ ```ruby
252
+ def self.default_attributes(quiz)
253
+ {
254
+ send_from: Rails.application.secrets.mailer[:default_from_email],
255
+ notify_emails: [quiz.user.email],
256
+ is_enabled: true,
257
+ subject: "A new submission has arrived for {{quiz-name}}",
258
+ message: <<~HTML.squish
259
+ <b><span data-variable data-label="Quiz name" data-id="quiz-name">{{quiz-name}}</span></b>
260
+ has a new submission.<br/><br/>
261
+ <span data-variable data-label="All answers" data-id="all-answers">{{all-answers}}</span>
262
+ HTML
263
+ }
264
+ end
265
+ ```
234
266
 
235
267
  ## Frontend Integration
236
268
 
@@ -256,21 +288,39 @@ yarn add @babel/runtime@^7.26.10 @bigbinary/neeto-cist@^1.0.17 @bigbinary/neeto-
256
288
 
257
289
  **Props**
258
290
 
259
- | Prop | Type | Default | Description |
260
- |------|------|---------|-------------|
261
- | `emailNotificationParams` | Object | `{}` | **Required.** Parameters for fetching email notification data |
262
- | `title` | String | `"Email notification"` | Title displayed above the notification toggle |
263
- | `subTitle` | String | `"Send an email notification when a new event occurred"` | Subtitle text below the title |
264
- | `disabled` | Boolean | `false` | Disables the entire component |
265
- | `onSuccess` | Function | `noop` | Callback function triggered after successful notification update |
266
- | `breadcrumbs` | Array | `[]` | Breadcrumb navigation data |
267
- | `children` | ReactNode | `undefined` | Additional content rendered when notifications are enabled |
268
- | `blockNavigation` | Boolean | `false` | Shows block navigation alert for unsaved changes |
269
- | `helpPopoverProps` | Object | `{}` | Props for the help popover component |
270
- | `tooltipProps` | Object | `{}` | Props for tooltip shown when component is disabled |
271
- | `emailFormProps` | Object | `{}` | Props passed to the underlying EmailForm component |
272
- | `emailFormikProps` | Object | `{}` | Props passed to the EmailFormProvider component |
273
- | `emailPreviewProps` | Object | `{}` | Props passed to the EmailPreview component |
291
+ | Prop | Type | Default | Description |
292
+ | ------------------------- | --------- | -------------------------------------------------------- | ---------------------------------------------------------------- |
293
+ | `emailNotificationParams` | Object | `{}` | **Required.** Parameters for fetching email notification data |
294
+ | `title` | String | `"Email notification"` | Title displayed above the notification toggle |
295
+ | `notificationToggleLabel` | String | `"Send an email notification when a new event occurred"` | The label displayed beside the notification toggle switch |
296
+ | `disabled` | Boolean | `false` | Disables the entire component |
297
+ | `onSuccess` | Function | `noop` | Callback function triggered after successful notification update |
298
+ | `breadcrumbs` | Array | `[]` | Breadcrumb navigation data |
299
+ | `children` | ReactNode | `undefined` | Additional content rendered when notifications are enabled |
300
+ | `blockNavigation` | Boolean | `false` | Shows block navigation alert for unsaved changes |
301
+ | `helpPopoverProps` | Object | `{}` | Props for the help popover component |
302
+ | `tooltipProps` | Object | `{}` | Props for tooltip shown when component is disabled |
303
+ | `emailFormProps` | Object | `{}` | Props passed to the underlying EmailForm component |
304
+ | `emailFormikProps` | Object | `{}` | Props passed to the EmailFormProvider component |
305
+ | `emailPreviewProps` | Object | `{}` | Props passed to the EmailPreview component |
306
+ | `fieldsVisibility` | Object | `{}` | Controls which fields are visible in the email form |
307
+
308
+ #### FieldsVisibility
309
+
310
+ Default visibility for each field is as follows:
311
+
312
+ ```js
313
+ {
314
+ showSendToField: true,
315
+ showReplyToField: false,
316
+ showSendToAsRadio: false,
317
+ showCcField: false,
318
+ showBccField: false,
319
+ }
320
+ ```
321
+
322
+ You can override any of these by passing a `fieldsVisibility` prop with your
323
+ desired values.
274
324
 
275
325
  **emailNotificationParams Object Structure**
276
326
  ```javascript
@@ -296,14 +346,14 @@ const FormSettingsPage = ({ formId }) => {
296
346
  return (
297
347
  <NeetoEmailNotificationForm
298
348
  title="Form Submission Notification"
299
- subTitle="Get notified when someone submits your form"
349
+ notificationToggleLabel="Get notified when someone submits your form"
300
350
  emailNotificationParams={{
301
351
  notificationHolderId: formId,
302
352
  notificationHolderType: "Form",
303
353
  customFields: { notificationType: "submission" }
304
354
  }}
305
355
  emailPreviewProps={{
306
- productName: "NeetoForm"
356
+ formatBody: message => replaceVariablesWithDummyValues(message, values),
307
357
  }}
308
358
  breadcrumbs={[
309
359
  { text: "Forms", link: "/forms" },
@@ -405,6 +455,27 @@ class Meeting < ApplicationRecord
405
455
  end
406
456
  ```
407
457
 
458
+ ### Seeding Default Email Notification Content
459
+ It is recommended to automatically create a default email notification record for each instance of your model. This ensures the notification UI and API always have a record to fetch and update, preventing errors and missing functionality. You can use an `after_create` callback in your model to seed this record.
460
+
461
+ ##### Example:
462
+
463
+ ```ruby
464
+ class Quiz < ApplicationRecord
465
+ has_many :email_notifications, as: :notification_holder,
466
+ class_name: "NeetoEmailNotificationsEngine::EmailNotification", dependent: :destroy
467
+ has_one :push_email_notification, as: :notification_holder
468
+
469
+ after_create :create_default_email_notification
470
+
471
+ private
472
+
473
+ def create_default_email_notification
474
+ self.create_push_email_notification!(PushEmailNotification.default_attributes(self))
475
+ end
476
+ end
477
+ ```
478
+
408
479
  ### Using the Email Notification Service
409
480
  Create service classes that include the email notification functionality:
410
481
 
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "E-Mail-Benachrichtigung",
13
- "subTitle": "Senden Sie eine E-Mail-Benachrichtigung, wenn ein neues Ereignis auftritt"
13
+ "notificationToggleLabel": "Eine E-Mail-Benachrichtigung senden, wenn ein neues Ereignis aufgetreten ist"
14
14
  },
15
15
  "preview": "Vorschau"
16
16
  }
17
- }
17
+ }
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Email notification",
13
- "subTitle": "Send an email notification when a new event occurred"
13
+ "notificationToggleLabel": "Send an email notification when a new event occurred"
14
14
  },
15
15
  "preview": "Preview"
16
16
  }
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Notificación por correo electrónico",
13
- "subTitle": "Envía una notificación por correo electrónico cuando ocurra un nuevo evento"
13
+ "notificationToggleLabel": "Enviar una notificación por correo electrónico cuando ocurra un nuevo evento"
14
14
  },
15
15
  "preview": "Vista previa"
16
16
  }
17
- }
17
+ }
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Notification par e-mail",
13
- "subTitle": "Envoyer une notification par e-mail lorsqu'un nouvel événement se produit"
13
+ "notificationToggleLabel": "Envoyer une notification par e-mail lorsqu'un nouvel événement se produit"
14
14
  },
15
15
  "preview": "Aperçu"
16
16
  }
17
- }
17
+ }
@@ -1,7 +1,8 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { useRef } from 'react';
3
4
  import { isNotEmpty, isNotPresent, noop } from '@bigbinary/neeto-cist';
4
- import EmailFormComponent from '@bigbinary/neeto-molecules/EmailForm';
5
+ import EmailForm from '@bigbinary/neeto-molecules/EmailForm';
5
6
  import Spinner from '@bigbinary/neetoui/Spinner';
6
7
  import { prop, isEmpty, mergeLeft, mergeDeepLeft } from 'ramda';
7
8
  import { useTranslation } from 'react-i18next';
@@ -13,19 +14,24 @@ import * as yup from 'yup';
13
14
  import { string } from 'yup';
14
15
  import { jsx } from 'react/jsx-runtime';
15
16
 
16
- var EMAIL_NOTIFICATIONS_URL = "neeto_email_notifications/email_notification";
17
+ var EMAIL_NOTIFICATIONS_BASE_URL = "neeto_email_notifications/email_notification";
18
+ var RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL = "".concat(EMAIL_NOTIFICATIONS_BASE_URL, "/reset_to_default");
17
19
 
18
20
  var fetch = function fetch(params) {
19
- return axios.get(EMAIL_NOTIFICATIONS_URL, {
21
+ return axios.get(EMAIL_NOTIFICATIONS_BASE_URL, {
20
22
  params: params
21
23
  });
22
24
  };
23
25
  var update = function update(payload) {
24
- return axios.put(EMAIL_NOTIFICATIONS_URL, payload);
26
+ return axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);
27
+ };
28
+ var resetToDefault = function resetToDefault(params) {
29
+ return axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);
25
30
  };
26
31
  var emailNotificationsApi = {
27
32
  fetch: fetch,
28
- update: update
33
+ update: update,
34
+ resetToDefault: resetToDefault
29
35
  };
30
36
 
31
37
  var QUERY_KEYS = {
@@ -53,13 +59,29 @@ var useUpdateEmailNotification = function useUpdateEmailNotification() {
53
59
  }]
54
60
  });
55
61
  };
62
+ var useResetEmailNotificationToDefault = function useResetEmailNotificationToDefault() {
63
+ return useMutationWithInvalidation(emailNotificationsApi.resetToDefault, {
64
+ keysToInvalidate: [function (_, _ref2) {
65
+ var notificationHolderId = _ref2.notificationHolderId,
66
+ customFields = _ref2.customFields;
67
+ return [QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS, notificationHolderId, customFields];
68
+ }]
69
+ });
70
+ };
56
71
 
57
72
  var FORM_VALIDATION_SCHEMA = {
58
73
  isEnabled: yup["boolean"]()
59
74
  };
75
+ var DEFAULT_FIELDS_VISIBILITY = {
76
+ showSendToField: true,
77
+ showReplyToField: false,
78
+ showSendToAsRadio: false,
79
+ showBccField: false,
80
+ showCcField: false
81
+ };
60
82
 
61
83
  var _excluded$1 = ["notifyEmails", "notifyCcEmails", "notifyBccEmails", "replyToId", "customFields"],
62
- _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "disabledByUser", "sendToId"];
84
+ _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "sendToId"];
63
85
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
64
86
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
65
87
  var isValidEmail = function isValidEmail(email) {
@@ -96,7 +118,7 @@ var parseEmailNotificationData = function parseEmailNotificationData(data, sendT
96
118
  parsed.showCopyEmails = !!(notifyCcEmails !== null && notifyCcEmails !== void 0 && notifyCcEmails.length || notifyBccEmails !== null && notifyBccEmails !== void 0 && notifyBccEmails.length);
97
119
  return parsed;
98
120
  };
99
- var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField) {
121
+ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField, isDisabledByUser) {
100
122
  values.id;
101
123
  var isEnabled = values.isEnabled,
102
124
  sendTo = values.sendTo,
@@ -107,7 +129,6 @@ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField)
107
129
  message = values.message,
108
130
  subject = values.subject,
109
131
  sendFrom = values.sendFrom,
110
- disabledByUser = values.disabledByUser,
111
132
  sendToId = values.sendToId,
112
133
  rest = _objectWithoutProperties(values, _excluded2);
113
134
  var payload = {
@@ -136,7 +157,7 @@ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField)
136
157
  payload.sendFrom = sendFrom;
137
158
  } else {
138
159
  payload.customFields = {
139
- disabledByUser: disabledByUser
160
+ disabledByUser: isDisabledByUser
140
161
  };
141
162
  }
142
163
  return payload;
@@ -145,7 +166,7 @@ var renderText = function renderText(text, fallbackTranslation) {
145
166
  return isEmpty(text) ? fallbackTranslation : text;
146
167
  };
147
168
 
148
- var _excluded = ["validationSchema", "showReplyToField", "showSendToAsRadio", "showCcField", "showBccField"];
169
+ var _excluded = ["validationSchema"];
149
170
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
150
171
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
151
172
  var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
@@ -160,21 +181,24 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
160
181
  emailFormikProps = _ref$emailFormikProps === void 0 ? {} : _ref$emailFormikProps,
161
182
  _ref$title = _ref.title,
162
183
  title = _ref$title === void 0 ? "" : _ref$title,
163
- _ref$subTitle = _ref.subTitle,
164
- subTitle = _ref$subTitle === void 0 ? "" : _ref$subTitle,
165
- _ref$disabled = _ref.disabled,
166
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
184
+ _ref$notificationTogg = _ref.notificationToggleLabel,
185
+ notificationToggleLabel = _ref$notificationTogg === void 0 ? "" : _ref$notificationTogg,
186
+ _ref$breadcrumbs = _ref.breadcrumbs,
187
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
188
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
189
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
167
190
  _ref$tooltipProps = _ref.tooltipProps,
168
191
  tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
169
- _ref$onSuccess = _ref.onSuccess,
170
- onSuccess = _ref$onSuccess === void 0 ? noop : _ref$onSuccess,
192
+ _ref$disabled = _ref.disabled,
193
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
194
+ _ref$fieldsVisibility = _ref.fieldsVisibility,
195
+ fieldsVisibility = _ref$fieldsVisibility === void 0 ? {} : _ref$fieldsVisibility,
171
196
  _ref$blockNavigation = _ref.blockNavigation,
172
197
  blockNavigation = _ref$blockNavigation === void 0 ? false : _ref$blockNavigation,
173
- _ref$breadcrumbs = _ref.breadcrumbs,
174
- breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
175
- children = _ref.children,
176
- _ref$helpPopoverProps = _ref.helpPopoverProps,
177
- helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
198
+ _ref$onSuccess = _ref.onSuccess,
199
+ onSuccess = _ref$onSuccess === void 0 ? noop : _ref$onSuccess,
200
+ children = _ref.children;
201
+ var editorRef = useRef();
178
202
  var _useTranslation = useTranslation(),
179
203
  t = _useTranslation.t;
180
204
  var _useFetchEmailNotific = useFetchEmailNotifications(emailNotificationParams),
@@ -184,10 +208,14 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
184
208
  var _useUpdateEmailNotifi = useUpdateEmailNotification(),
185
209
  updateEmailNotification = _useUpdateEmailNotifi.mutate,
186
210
  isSubmitting = _useUpdateEmailNotifi.isPending;
211
+ var _useResetEmailNotific = useResetEmailNotificationToDefault(),
212
+ resetToDefault = _useResetEmailNotific.mutate,
213
+ isResetting = _useResetEmailNotific.isPending;
187
214
  var handleSubmit = function handleSubmit(values) {
188
215
  var _emailFormProps$reply;
216
+ var isDisabledByUser = data.isEnabled && !values.isEnabled;
189
217
  var isReplyToDropdownField = (emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$reply = emailFormProps.replyToFieldProps) === null || _emailFormProps$reply === void 0 ? void 0 : _emailFormProps$reply.options) !== undefined;
190
- var body = mergeDeepLeft(packEmailPayload(values, isReplyToDropdownField), emailNotificationParams);
218
+ var body = mergeDeepLeft(packEmailPayload(values, isReplyToDropdownField, isDisabledByUser), emailNotificationParams);
191
219
  updateEmailNotification(body, {
192
220
  onSuccess: onSuccess
193
221
  });
@@ -199,51 +227,46 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
199
227
  });
200
228
  }
201
229
  var formattedTitle = renderText(title, t("neetoEmailNotifications.emailNotification.title"));
202
- var formattedSubTitle = renderText(subTitle, t("neetoEmailNotifications.emailNotification.subTitle"));
230
+ var formattedNotificationToggleLabel = renderText(notificationToggleLabel, t("neetoEmailNotifications.emailNotification.notificationToggleLabel"));
203
231
  var customValidationSchema = emailFormikProps.validationSchema,
204
- _emailFormikProps$sho = emailFormikProps.showReplyToField,
205
- showReplyToField = _emailFormikProps$sho === void 0 ? false : _emailFormikProps$sho,
206
- _emailFormikProps$sho2 = emailFormikProps.showSendToAsRadio,
207
- showSendToAsRadio = _emailFormikProps$sho2 === void 0 ? false : _emailFormikProps$sho2,
208
- _emailFormikProps$sho3 = emailFormikProps.showCcField,
209
- showCcField = _emailFormikProps$sho3 === void 0 ? false : _emailFormikProps$sho3,
210
- _emailFormikProps$sho4 = emailFormikProps.showBccField,
211
- showBccField = _emailFormikProps$sho4 === void 0 ? false : _emailFormikProps$sho4,
212
- pureFormikProps = _objectWithoutProperties(emailFormikProps, _excluded);
232
+ formikProps = _objectWithoutProperties(emailFormikProps, _excluded);
233
+ var handleResetToDefault = function handleResetToDefault() {
234
+ resetToDefault(emailNotificationParams, {
235
+ onSuccess: function onSuccess(_ref2) {
236
+ var _editorRef$current;
237
+ var emailNotification = _ref2.emailNotification;
238
+ return editorRef === null || editorRef === void 0 || (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.commands) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.setContent(emailNotification.message);
239
+ }
240
+ });
241
+ };
213
242
  return /*#__PURE__*/jsx("div", {
214
243
  className: "min-w-0 flex-grow overflow-y-auto",
215
- children: /*#__PURE__*/jsx(EmailFormComponent, {
244
+ children: /*#__PURE__*/jsx(EmailForm, _objectSpread(_objectSpread({}, _objectSpread({
216
245
  blockNavigation: blockNavigation,
217
246
  emailPreviewProps: emailPreviewProps,
218
- showBccField: showBccField,
219
- showCcField: showCcField,
220
- showReplyToField: showReplyToField,
221
- showSendToAsRadio: showSendToAsRadio,
222
- tooltipProps: tooltipProps,
223
- showSendToField: true,
247
+ formikProps: formikProps,
248
+ tooltipProps: tooltipProps
249
+ }, mergeLeft(fieldsVisibility, DEFAULT_FIELDS_VISIBILITY))), {}, {
250
+ isLoading: isSubmitting || isResetting,
251
+ validationSchema: customValidationSchema || FORM_VALIDATION_SCHEMA,
224
252
  emailFormProps: _objectSpread({
225
- showSendToField: true
253
+ editorRef: editorRef,
254
+ handleResetToDefault: handleResetToDefault
226
255
  }, emailFormProps),
227
- isLoading: isSubmitting,
228
- validationSchema: customValidationSchema || FORM_VALIDATION_SCHEMA,
229
- formikProps: _objectSpread({
230
- validateOnBlur: true,
231
- validateOnChange: true
232
- }, pureFormikProps),
233
256
  headerProps: {
234
257
  title: formattedTitle,
235
258
  titleHelpPopoverProps: helpPopoverProps,
236
259
  breadcrumbs: breadcrumbs
237
260
  },
238
- initialValues: parseEmailNotificationData(data, (emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$sendT = emailFormProps.sendToFieldProps) === null || _emailFormProps$sendT === void 0 ? void 0 : _emailFormProps$sendT.options) || (emailFormProps === null || emailFormProps === void 0 ? void 0 : emailFormProps.sendToOptions)),
261
+ initialValues: parseEmailNotificationData(data, emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$sendT = emailFormProps.sendToFieldProps) === null || _emailFormProps$sendT === void 0 ? void 0 : _emailFormProps$sendT.options),
239
262
  switchProps: {
240
- label: formattedSubTitle,
263
+ label: formattedNotificationToggleLabel,
241
264
  disabled: disabled,
242
265
  "data-cy": "receive-email-notification-switch"
243
266
  },
244
267
  onSubmit: handleSubmit,
245
268
  children: children
246
- })
269
+ }))
247
270
  });
248
271
  };
249
272
 
@@ -1 +1 @@
1
- {"version":3,"file":"NeetoEmailNotificationForm.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/apis/email_notifications.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/emailNotificationApi.js","../app/javascript/src/components/EmailNotificationForm/constants.js","../app/javascript/src/components/EmailNotificationForm/utils.js","../app/javascript/src/components/EmailNotificationForm/index.jsx"],"sourcesContent":["export const EMAIL_NOTIFICATIONS_URL =\n \"neeto_email_notifications/email_notification\";\n","import axios from \"axios\";\n\nimport { EMAIL_NOTIFICATIONS_URL } from \"src/constants\";\n\nconst fetch = params => axios.get(EMAIL_NOTIFICATIONS_URL, { params });\n\nconst update = payload => axios.put(EMAIL_NOTIFICATIONS_URL, payload);\n\nconst emailNotificationsApi = { fetch, update };\n\nexport default emailNotificationsApi;\n","export const QUERY_KEYS = {\n NEETO_EMAIL_NOTIFICATIONS: \"neeto-email-notifications\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport emailNotificationsApi from \"src/apis/email_notifications\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchEmailNotifications = params =>\n useQuery({\n queryKey: [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n params[\"notificationHolderId\"],\n params[\"customFields\"],\n ],\n queryFn: () => emailNotificationsApi.fetch(params),\n staleTime: DEFAULT_STALE_TIME,\n select: prop(\"emailNotification\"),\n enabled: isNotEmpty(params),\n });\n\nexport const useUpdateEmailNotification = () =>\n useMutationWithInvalidation(params => emailNotificationsApi.update(params), {\n keysToInvalidate: [\n (_, { notificationHolderId }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n ],\n ],\n });\n","import * as yup from \"yup\";\n\nexport const FORM_VALIDATION_SCHEMA = { isEnabled: yup.boolean() };\n","import { isNotEmpty } from \"neetocist\";\nimport { isEmpty, mergeLeft, prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nconst createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseEmailsOptions = (emailOptions = []) =>\n emailOptions.map(prop(\"label\"));\n\nexport const parseEmailNotificationData = (data, sendToOptions) => {\n const {\n notifyEmails,\n notifyCcEmails,\n notifyBccEmails,\n replyToId,\n customFields,\n ...rest\n } = data;\n\n const parsed = { ...customFields, ...rest };\n parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];\n parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];\n parsed.sendToBcc = notifyCcEmails ? createEmailOptions(notifyBccEmails) : [];\n parsed.replyTo = replyToId || customFields[\"replyTo\"];\n parsed.sendToId = customFields[\"sendToId\"] || sendToOptions?.[0]?.value || \"\";\n parsed.showCopyEmails = !!(notifyCcEmails?.length || notifyBccEmails?.length);\n\n return parsed;\n};\n\nexport const packEmailPayload = (values, isReplyToDropdownField) => {\n const {\n // eslint-disable-next-line no-unused-vars\n id: _,\n isEnabled,\n sendTo,\n sendToCc,\n sendToBcc,\n showCopyEmails,\n replyTo,\n message,\n subject,\n sendFrom,\n disabledByUser,\n sendToId,\n ...rest\n } = values;\n let payload = { isEnabled };\n\n if (isEnabled) {\n payload = { ...payload };\n payload.notifyEmails = parseEmailsOptions(sendTo);\n payload.notifyBccEmails = showCopyEmails\n ? parseEmailsOptions(sendToBcc)\n : [];\n\n payload.notifyCcEmails = showCopyEmails ? parseEmailsOptions(sendToCc) : [];\n if (isReplyToDropdownField) {\n payload.replyToId = replyTo;\n } else {\n rest.replyTo = replyTo;\n }\n payload.message = message;\n payload.subject = subject;\n payload.customFields = { ...rest, disabledByUser: false };\n\n if (isNotEmpty(sendToId)) {\n payload.customFields = mergeLeft(payload.customFields, { sendToId });\n }\n payload.sendFrom = sendFrom;\n } else {\n payload.customFields = { disabledByUser };\n }\n\n return payload;\n};\n\nexport const renderText = (text, fallbackTranslation) =>\n isEmpty(text) ? fallbackTranslation : text;\n","import { isNotPresent, noop } from \"neetocist\";\nimport EmailFormComponent from \"neetomolecules/EmailForm\";\nimport { Spinner } from \"neetoui\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchEmailNotifications,\n useUpdateEmailNotification,\n} from \"src/hooks/reactQuery/emailNotificationApi\";\n\nimport { FORM_VALIDATION_SCHEMA } from \"./constants\";\nimport {\n packEmailPayload,\n parseEmailNotificationData,\n renderText,\n} from \"./utils\";\n\nconst NeetoEmailNotificationForm = ({\n emailNotificationParams = {},\n emailPreviewProps = {},\n emailFormProps = {},\n emailFormikProps = {},\n title = \"\",\n subTitle = \"\",\n disabled = false,\n tooltipProps = {},\n onSuccess = noop,\n blockNavigation = false,\n breadcrumbs = [],\n children,\n helpPopoverProps = {},\n}) => {\n const { t } = useTranslation();\n\n const { data = {}, isLoading } = useFetchEmailNotifications(\n emailNotificationParams\n );\n\n const { mutate: updateEmailNotification, isPending: isSubmitting } =\n useUpdateEmailNotification();\n\n const handleSubmit = values => {\n const isReplyToDropdownField =\n emailFormProps?.replyToFieldProps?.options !== undefined;\n\n const body = mergeDeepLeft(\n packEmailPayload(values, isReplyToDropdownField),\n emailNotificationParams\n );\n updateEmailNotification(body, { onSuccess });\n };\n\n if (isLoading || isNotPresent(data)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const formattedTitle = renderText(\n title,\n t(\"neetoEmailNotifications.emailNotification.title\")\n );\n\n const formattedSubTitle = renderText(\n subTitle,\n t(\"neetoEmailNotifications.emailNotification.subTitle\")\n );\n\n const {\n validationSchema: customValidationSchema,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n ...pureFormikProps\n } = emailFormikProps;\n\n return (\n <div className=\"min-w-0 flex-grow overflow-y-auto\">\n <EmailFormComponent\n {...{\n blockNavigation,\n emailPreviewProps,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n tooltipProps,\n }}\n showSendToField\n emailFormProps={{ showSendToField: true, ...emailFormProps }}\n isLoading={isSubmitting}\n validationSchema={customValidationSchema || FORM_VALIDATION_SCHEMA}\n formikProps={{\n validateOnBlur: true,\n validateOnChange: true,\n ...pureFormikProps,\n }}\n headerProps={{\n title: formattedTitle,\n titleHelpPopoverProps: helpPopoverProps,\n breadcrumbs,\n }}\n initialValues={parseEmailNotificationData(\n data,\n emailFormProps?.sendToFieldProps?.options ||\n emailFormProps?.sendToOptions\n )}\n switchProps={{\n label: formattedSubTitle,\n disabled,\n \"data-cy\": \"receive-email-notification-switch\",\n }}\n onSubmit={handleSubmit}\n >\n {children}\n </EmailFormComponent>\n </div>\n );\n};\n\nexport default NeetoEmailNotificationForm;\n"],"names":["EMAIL_NOTIFICATIONS_URL","fetch","params","axios","get","update","payload","put","emailNotificationsApi","QUERY_KEYS","NEETO_EMAIL_NOTIFICATIONS","useFetchEmailNotifications","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","select","prop","enabled","isNotEmpty","useUpdateEmailNotification","useMutationWithInvalidation","keysToInvalidate","_","_ref","notificationHolderId","FORM_VALIDATION_SCHEMA","isEnabled","yup","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","value","valid","parseEmailsOptions","emailOptions","parseEmailNotificationData","data","sendToOptions","_sendToOptions$","notifyEmails","notifyCcEmails","notifyBccEmails","replyToId","customFields","rest","_objectWithoutProperties","_excluded","parsed","_objectSpread","sendTo","sendToCc","sendToBcc","replyTo","sendToId","showCopyEmails","packEmailPayload","values","isReplyToDropdownField","id","message","subject","sendFrom","disabledByUser","_excluded2","mergeLeft","renderText","text","fallbackTranslation","isEmpty","NeetoEmailNotificationForm","_emailFormProps$sendT","_ref$emailNotificatio","emailNotificationParams","_ref$emailPreviewProp","emailPreviewProps","_ref$emailFormProps","emailFormProps","_ref$emailFormikProps","emailFormikProps","_ref$title","title","_ref$subTitle","subTitle","_ref$disabled","disabled","_ref$tooltipProps","tooltipProps","_ref$onSuccess","onSuccess","noop","_ref$blockNavigation","blockNavigation","_ref$breadcrumbs","breadcrumbs","children","_ref$helpPopoverProps","helpPopoverProps","_useTranslation","useTranslation","t","_useFetchEmailNotific","_useFetchEmailNotific2","isLoading","_useUpdateEmailNotifi","updateEmailNotification","mutate","isSubmitting","isPending","handleSubmit","_emailFormProps$reply","replyToFieldProps","options","body","mergeDeepLeft","isNotPresent","_jsx","className","Spinner","formattedTitle","formattedSubTitle","customValidationSchema","validationSchema","_emailFormikProps$sho","showReplyToField","_emailFormikProps$sho2","showSendToAsRadio","_emailFormikProps$sho3","showCcField","_emailFormikProps$sho4","showBccField","pureFormikProps","EmailFormComponent","showSendToField","formikProps","validateOnBlur","validateOnChange","headerProps","titleHelpPopoverProps","initialValues","sendToFieldProps","switchProps","onSubmit"],"mappings":"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"}
1
+ {"version":3,"file":"NeetoEmailNotificationForm.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/apis/email_notifications.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/emailNotificationApi.js","../app/javascript/src/components/EmailNotificationForm/constants.js","../app/javascript/src/components/EmailNotificationForm/utils.js","../app/javascript/src/components/EmailNotificationForm/index.jsx"],"sourcesContent":["export const EMAIL_NOTIFICATIONS_BASE_URL =\n \"neeto_email_notifications/email_notification\";\n\nexport const RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL = `${EMAIL_NOTIFICATIONS_BASE_URL}/reset_to_default`;\n","import axios from \"axios\";\n\nimport {\n RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL,\n EMAIL_NOTIFICATIONS_BASE_URL,\n} from \"src/constants\";\n\nconst fetch = params => axios.get(EMAIL_NOTIFICATIONS_BASE_URL, { params });\n\nconst update = payload => axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);\n\nconst resetToDefault = params =>\n axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);\n\nconst emailNotificationsApi = { fetch, update, resetToDefault };\n\nexport default emailNotificationsApi;\n","export const QUERY_KEYS = {\n NEETO_EMAIL_NOTIFICATIONS: \"neeto-email-notifications\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport emailNotificationsApi from \"src/apis/email_notifications\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchEmailNotifications = params =>\n useQuery({\n queryKey: [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n params[\"notificationHolderId\"],\n params[\"customFields\"],\n ],\n queryFn: () => emailNotificationsApi.fetch(params),\n staleTime: DEFAULT_STALE_TIME,\n select: prop(\"emailNotification\"),\n enabled: isNotEmpty(params),\n });\n\nexport const useUpdateEmailNotification = () =>\n useMutationWithInvalidation(params => emailNotificationsApi.update(params), {\n keysToInvalidate: [\n (_, { notificationHolderId }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n ],\n ],\n });\n\nexport const useResetEmailNotificationToDefault = () =>\n useMutationWithInvalidation(emailNotificationsApi.resetToDefault, {\n keysToInvalidate: [\n (_, { notificationHolderId, customFields }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n customFields,\n ],\n ],\n });\n","import * as yup from \"yup\";\n\nexport const FORM_VALIDATION_SCHEMA = { isEnabled: yup.boolean() };\n\nexport const DEFAULT_FIELDS_VISIBILITY = {\n showSendToField: true,\n showReplyToField: false,\n showSendToAsRadio: false,\n showBccField: false,\n showCcField: false,\n};\n","import { isNotEmpty } from \"neetocist\";\nimport { isEmpty, mergeLeft, prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nconst createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseEmailsOptions = (emailOptions = []) =>\n emailOptions.map(prop(\"label\"));\n\nexport const parseEmailNotificationData = (data, sendToOptions) => {\n const {\n notifyEmails,\n notifyCcEmails,\n notifyBccEmails,\n replyToId,\n customFields,\n ...rest\n } = data;\n\n const parsed = { ...customFields, ...rest };\n parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];\n parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];\n parsed.sendToBcc = notifyCcEmails ? createEmailOptions(notifyBccEmails) : [];\n parsed.replyTo = replyToId || customFields[\"replyTo\"];\n parsed.sendToId = customFields[\"sendToId\"] || sendToOptions?.[0]?.value || \"\";\n parsed.showCopyEmails = !!(notifyCcEmails?.length || notifyBccEmails?.length);\n\n return parsed;\n};\n\nexport const packEmailPayload = (\n values,\n isReplyToDropdownField,\n isDisabledByUser\n) => {\n const {\n // eslint-disable-next-line no-unused-vars\n id: _,\n isEnabled,\n sendTo,\n sendToCc,\n sendToBcc,\n showCopyEmails,\n replyTo,\n message,\n subject,\n sendFrom,\n sendToId,\n ...rest\n } = values;\n let payload = { isEnabled };\n\n if (isEnabled) {\n payload = { ...payload };\n payload.notifyEmails = parseEmailsOptions(sendTo);\n payload.notifyBccEmails = showCopyEmails\n ? parseEmailsOptions(sendToBcc)\n : [];\n\n payload.notifyCcEmails = showCopyEmails ? parseEmailsOptions(sendToCc) : [];\n if (isReplyToDropdownField) {\n payload.replyToId = replyTo;\n } else {\n rest.replyTo = replyTo;\n }\n payload.message = message;\n payload.subject = subject;\n payload.customFields = { ...rest, disabledByUser: false };\n\n if (isNotEmpty(sendToId)) {\n payload.customFields = mergeLeft(payload.customFields, { sendToId });\n }\n payload.sendFrom = sendFrom;\n } else {\n payload.customFields = { disabledByUser: isDisabledByUser };\n }\n\n return payload;\n};\n\nexport const renderText = (text, fallbackTranslation) =>\n isEmpty(text) ? fallbackTranslation : text;\n","import { useRef } from \"react\";\n\nimport { isNotPresent, noop } from \"neetocist\";\nimport EmailForm from \"neetomolecules/EmailForm\";\nimport { Spinner } from \"neetoui\";\nimport { mergeDeepLeft, mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchEmailNotifications,\n useUpdateEmailNotification,\n useResetEmailNotificationToDefault,\n} from \"src/hooks/reactQuery/emailNotificationApi\";\n\nimport { DEFAULT_FIELDS_VISIBILITY, FORM_VALIDATION_SCHEMA } from \"./constants\";\nimport {\n packEmailPayload,\n parseEmailNotificationData,\n renderText,\n} from \"./utils\";\n\nconst NeetoEmailNotificationForm = ({\n emailNotificationParams = {},\n emailPreviewProps = {},\n emailFormProps = {},\n emailFormikProps = {},\n title = \"\",\n notificationToggleLabel = \"\",\n breadcrumbs = [],\n helpPopoverProps = {},\n tooltipProps = {},\n disabled = false,\n fieldsVisibility = {},\n blockNavigation = false,\n onSuccess = noop,\n children,\n}) => {\n const editorRef = useRef();\n\n const { t } = useTranslation();\n\n const { data = {}, isLoading } = useFetchEmailNotifications(\n emailNotificationParams\n );\n\n const { mutate: updateEmailNotification, isPending: isSubmitting } =\n useUpdateEmailNotification();\n\n const { mutate: resetToDefault, isPending: isResetting } =\n useResetEmailNotificationToDefault();\n\n const handleSubmit = values => {\n const isDisabledByUser = data.isEnabled && !values.isEnabled;\n const isReplyToDropdownField =\n emailFormProps?.replyToFieldProps?.options !== undefined;\n\n const body = mergeDeepLeft(\n packEmailPayload(values, isReplyToDropdownField, isDisabledByUser),\n emailNotificationParams\n );\n updateEmailNotification(body, { onSuccess });\n };\n\n if (isLoading || isNotPresent(data)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const formattedTitle = renderText(\n title,\n t(\"neetoEmailNotifications.emailNotification.title\")\n );\n\n const formattedNotificationToggleLabel = renderText(\n notificationToggleLabel,\n t(\"neetoEmailNotifications.emailNotification.notificationToggleLabel\")\n );\n\n const { validationSchema: customValidationSchema, ...formikProps } =\n emailFormikProps;\n\n const handleResetToDefault = () => {\n resetToDefault(emailNotificationParams, {\n onSuccess: ({ emailNotification }) =>\n editorRef?.current?.editor?.commands?.setContent(\n emailNotification.message\n ),\n });\n };\n\n return (\n <div className=\"min-w-0 flex-grow overflow-y-auto\">\n <EmailForm\n {...{\n blockNavigation,\n emailPreviewProps,\n formikProps,\n tooltipProps,\n ...mergeLeft(fieldsVisibility, DEFAULT_FIELDS_VISIBILITY),\n }}\n isLoading={isSubmitting || isResetting}\n validationSchema={customValidationSchema || FORM_VALIDATION_SCHEMA}\n emailFormProps={{\n editorRef,\n handleResetToDefault,\n ...emailFormProps,\n }}\n headerProps={{\n title: formattedTitle,\n titleHelpPopoverProps: helpPopoverProps,\n breadcrumbs,\n }}\n initialValues={parseEmailNotificationData(\n data,\n emailFormProps?.sendToFieldProps?.options\n )}\n switchProps={{\n label: formattedNotificationToggleLabel,\n disabled,\n \"data-cy\": \"receive-email-notification-switch\",\n }}\n onSubmit={handleSubmit}\n >\n {children}\n </EmailForm>\n </div>\n );\n};\n\nexport default NeetoEmailNotificationForm;\n"],"names":["EMAIL_NOTIFICATIONS_BASE_URL","RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL","concat","fetch","params","axios","get","update","payload","put","resetToDefault","post","emailNotificationsApi","QUERY_KEYS","NEETO_EMAIL_NOTIFICATIONS","useFetchEmailNotifications","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","select","prop","enabled","isNotEmpty","useUpdateEmailNotification","useMutationWithInvalidation","keysToInvalidate","_","_ref","notificationHolderId","useResetEmailNotificationToDefault","_ref2","customFields","FORM_VALIDATION_SCHEMA","isEnabled","yup","DEFAULT_FIELDS_VISIBILITY","showSendToField","showReplyToField","showSendToAsRadio","showBccField","showCcField","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","value","valid","parseEmailsOptions","emailOptions","parseEmailNotificationData","data","sendToOptions","_sendToOptions$","notifyEmails","notifyCcEmails","notifyBccEmails","replyToId","rest","_objectWithoutProperties","_excluded","parsed","_objectSpread","sendTo","sendToCc","sendToBcc","replyTo","sendToId","showCopyEmails","packEmailPayload","values","isReplyToDropdownField","isDisabledByUser","id","message","subject","sendFrom","_excluded2","disabledByUser","mergeLeft","renderText","text","fallbackTranslation","isEmpty","NeetoEmailNotificationForm","_emailFormProps$sendT","_ref$emailNotificatio","emailNotificationParams","_ref$emailPreviewProp","emailPreviewProps","_ref$emailFormProps","emailFormProps","_ref$emailFormikProps","emailFormikProps","_ref$title","title","_ref$notificationTogg","notificationToggleLabel","_ref$breadcrumbs","breadcrumbs","_ref$helpPopoverProps","helpPopoverProps","_ref$tooltipProps","tooltipProps","_ref$disabled","disabled","_ref$fieldsVisibility","fieldsVisibility","_ref$blockNavigation","blockNavigation","_ref$onSuccess","onSuccess","noop","children","editorRef","useRef","_useTranslation","useTranslation","t","_useFetchEmailNotific","_useFetchEmailNotific2","isLoading","_useUpdateEmailNotifi","updateEmailNotification","mutate","isSubmitting","isPending","_useResetEmailNotific","isResetting","handleSubmit","_emailFormProps$reply","replyToFieldProps","options","body","mergeDeepLeft","isNotPresent","_jsx","className","Spinner","formattedTitle","formattedNotificationToggleLabel","customValidationSchema","validationSchema","formikProps","handleResetToDefault","_editorRef$current","emailNotification","current","editor","commands","setContent","EmailForm","headerProps","titleHelpPopoverProps","initialValues","sendToFieldProps","switchProps","onSubmit"],"mappings":"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"}
@@ -2,8 +2,9 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var react = require('react');
5
6
  var neetoCist = require('@bigbinary/neeto-cist');
6
- var EmailFormComponent = require('@bigbinary/neeto-molecules/EmailForm');
7
+ var EmailForm = require('@bigbinary/neeto-molecules/EmailForm');
7
8
  var Spinner = require('@bigbinary/neetoui/Spinner');
8
9
  var ramda = require('ramda');
9
10
  var reactI18next = require('react-i18next');
@@ -33,19 +34,24 @@ function _interopNamespaceDefault(e) {
33
34
 
34
35
  var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
35
36
 
36
- var EMAIL_NOTIFICATIONS_URL = "neeto_email_notifications/email_notification";
37
+ var EMAIL_NOTIFICATIONS_BASE_URL = "neeto_email_notifications/email_notification";
38
+ var RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL = "".concat(EMAIL_NOTIFICATIONS_BASE_URL, "/reset_to_default");
37
39
 
38
40
  var fetch = function fetch(params) {
39
- return axios.get(EMAIL_NOTIFICATIONS_URL, {
41
+ return axios.get(EMAIL_NOTIFICATIONS_BASE_URL, {
40
42
  params: params
41
43
  });
42
44
  };
43
45
  var update = function update(payload) {
44
- return axios.put(EMAIL_NOTIFICATIONS_URL, payload);
46
+ return axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);
47
+ };
48
+ var resetToDefault = function resetToDefault(params) {
49
+ return axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);
45
50
  };
46
51
  var emailNotificationsApi = {
47
52
  fetch: fetch,
48
- update: update
53
+ update: update,
54
+ resetToDefault: resetToDefault
49
55
  };
50
56
 
51
57
  var QUERY_KEYS = {
@@ -73,13 +79,29 @@ var useUpdateEmailNotification = function useUpdateEmailNotification() {
73
79
  }]
74
80
  });
75
81
  };
82
+ var useResetEmailNotificationToDefault = function useResetEmailNotificationToDefault() {
83
+ return reactUtils.useMutationWithInvalidation(emailNotificationsApi.resetToDefault, {
84
+ keysToInvalidate: [function (_, _ref2) {
85
+ var notificationHolderId = _ref2.notificationHolderId,
86
+ customFields = _ref2.customFields;
87
+ return [QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS, notificationHolderId, customFields];
88
+ }]
89
+ });
90
+ };
76
91
 
77
92
  var FORM_VALIDATION_SCHEMA = {
78
93
  isEnabled: yup__namespace["boolean"]()
79
94
  };
95
+ var DEFAULT_FIELDS_VISIBILITY = {
96
+ showSendToField: true,
97
+ showReplyToField: false,
98
+ showSendToAsRadio: false,
99
+ showBccField: false,
100
+ showCcField: false
101
+ };
80
102
 
81
103
  var _excluded$1 = ["notifyEmails", "notifyCcEmails", "notifyBccEmails", "replyToId", "customFields"],
82
- _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "disabledByUser", "sendToId"];
104
+ _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "sendToId"];
83
105
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
84
106
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
85
107
  var isValidEmail = function isValidEmail(email) {
@@ -116,7 +138,7 @@ var parseEmailNotificationData = function parseEmailNotificationData(data, sendT
116
138
  parsed.showCopyEmails = !!(notifyCcEmails !== null && notifyCcEmails !== void 0 && notifyCcEmails.length || notifyBccEmails !== null && notifyBccEmails !== void 0 && notifyBccEmails.length);
117
139
  return parsed;
118
140
  };
119
- var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField) {
141
+ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField, isDisabledByUser) {
120
142
  values.id;
121
143
  var isEnabled = values.isEnabled,
122
144
  sendTo = values.sendTo,
@@ -127,7 +149,6 @@ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField)
127
149
  message = values.message,
128
150
  subject = values.subject,
129
151
  sendFrom = values.sendFrom,
130
- disabledByUser = values.disabledByUser,
131
152
  sendToId = values.sendToId,
132
153
  rest = _objectWithoutProperties(values, _excluded2);
133
154
  var payload = {
@@ -156,7 +177,7 @@ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField)
156
177
  payload.sendFrom = sendFrom;
157
178
  } else {
158
179
  payload.customFields = {
159
- disabledByUser: disabledByUser
180
+ disabledByUser: isDisabledByUser
160
181
  };
161
182
  }
162
183
  return payload;
@@ -165,7 +186,7 @@ var renderText = function renderText(text, fallbackTranslation) {
165
186
  return ramda.isEmpty(text) ? fallbackTranslation : text;
166
187
  };
167
188
 
168
- var _excluded = ["validationSchema", "showReplyToField", "showSendToAsRadio", "showCcField", "showBccField"];
189
+ var _excluded = ["validationSchema"];
169
190
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
170
191
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
171
192
  var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
@@ -180,21 +201,24 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
180
201
  emailFormikProps = _ref$emailFormikProps === void 0 ? {} : _ref$emailFormikProps,
181
202
  _ref$title = _ref.title,
182
203
  title = _ref$title === void 0 ? "" : _ref$title,
183
- _ref$subTitle = _ref.subTitle,
184
- subTitle = _ref$subTitle === void 0 ? "" : _ref$subTitle,
185
- _ref$disabled = _ref.disabled,
186
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
204
+ _ref$notificationTogg = _ref.notificationToggleLabel,
205
+ notificationToggleLabel = _ref$notificationTogg === void 0 ? "" : _ref$notificationTogg,
206
+ _ref$breadcrumbs = _ref.breadcrumbs,
207
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
208
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
209
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
187
210
  _ref$tooltipProps = _ref.tooltipProps,
188
211
  tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
189
- _ref$onSuccess = _ref.onSuccess,
190
- onSuccess = _ref$onSuccess === void 0 ? neetoCist.noop : _ref$onSuccess,
212
+ _ref$disabled = _ref.disabled,
213
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
214
+ _ref$fieldsVisibility = _ref.fieldsVisibility,
215
+ fieldsVisibility = _ref$fieldsVisibility === void 0 ? {} : _ref$fieldsVisibility,
191
216
  _ref$blockNavigation = _ref.blockNavigation,
192
217
  blockNavigation = _ref$blockNavigation === void 0 ? false : _ref$blockNavigation,
193
- _ref$breadcrumbs = _ref.breadcrumbs,
194
- breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
195
- children = _ref.children,
196
- _ref$helpPopoverProps = _ref.helpPopoverProps,
197
- helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
218
+ _ref$onSuccess = _ref.onSuccess,
219
+ onSuccess = _ref$onSuccess === void 0 ? neetoCist.noop : _ref$onSuccess,
220
+ children = _ref.children;
221
+ var editorRef = react.useRef();
198
222
  var _useTranslation = reactI18next.useTranslation(),
199
223
  t = _useTranslation.t;
200
224
  var _useFetchEmailNotific = useFetchEmailNotifications(emailNotificationParams),
@@ -204,10 +228,14 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
204
228
  var _useUpdateEmailNotifi = useUpdateEmailNotification(),
205
229
  updateEmailNotification = _useUpdateEmailNotifi.mutate,
206
230
  isSubmitting = _useUpdateEmailNotifi.isPending;
231
+ var _useResetEmailNotific = useResetEmailNotificationToDefault(),
232
+ resetToDefault = _useResetEmailNotific.mutate,
233
+ isResetting = _useResetEmailNotific.isPending;
207
234
  var handleSubmit = function handleSubmit(values) {
208
235
  var _emailFormProps$reply;
236
+ var isDisabledByUser = data.isEnabled && !values.isEnabled;
209
237
  var isReplyToDropdownField = (emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$reply = emailFormProps.replyToFieldProps) === null || _emailFormProps$reply === void 0 ? void 0 : _emailFormProps$reply.options) !== undefined;
210
- var body = ramda.mergeDeepLeft(packEmailPayload(values, isReplyToDropdownField), emailNotificationParams);
238
+ var body = ramda.mergeDeepLeft(packEmailPayload(values, isReplyToDropdownField, isDisabledByUser), emailNotificationParams);
211
239
  updateEmailNotification(body, {
212
240
  onSuccess: onSuccess
213
241
  });
@@ -219,51 +247,46 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
219
247
  });
220
248
  }
221
249
  var formattedTitle = renderText(title, t("neetoEmailNotifications.emailNotification.title"));
222
- var formattedSubTitle = renderText(subTitle, t("neetoEmailNotifications.emailNotification.subTitle"));
250
+ var formattedNotificationToggleLabel = renderText(notificationToggleLabel, t("neetoEmailNotifications.emailNotification.notificationToggleLabel"));
223
251
  var customValidationSchema = emailFormikProps.validationSchema,
224
- _emailFormikProps$sho = emailFormikProps.showReplyToField,
225
- showReplyToField = _emailFormikProps$sho === void 0 ? false : _emailFormikProps$sho,
226
- _emailFormikProps$sho2 = emailFormikProps.showSendToAsRadio,
227
- showSendToAsRadio = _emailFormikProps$sho2 === void 0 ? false : _emailFormikProps$sho2,
228
- _emailFormikProps$sho3 = emailFormikProps.showCcField,
229
- showCcField = _emailFormikProps$sho3 === void 0 ? false : _emailFormikProps$sho3,
230
- _emailFormikProps$sho4 = emailFormikProps.showBccField,
231
- showBccField = _emailFormikProps$sho4 === void 0 ? false : _emailFormikProps$sho4,
232
- pureFormikProps = _objectWithoutProperties(emailFormikProps, _excluded);
252
+ formikProps = _objectWithoutProperties(emailFormikProps, _excluded);
253
+ var handleResetToDefault = function handleResetToDefault() {
254
+ resetToDefault(emailNotificationParams, {
255
+ onSuccess: function onSuccess(_ref2) {
256
+ var _editorRef$current;
257
+ var emailNotification = _ref2.emailNotification;
258
+ return editorRef === null || editorRef === void 0 || (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.commands) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.setContent(emailNotification.message);
259
+ }
260
+ });
261
+ };
233
262
  return /*#__PURE__*/jsxRuntime.jsx("div", {
234
263
  className: "min-w-0 flex-grow overflow-y-auto",
235
- children: /*#__PURE__*/jsxRuntime.jsx(EmailFormComponent, {
264
+ children: /*#__PURE__*/jsxRuntime.jsx(EmailForm, _objectSpread(_objectSpread({}, _objectSpread({
236
265
  blockNavigation: blockNavigation,
237
266
  emailPreviewProps: emailPreviewProps,
238
- showBccField: showBccField,
239
- showCcField: showCcField,
240
- showReplyToField: showReplyToField,
241
- showSendToAsRadio: showSendToAsRadio,
242
- tooltipProps: tooltipProps,
243
- showSendToField: true,
267
+ formikProps: formikProps,
268
+ tooltipProps: tooltipProps
269
+ }, ramda.mergeLeft(fieldsVisibility, DEFAULT_FIELDS_VISIBILITY))), {}, {
270
+ isLoading: isSubmitting || isResetting,
271
+ validationSchema: customValidationSchema || FORM_VALIDATION_SCHEMA,
244
272
  emailFormProps: _objectSpread({
245
- showSendToField: true
273
+ editorRef: editorRef,
274
+ handleResetToDefault: handleResetToDefault
246
275
  }, emailFormProps),
247
- isLoading: isSubmitting,
248
- validationSchema: customValidationSchema || FORM_VALIDATION_SCHEMA,
249
- formikProps: _objectSpread({
250
- validateOnBlur: true,
251
- validateOnChange: true
252
- }, pureFormikProps),
253
276
  headerProps: {
254
277
  title: formattedTitle,
255
278
  titleHelpPopoverProps: helpPopoverProps,
256
279
  breadcrumbs: breadcrumbs
257
280
  },
258
- initialValues: parseEmailNotificationData(data, (emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$sendT = emailFormProps.sendToFieldProps) === null || _emailFormProps$sendT === void 0 ? void 0 : _emailFormProps$sendT.options) || (emailFormProps === null || emailFormProps === void 0 ? void 0 : emailFormProps.sendToOptions)),
281
+ initialValues: parseEmailNotificationData(data, emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$sendT = emailFormProps.sendToFieldProps) === null || _emailFormProps$sendT === void 0 ? void 0 : _emailFormProps$sendT.options),
259
282
  switchProps: {
260
- label: formattedSubTitle,
283
+ label: formattedNotificationToggleLabel,
261
284
  disabled: disabled,
262
285
  "data-cy": "receive-email-notification-switch"
263
286
  },
264
287
  onSubmit: handleSubmit,
265
288
  children: children
266
- })
289
+ }))
267
290
  });
268
291
  };
269
292
 
@@ -1 +1 @@
1
- {"version":3,"file":"NeetoEmailNotificationForm.js","sources":["../../app/javascript/src/constants/index.js","../../app/javascript/src/apis/email_notifications.js","../../app/javascript/src/constants/query.js","../../app/javascript/src/hooks/reactQuery/emailNotificationApi.js","../../app/javascript/src/components/EmailNotificationForm/constants.js","../../app/javascript/src/components/EmailNotificationForm/utils.js","../../app/javascript/src/components/EmailNotificationForm/index.jsx"],"sourcesContent":["export const EMAIL_NOTIFICATIONS_URL =\n \"neeto_email_notifications/email_notification\";\n","import axios from \"axios\";\n\nimport { EMAIL_NOTIFICATIONS_URL } from \"src/constants\";\n\nconst fetch = params => axios.get(EMAIL_NOTIFICATIONS_URL, { params });\n\nconst update = payload => axios.put(EMAIL_NOTIFICATIONS_URL, payload);\n\nconst emailNotificationsApi = { fetch, update };\n\nexport default emailNotificationsApi;\n","export const QUERY_KEYS = {\n NEETO_EMAIL_NOTIFICATIONS: \"neeto-email-notifications\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport emailNotificationsApi from \"src/apis/email_notifications\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchEmailNotifications = params =>\n useQuery({\n queryKey: [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n params[\"notificationHolderId\"],\n params[\"customFields\"],\n ],\n queryFn: () => emailNotificationsApi.fetch(params),\n staleTime: DEFAULT_STALE_TIME,\n select: prop(\"emailNotification\"),\n enabled: isNotEmpty(params),\n });\n\nexport const useUpdateEmailNotification = () =>\n useMutationWithInvalidation(params => emailNotificationsApi.update(params), {\n keysToInvalidate: [\n (_, { notificationHolderId }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n ],\n ],\n });\n","import * as yup from \"yup\";\n\nexport const FORM_VALIDATION_SCHEMA = { isEnabled: yup.boolean() };\n","import { isNotEmpty } from \"neetocist\";\nimport { isEmpty, mergeLeft, prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nconst createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseEmailsOptions = (emailOptions = []) =>\n emailOptions.map(prop(\"label\"));\n\nexport const parseEmailNotificationData = (data, sendToOptions) => {\n const {\n notifyEmails,\n notifyCcEmails,\n notifyBccEmails,\n replyToId,\n customFields,\n ...rest\n } = data;\n\n const parsed = { ...customFields, ...rest };\n parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];\n parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];\n parsed.sendToBcc = notifyCcEmails ? createEmailOptions(notifyBccEmails) : [];\n parsed.replyTo = replyToId || customFields[\"replyTo\"];\n parsed.sendToId = customFields[\"sendToId\"] || sendToOptions?.[0]?.value || \"\";\n parsed.showCopyEmails = !!(notifyCcEmails?.length || notifyBccEmails?.length);\n\n return parsed;\n};\n\nexport const packEmailPayload = (values, isReplyToDropdownField) => {\n const {\n // eslint-disable-next-line no-unused-vars\n id: _,\n isEnabled,\n sendTo,\n sendToCc,\n sendToBcc,\n showCopyEmails,\n replyTo,\n message,\n subject,\n sendFrom,\n disabledByUser,\n sendToId,\n ...rest\n } = values;\n let payload = { isEnabled };\n\n if (isEnabled) {\n payload = { ...payload };\n payload.notifyEmails = parseEmailsOptions(sendTo);\n payload.notifyBccEmails = showCopyEmails\n ? parseEmailsOptions(sendToBcc)\n : [];\n\n payload.notifyCcEmails = showCopyEmails ? parseEmailsOptions(sendToCc) : [];\n if (isReplyToDropdownField) {\n payload.replyToId = replyTo;\n } else {\n rest.replyTo = replyTo;\n }\n payload.message = message;\n payload.subject = subject;\n payload.customFields = { ...rest, disabledByUser: false };\n\n if (isNotEmpty(sendToId)) {\n payload.customFields = mergeLeft(payload.customFields, { sendToId });\n }\n payload.sendFrom = sendFrom;\n } else {\n payload.customFields = { disabledByUser };\n }\n\n return payload;\n};\n\nexport const renderText = (text, fallbackTranslation) =>\n isEmpty(text) ? fallbackTranslation : text;\n","import { isNotPresent, noop } from \"neetocist\";\nimport EmailFormComponent from \"neetomolecules/EmailForm\";\nimport { Spinner } from \"neetoui\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchEmailNotifications,\n useUpdateEmailNotification,\n} from \"src/hooks/reactQuery/emailNotificationApi\";\n\nimport { FORM_VALIDATION_SCHEMA } from \"./constants\";\nimport {\n packEmailPayload,\n parseEmailNotificationData,\n renderText,\n} from \"./utils\";\n\nconst NeetoEmailNotificationForm = ({\n emailNotificationParams = {},\n emailPreviewProps = {},\n emailFormProps = {},\n emailFormikProps = {},\n title = \"\",\n subTitle = \"\",\n disabled = false,\n tooltipProps = {},\n onSuccess = noop,\n blockNavigation = false,\n breadcrumbs = [],\n children,\n helpPopoverProps = {},\n}) => {\n const { t } = useTranslation();\n\n const { data = {}, isLoading } = useFetchEmailNotifications(\n emailNotificationParams\n );\n\n const { mutate: updateEmailNotification, isPending: isSubmitting } =\n useUpdateEmailNotification();\n\n const handleSubmit = values => {\n const isReplyToDropdownField =\n emailFormProps?.replyToFieldProps?.options !== undefined;\n\n const body = mergeDeepLeft(\n packEmailPayload(values, isReplyToDropdownField),\n emailNotificationParams\n );\n updateEmailNotification(body, { onSuccess });\n };\n\n if (isLoading || isNotPresent(data)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const formattedTitle = renderText(\n title,\n t(\"neetoEmailNotifications.emailNotification.title\")\n );\n\n const formattedSubTitle = renderText(\n subTitle,\n t(\"neetoEmailNotifications.emailNotification.subTitle\")\n );\n\n const {\n validationSchema: customValidationSchema,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n ...pureFormikProps\n } = emailFormikProps;\n\n return (\n <div className=\"min-w-0 flex-grow overflow-y-auto\">\n <EmailFormComponent\n {...{\n blockNavigation,\n emailPreviewProps,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n tooltipProps,\n }}\n showSendToField\n emailFormProps={{ showSendToField: true, ...emailFormProps }}\n isLoading={isSubmitting}\n validationSchema={customValidationSchema || FORM_VALIDATION_SCHEMA}\n formikProps={{\n validateOnBlur: true,\n validateOnChange: true,\n ...pureFormikProps,\n }}\n headerProps={{\n title: formattedTitle,\n titleHelpPopoverProps: helpPopoverProps,\n breadcrumbs,\n }}\n initialValues={parseEmailNotificationData(\n data,\n emailFormProps?.sendToFieldProps?.options ||\n emailFormProps?.sendToOptions\n )}\n switchProps={{\n label: formattedSubTitle,\n disabled,\n \"data-cy\": \"receive-email-notification-switch\",\n }}\n onSubmit={handleSubmit}\n >\n {children}\n </EmailFormComponent>\n </div>\n );\n};\n\nexport default NeetoEmailNotificationForm;\n"],"names":["EMAIL_NOTIFICATIONS_URL","fetch","params","axios","get","update","payload","put","emailNotificationsApi","QUERY_KEYS","NEETO_EMAIL_NOTIFICATIONS","useFetchEmailNotifications","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","select","prop","enabled","isNotEmpty","useUpdateEmailNotification","useMutationWithInvalidation","keysToInvalidate","_","_ref","notificationHolderId","FORM_VALIDATION_SCHEMA","isEnabled","yup","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","value","valid","parseEmailsOptions","emailOptions","parseEmailNotificationData","data","sendToOptions","_sendToOptions$","notifyEmails","notifyCcEmails","notifyBccEmails","replyToId","customFields","rest","_objectWithoutProperties","_excluded","parsed","_objectSpread","sendTo","sendToCc","sendToBcc","replyTo","sendToId","showCopyEmails","packEmailPayload","values","isReplyToDropdownField","id","message","subject","sendFrom","disabledByUser","_excluded2","mergeLeft","renderText","text","fallbackTranslation","isEmpty","NeetoEmailNotificationForm","_emailFormProps$sendT","_ref$emailNotificatio","emailNotificationParams","_ref$emailPreviewProp","emailPreviewProps","_ref$emailFormProps","emailFormProps","_ref$emailFormikProps","emailFormikProps","_ref$title","title","_ref$subTitle","subTitle","_ref$disabled","disabled","_ref$tooltipProps","tooltipProps","_ref$onSuccess","onSuccess","noop","_ref$blockNavigation","blockNavigation","_ref$breadcrumbs","breadcrumbs","children","_ref$helpPopoverProps","helpPopoverProps","_useTranslation","useTranslation","t","_useFetchEmailNotific","_useFetchEmailNotific2","isLoading","_useUpdateEmailNotifi","updateEmailNotification","mutate","isSubmitting","isPending","handleSubmit","_emailFormProps$reply","replyToFieldProps","options","body","mergeDeepLeft","isNotPresent","_jsx","className","Spinner","formattedTitle","formattedSubTitle","customValidationSchema","validationSchema","_emailFormikProps$sho","showReplyToField","_emailFormikProps$sho2","showSendToAsRadio","_emailFormikProps$sho3","showCcField","_emailFormikProps$sho4","showBccField","pureFormikProps","EmailFormComponent","showSendToField","formikProps","validateOnBlur","validateOnChange","headerProps","titleHelpPopoverProps","initialValues","sendToFieldProps","switchProps","onSubmit"],"mappings":"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"}
1
+ {"version":3,"file":"NeetoEmailNotificationForm.js","sources":["../../app/javascript/src/constants/index.js","../../app/javascript/src/apis/email_notifications.js","../../app/javascript/src/constants/query.js","../../app/javascript/src/hooks/reactQuery/emailNotificationApi.js","../../app/javascript/src/components/EmailNotificationForm/constants.js","../../app/javascript/src/components/EmailNotificationForm/utils.js","../../app/javascript/src/components/EmailNotificationForm/index.jsx"],"sourcesContent":["export const EMAIL_NOTIFICATIONS_BASE_URL =\n \"neeto_email_notifications/email_notification\";\n\nexport const RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL = `${EMAIL_NOTIFICATIONS_BASE_URL}/reset_to_default`;\n","import axios from \"axios\";\n\nimport {\n RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL,\n EMAIL_NOTIFICATIONS_BASE_URL,\n} from \"src/constants\";\n\nconst fetch = params => axios.get(EMAIL_NOTIFICATIONS_BASE_URL, { params });\n\nconst update = payload => axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);\n\nconst resetToDefault = params =>\n axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);\n\nconst emailNotificationsApi = { fetch, update, resetToDefault };\n\nexport default emailNotificationsApi;\n","export const QUERY_KEYS = {\n NEETO_EMAIL_NOTIFICATIONS: \"neeto-email-notifications\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport emailNotificationsApi from \"src/apis/email_notifications\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchEmailNotifications = params =>\n useQuery({\n queryKey: [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n params[\"notificationHolderId\"],\n params[\"customFields\"],\n ],\n queryFn: () => emailNotificationsApi.fetch(params),\n staleTime: DEFAULT_STALE_TIME,\n select: prop(\"emailNotification\"),\n enabled: isNotEmpty(params),\n });\n\nexport const useUpdateEmailNotification = () =>\n useMutationWithInvalidation(params => emailNotificationsApi.update(params), {\n keysToInvalidate: [\n (_, { notificationHolderId }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n ],\n ],\n });\n\nexport const useResetEmailNotificationToDefault = () =>\n useMutationWithInvalidation(emailNotificationsApi.resetToDefault, {\n keysToInvalidate: [\n (_, { notificationHolderId, customFields }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n customFields,\n ],\n ],\n });\n","import * as yup from \"yup\";\n\nexport const FORM_VALIDATION_SCHEMA = { isEnabled: yup.boolean() };\n\nexport const DEFAULT_FIELDS_VISIBILITY = {\n showSendToField: true,\n showReplyToField: false,\n showSendToAsRadio: false,\n showBccField: false,\n showCcField: false,\n};\n","import { isNotEmpty } from \"neetocist\";\nimport { isEmpty, mergeLeft, prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nconst createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseEmailsOptions = (emailOptions = []) =>\n emailOptions.map(prop(\"label\"));\n\nexport const parseEmailNotificationData = (data, sendToOptions) => {\n const {\n notifyEmails,\n notifyCcEmails,\n notifyBccEmails,\n replyToId,\n customFields,\n ...rest\n } = data;\n\n const parsed = { ...customFields, ...rest };\n parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];\n parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];\n parsed.sendToBcc = notifyCcEmails ? createEmailOptions(notifyBccEmails) : [];\n parsed.replyTo = replyToId || customFields[\"replyTo\"];\n parsed.sendToId = customFields[\"sendToId\"] || sendToOptions?.[0]?.value || \"\";\n parsed.showCopyEmails = !!(notifyCcEmails?.length || notifyBccEmails?.length);\n\n return parsed;\n};\n\nexport const packEmailPayload = (\n values,\n isReplyToDropdownField,\n isDisabledByUser\n) => {\n const {\n // eslint-disable-next-line no-unused-vars\n id: _,\n isEnabled,\n sendTo,\n sendToCc,\n sendToBcc,\n showCopyEmails,\n replyTo,\n message,\n subject,\n sendFrom,\n sendToId,\n ...rest\n } = values;\n let payload = { isEnabled };\n\n if (isEnabled) {\n payload = { ...payload };\n payload.notifyEmails = parseEmailsOptions(sendTo);\n payload.notifyBccEmails = showCopyEmails\n ? parseEmailsOptions(sendToBcc)\n : [];\n\n payload.notifyCcEmails = showCopyEmails ? parseEmailsOptions(sendToCc) : [];\n if (isReplyToDropdownField) {\n payload.replyToId = replyTo;\n } else {\n rest.replyTo = replyTo;\n }\n payload.message = message;\n payload.subject = subject;\n payload.customFields = { ...rest, disabledByUser: false };\n\n if (isNotEmpty(sendToId)) {\n payload.customFields = mergeLeft(payload.customFields, { sendToId });\n }\n payload.sendFrom = sendFrom;\n } else {\n payload.customFields = { disabledByUser: isDisabledByUser };\n }\n\n return payload;\n};\n\nexport const renderText = (text, fallbackTranslation) =>\n isEmpty(text) ? fallbackTranslation : text;\n","import { useRef } from \"react\";\n\nimport { isNotPresent, noop } from \"neetocist\";\nimport EmailForm from \"neetomolecules/EmailForm\";\nimport { Spinner } from \"neetoui\";\nimport { mergeDeepLeft, mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchEmailNotifications,\n useUpdateEmailNotification,\n useResetEmailNotificationToDefault,\n} from \"src/hooks/reactQuery/emailNotificationApi\";\n\nimport { DEFAULT_FIELDS_VISIBILITY, FORM_VALIDATION_SCHEMA } from \"./constants\";\nimport {\n packEmailPayload,\n parseEmailNotificationData,\n renderText,\n} from \"./utils\";\n\nconst NeetoEmailNotificationForm = ({\n emailNotificationParams = {},\n emailPreviewProps = {},\n emailFormProps = {},\n emailFormikProps = {},\n title = \"\",\n notificationToggleLabel = \"\",\n breadcrumbs = [],\n helpPopoverProps = {},\n tooltipProps = {},\n disabled = false,\n fieldsVisibility = {},\n blockNavigation = false,\n onSuccess = noop,\n children,\n}) => {\n const editorRef = useRef();\n\n const { t } = useTranslation();\n\n const { data = {}, isLoading } = useFetchEmailNotifications(\n emailNotificationParams\n );\n\n const { mutate: updateEmailNotification, isPending: isSubmitting } =\n useUpdateEmailNotification();\n\n const { mutate: resetToDefault, isPending: isResetting } =\n useResetEmailNotificationToDefault();\n\n const handleSubmit = values => {\n const isDisabledByUser = data.isEnabled && !values.isEnabled;\n const isReplyToDropdownField =\n emailFormProps?.replyToFieldProps?.options !== undefined;\n\n const body = mergeDeepLeft(\n packEmailPayload(values, isReplyToDropdownField, isDisabledByUser),\n emailNotificationParams\n );\n updateEmailNotification(body, { onSuccess });\n };\n\n if (isLoading || isNotPresent(data)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const formattedTitle = renderText(\n title,\n t(\"neetoEmailNotifications.emailNotification.title\")\n );\n\n const formattedNotificationToggleLabel = renderText(\n notificationToggleLabel,\n t(\"neetoEmailNotifications.emailNotification.notificationToggleLabel\")\n );\n\n const { validationSchema: customValidationSchema, ...formikProps } =\n emailFormikProps;\n\n const handleResetToDefault = () => {\n resetToDefault(emailNotificationParams, {\n onSuccess: ({ emailNotification }) =>\n editorRef?.current?.editor?.commands?.setContent(\n emailNotification.message\n ),\n });\n };\n\n return (\n <div className=\"min-w-0 flex-grow overflow-y-auto\">\n <EmailForm\n {...{\n blockNavigation,\n emailPreviewProps,\n formikProps,\n tooltipProps,\n ...mergeLeft(fieldsVisibility, DEFAULT_FIELDS_VISIBILITY),\n }}\n isLoading={isSubmitting || isResetting}\n validationSchema={customValidationSchema || FORM_VALIDATION_SCHEMA}\n emailFormProps={{\n editorRef,\n handleResetToDefault,\n ...emailFormProps,\n }}\n headerProps={{\n title: formattedTitle,\n titleHelpPopoverProps: helpPopoverProps,\n breadcrumbs,\n }}\n initialValues={parseEmailNotificationData(\n data,\n emailFormProps?.sendToFieldProps?.options\n )}\n switchProps={{\n label: formattedNotificationToggleLabel,\n disabled,\n \"data-cy\": \"receive-email-notification-switch\",\n }}\n onSubmit={handleSubmit}\n >\n {children}\n </EmailForm>\n </div>\n );\n};\n\nexport default NeetoEmailNotificationForm;\n"],"names":["EMAIL_NOTIFICATIONS_BASE_URL","RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL","concat","fetch","params","axios","get","update","payload","put","resetToDefault","post","emailNotificationsApi","QUERY_KEYS","NEETO_EMAIL_NOTIFICATIONS","useFetchEmailNotifications","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","select","prop","enabled","isNotEmpty","useUpdateEmailNotification","useMutationWithInvalidation","keysToInvalidate","_","_ref","notificationHolderId","useResetEmailNotificationToDefault","_ref2","customFields","FORM_VALIDATION_SCHEMA","isEnabled","yup","DEFAULT_FIELDS_VISIBILITY","showSendToField","showReplyToField","showSendToAsRadio","showBccField","showCcField","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","value","valid","parseEmailsOptions","emailOptions","parseEmailNotificationData","data","sendToOptions","_sendToOptions$","notifyEmails","notifyCcEmails","notifyBccEmails","replyToId","rest","_objectWithoutProperties","_excluded","parsed","_objectSpread","sendTo","sendToCc","sendToBcc","replyTo","sendToId","showCopyEmails","packEmailPayload","values","isReplyToDropdownField","isDisabledByUser","id","message","subject","sendFrom","_excluded2","disabledByUser","mergeLeft","renderText","text","fallbackTranslation","isEmpty","NeetoEmailNotificationForm","_emailFormProps$sendT","_ref$emailNotificatio","emailNotificationParams","_ref$emailPreviewProp","emailPreviewProps","_ref$emailFormProps","emailFormProps","_ref$emailFormikProps","emailFormikProps","_ref$title","title","_ref$notificationTogg","notificationToggleLabel","_ref$breadcrumbs","breadcrumbs","_ref$helpPopoverProps","helpPopoverProps","_ref$tooltipProps","tooltipProps","_ref$disabled","disabled","_ref$fieldsVisibility","fieldsVisibility","_ref$blockNavigation","blockNavigation","_ref$onSuccess","onSuccess","noop","children","editorRef","useRef","_useTranslation","useTranslation","t","_useFetchEmailNotific","_useFetchEmailNotific2","isLoading","_useUpdateEmailNotifi","updateEmailNotification","mutate","isSubmitting","isPending","_useResetEmailNotific","isResetting","handleSubmit","_emailFormProps$reply","replyToFieldProps","options","body","mergeDeepLeft","isNotPresent","_jsx","className","Spinner","formattedTitle","formattedNotificationToggleLabel","customValidationSchema","validationSchema","formikProps","handleResetToDefault","_editorRef$current","emailNotification","current","editor","commands","setContent","EmailForm","headerProps","titleHelpPopoverProps","initialValues","sendToFieldProps","switchProps","onSubmit"],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  var NeetoEmailNotificationForm = require('./NeetoEmailNotificationForm.js');
4
4
  require('@babel/runtime/helpers/defineProperty');
5
5
  require('@babel/runtime/helpers/objectWithoutProperties');
6
+ require('react');
6
7
  require('@bigbinary/neeto-cist');
7
8
  require('@bigbinary/neeto-molecules/EmailForm');
8
9
  require('@bigbinary/neetoui/Spinner');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as NeetoEmailNotificationForm } from './NeetoEmailNotificationForm.js';
2
2
  import '@babel/runtime/helpers/defineProperty';
3
3
  import '@babel/runtime/helpers/objectWithoutProperties';
4
+ import 'react';
4
5
  import '@bigbinary/neeto-cist';
5
6
  import '@bigbinary/neeto-molecules/EmailForm';
6
7
  import '@bigbinary/neetoui/Spinner';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-email-notifications-frontend",
3
- "version": "2.2.14",
3
+ "version": "2.2.15",
4
4
  "description": "A repo acts as the source of truth for the new nano's structure, configs, data etc.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-email-notifications-nano",
@@ -61,14 +61,14 @@
61
61
  "@babel/preset-typescript": "7.26.0",
62
62
  "@babel/runtime": "7.26.10",
63
63
  "@bigbinary/babel-preset-neeto": "^1.0.3",
64
- "@bigbinary/eslint-plugin-neeto": "1.6.4",
64
+ "@bigbinary/eslint-plugin-neeto": "1.7.0",
65
65
  "@bigbinary/neeto-cist": "1.0.17",
66
- "@bigbinary/neeto-commons-frontend": "4.13.45",
67
- "@bigbinary/neeto-editor": "1.47.20",
68
- "@bigbinary/neeto-filters-frontend": "4.3.22",
66
+ "@bigbinary/neeto-commons-frontend": "4.13.47",
67
+ "@bigbinary/neeto-editor": "1.47.21",
68
+ "@bigbinary/neeto-filters-frontend": "4.3.23",
69
69
  "@bigbinary/neeto-icons": "1.20.53",
70
- "@bigbinary/neeto-molecules": "3.16.81",
71
- "@bigbinary/neetoui": "8.3.13",
70
+ "@bigbinary/neeto-molecules": "3.16.87",
71
+ "@bigbinary/neetoui": "8.3.14",
72
72
  "@emotion/is-prop-valid": "1.2.0",
73
73
  "@faker-js/faker": "8.2.0",
74
74
  "@honeybadger-io/js": "6.10.1",
@@ -177,12 +177,12 @@
177
177
  "peerDependencies": {
178
178
  "@babel/runtime": "7.26.10",
179
179
  "@bigbinary/neeto-cist": "1.0.17",
180
- "@bigbinary/neeto-commons-frontend": "4.13.45",
181
- "@bigbinary/neeto-editor": "1.47.20",
182
- "@bigbinary/neeto-filters-frontend": "4.3.22",
180
+ "@bigbinary/neeto-commons-frontend": "4.13.47",
181
+ "@bigbinary/neeto-editor": "1.47.21",
182
+ "@bigbinary/neeto-filters-frontend": "4.3.23",
183
183
  "@bigbinary/neeto-icons": "1.20.53",
184
- "@bigbinary/neeto-molecules": "3.16.81",
185
- "@bigbinary/neetoui": "8.3.13",
184
+ "@bigbinary/neeto-molecules": "3.16.87",
185
+ "@bigbinary/neetoui": "8.3.14",
186
186
  "@honeybadger-io/js": "6.10.1",
187
187
  "@honeybadger-io/react": "6.1.25",
188
188
  "@tailwindcss/container-queries": "^0.1.1",
package/types.d.ts CHANGED
@@ -38,48 +38,48 @@ type EmailFormProps = {
38
38
  className?: string;
39
39
  sendToFieldProps?: SendToFieldPropsType;
40
40
  replyToFieldProps?: ReplyToFieldPropsType;
41
- replyToOptions?: FieldOptions[];
42
- sendToOptions?: FieldOptions[];
43
41
  showResetToDefaultButton?: boolean;
44
42
  editorRef?: any;
45
43
  editorAddons?: any[];
46
44
  };
47
45
 
48
46
  type EmailFormikProps = {
49
- showSendToField?: boolean;
50
- showReplyToField?: boolean;
51
- showSendToAsRadio?: boolean;
52
- showCcField?: boolean;
53
- showBccField?: boolean;
54
47
  onSubmit?: (values: any) => void;
55
48
  initialValues?: any;
56
49
  children?: React.ReactNode;
57
50
  formikProps?: { [key: string]: any };
58
- validationSchema?: ValidationMap;
51
+ validationSchema?: AnySchema | ValidationMap;
59
52
  };
60
53
 
61
54
  type EmailPreviewProps = {
62
55
  to?: string[];
56
+ from?: string;
63
57
  subject?: string;
64
58
  body?: string;
65
- from?: string;
66
59
  logo?: string;
67
- productName?: string;
68
60
  actionButtonText?: string;
69
61
  className?: string;
70
62
  customContent?: string;
71
63
  formatBody?: (content: string, variables?: any) => string;
72
64
  formatSubject?: (content: string, variables?: any) => string;
73
- bodyVariables?: any;
74
- subjectVariables?: any;
65
+ bodyVariables?: ContentVariables[];
66
+ subjectVariables?: ContentVariables[];
75
67
  };
76
68
 
77
69
  type EmailNotificationParams = {
78
- notificationHoldableId: string;
79
- notificationHoldableType: string;
70
+ notificationHolderType: string;
71
+ notificationHolderId: string;
80
72
  customFields?: { [key: string]: any };
81
73
  };
82
74
 
75
+ type FieldsVisibility = {
76
+ showBccField?: boolean;
77
+ showCcField?: boolean;
78
+ showReplyToField?: boolean;
79
+ showSendToAsRadio?: boolean;
80
+ showSendToField?: boolean;
81
+ };
82
+
83
83
  interface EmailNotificationProps {
84
84
  emailNotificationParams: EmailNotificationParams;
85
85
  emailFormProps?: EmailFormProps;
@@ -87,13 +87,14 @@ interface EmailNotificationProps {
87
87
  emailPreviewProps?: EmailPreviewProps;
88
88
  tooltipProps?: TooltipProps;
89
89
  title?: string;
90
- subTitle?: string;
90
+ notificationToggleLabel?: string;
91
91
  disabled?: boolean;
92
92
  blockNavigation?: boolean;
93
93
  children?: React.ReactNode;
94
94
  onSuccess?: Fn;
95
95
  breadcrumbs?: Array<{ text: string; link?: string }>;
96
96
  helpPopoverProps?: HelpPopoverProps;
97
+ fieldsVisibility?: FieldsVisibility;
97
98
  }
98
99
 
99
100
  export const NeetoEmailNotificationForm: React.FC<EmailNotificationProps>;