@dev.smartpricing/message-composer-layer 4.2.3-validations.0 → 4.2.4

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.
@@ -91,8 +91,11 @@ const defaultSenderEmail = computed(
91
91
  () => composerContext.organizationData?.value?.senderEmail ?? '',
92
92
  )
93
93
 
94
+ const accommodationName = computed(() => composerContext.accommodationName?.value ?? '')
95
+
94
96
  const state = ref<Schema>({
95
97
  to: '',
98
+ sender_name: accommodationName.value,
96
99
  from: '',
97
100
  })
98
101
 
@@ -120,6 +123,7 @@ const schema = z.object({
120
123
  },
121
124
  { message: t('editor.validation.error.emailInvalid') },
122
125
  ),
126
+ sender_name: z.string().optional(),
123
127
  from: z.string().refine((value) => !value || isEmail(value), {
124
128
  message: t('editor.validation.error.emailInvalid'),
125
129
  }),
@@ -133,10 +137,12 @@ const resolvedBrandId = computed(
133
137
 
134
138
  function onSubmit() {
135
139
  if (!resolvedMessage.value) return
140
+ const sender_name = state.value.sender_name?.trim()
136
141
  sendTest({
137
142
  message: resolvedMessage.value,
138
143
  to: state.value.to,
139
144
  brand_id: resolvedBrandId.value,
145
+ ...(sender_name ? { sender_name } : {}),
140
146
  from: state.value.from || undefined,
141
147
  })
142
148
  }
@@ -144,6 +150,11 @@ function onSubmit() {
144
150
  const open = defineModel<boolean>('open', { default: false })
145
151
  const formRef = ref()
146
152
 
153
+ // Reset sender name to the accommodation default each time the modal opens
154
+ watch(open, (isOpen) => {
155
+ if (isOpen) state.value.sender_name = accommodationName.value
156
+ })
157
+
147
158
  watch(status, (newStatus) => {
148
159
  if (newStatus === 'success') {
149
160
  const recipients = state.value.to
@@ -201,6 +212,18 @@ watch(status, (newStatus) => {
201
212
  :placeholder="$t('pages.email.test_email_from_placeholder')"
202
213
  />
203
214
  </UFormField>
215
+ <UFormField
216
+ name="sender_name"
217
+ :label="$t('pages.email.sender_name_label')"
218
+ class="mt-4"
219
+ :data-testid="sendTestEmailModalTestIds.senderNameFormField"
220
+ >
221
+ <UInput
222
+ v-model="state.sender_name"
223
+ :placeholder="$t('pages.email.sender_name_placeholder')"
224
+ :data-testid="sendTestEmailModalTestIds.senderNameInput"
225
+ />
226
+ </UFormField>
204
227
  </UForm>
205
228
  </template>
206
229
 
@@ -18,6 +18,7 @@ export interface ComposerContext {
18
18
  default_tags?: Ref<string[]>
19
19
  metaWabaId?: Ref<string>
20
20
  metaAccessToken?: Ref<string>
21
+ accommodationName?: Ref<string>
21
22
  isAdmin?: Ref<boolean>
22
23
  organizationData?: Ref<OrganizationData>
23
24
  }
@@ -330,6 +330,8 @@ export const sendTestEmailModalTestIds = {
330
330
  triggerButton: 'send-test-email-modal-trigger-button',
331
331
  toFormField: 'send-test-email-modal-to-form-field',
332
332
  toInput: 'send-test-email-modal-to-input',
333
+ senderNameFormField: 'send-test-email-modal-sender-name-form-field',
334
+ senderNameInput: 'send-test-email-modal-sender-name-input',
333
335
  cancelButton: 'send-test-email-modal-cancel-button',
334
336
  sendButton: 'send-test-email-modal-send-button',
335
337
  } as const
@@ -241,6 +241,8 @@ Diese Nachrichten müssen funktional sein, nicht werblich.
241
241
  send_test_success: 'Test-E-Mail erfolgreich gesendet.',
242
242
  test_email_to: 'An',
243
243
  test_email_to_placeholder: 'Empfänger-E-Mail(s), getrennt durch ;',
244
+ sender_name_label: 'Absendername',
245
+ sender_name_placeholder: 'Absendername',
244
246
  test_email_from: 'Von',
245
247
  test_email_from_placeholder: 'Absender-E-Mail-Adresse',
246
248
  create_message_group: {
@@ -238,6 +238,8 @@ These messages must be functional, not promotional.
238
238
  send_test_success: 'Test email sent successfully.',
239
239
  test_email_to: 'To',
240
240
  test_email_to_placeholder: 'Recipient email(s), separated by ;',
241
+ sender_name_label: 'Sender name',
242
+ sender_name_placeholder: 'Sender name',
241
243
  test_email_from: 'From',
242
244
  test_email_from_placeholder: 'Sender email address',
243
245
  create_message_group: {
@@ -238,6 +238,8 @@ Estos mensajes deben ser funcionales, no promocionales.
238
238
  send_test_success: 'Correo de prueba enviado correctamente.',
239
239
  test_email_to: 'Para',
240
240
  test_email_to_placeholder: 'Correo(s) del destinatario, separados por ;',
241
+ sender_name_label: 'Nombre del remitente',
242
+ sender_name_placeholder: 'Nombre del remitente',
241
243
  test_email_from: 'De',
242
244
  test_email_from_placeholder: 'Dirección de email del remitente',
243
245
  create_message_group: {
@@ -238,6 +238,8 @@ Ces messages doivent être fonctionnels, et non promotionnels.
238
238
  send_test_success: 'E-mail de test envoyé avec succès.',
239
239
  test_email_to: 'À',
240
240
  test_email_to_placeholder: 'E-mail(s) du/des destinataire(s), séparé(s) par ;',
241
+ sender_name_label: 'Nom de l\'expéditeur',
242
+ sender_name_placeholder: 'Nom de l\'expéditeur',
241
243
  test_email_from: 'De',
242
244
  test_email_from_placeholder: "Adresse e-mail de l'expéditeur",
243
245
  create_message_group: {
@@ -238,6 +238,8 @@ Questi messaggi devono essere funzionali, non promozionali.
238
238
  send_test_success: 'Email di test inviata con successo.',
239
239
  test_email_to: 'A',
240
240
  test_email_to_placeholder: 'Email destinatario/i, separate da ;',
241
+ sender_name_label: 'Nome mittente',
242
+ sender_name_placeholder: 'Nome mittente',
241
243
  test_email_from: 'Da',
242
244
  test_email_from_placeholder: 'Indirizzo email mittente',
243
245
  create_message_group: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.smartpricing/message-composer-layer",
3
- "version": "4.2.3-validations.0",
3
+ "version": "4.2.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./nuxt.config.ts",
@@ -36,7 +36,7 @@
36
36
  "vue-router": "^5.0.7",
37
37
  "vue3-emoji-picker": "^1.1.8",
38
38
  "zod": "^4.4.3",
39
- "@dev.smartpricing/message-composer-utils": "4.2.3-validations.0"
39
+ "@dev.smartpricing/message-composer-utils": "4.2.4"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@nuxt/eslint": "^1.15.2",