From 6d8610ff74c449341512268246702ee13e58f45e Mon Sep 17 00:00:00 2001
From: Hardik Bhatia <98163873+hardikbhatia777@users.noreply.github.com>
Date: Tue, 19 Mar 2024 01:06:00 +0530
Subject: [PATCH] fix: Incorrect initial data not allowing edit webhooks
 properly (#31948)

Co-authored-by: Douglas Fabris <27704687+dougfabris@users.noreply.github.com>
---
 .changeset/breezy-fireants-float.md           |  5 +++
 .../incoming/EditIncomingWebhook.tsx          | 22 +++++-----
 .../outgoing/EditOutgoingWebhook.tsx          | 40 +++++++++----------
 3 files changed, 36 insertions(+), 31 deletions(-)
 create mode 100644 .changeset/breezy-fireants-float.md

diff --git a/.changeset/breezy-fireants-float.md b/.changeset/breezy-fireants-float.md
new file mode 100644
index 00000000000..c43d2c6934b
--- /dev/null
+++ b/.changeset/breezy-fireants-float.md
@@ -0,0 +1,5 @@
+---
+'@rocket.chat/meteor': patch
+---
+
+Fixes an issue not allowing edit webhooks properly
diff --git a/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx b/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx
index 87a29dcce5c..c14c2b19d02 100644
--- a/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx
+++ b/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx
@@ -13,17 +13,17 @@ import { useUpdateIntegration } from '../hooks/useUpdateIntegration';
 import IncomingWebhookForm from './IncomingWebhookForm';
 
 const getInitialValue = (webhookData: Serialized<IIncomingIntegration> | undefined) => ({
-	enabled: webhookData?.enabled || false,
-	channel: webhookData?.channel.join(', ') || '',
-	username: webhookData?.username || '',
-	name: webhookData?.name || '',
-	alias: webhookData?.alias || '',
-	avatar: webhookData?.avatar || '',
-	emoji: webhookData?.emoji || '',
-	scriptEnabled: webhookData?.scriptEnabled || false,
-	scriptEngine: webhookData?.scriptEngine || 'isolated-vm',
-	overrideDestinationChannelEnabled: webhookData?.overrideDestinationChannelEnabled || false,
-	script: webhookData?.script || '',
+	enabled: webhookData?.enabled ?? true,
+	channel: webhookData?.channel.join(', ') ?? '',
+	username: webhookData?.username ?? '',
+	name: webhookData?.name ?? '',
+	alias: webhookData?.alias ?? '',
+	avatar: webhookData?.avatar ?? '',
+	emoji: webhookData?.emoji ?? '',
+	scriptEnabled: webhookData?.scriptEnabled ?? false,
+	scriptEngine: webhookData?.scriptEngine ?? 'isolated-vm',
+	overrideDestinationChannelEnabled: webhookData?.overrideDestinationChannelEnabled ?? false,
+	script: webhookData?.script ?? '',
 });
 
 const INCOMING_TYPE = 'webhook-incoming';
diff --git a/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx b/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx
index a8a3c1b8f50..1ca7d1f481c 100644
--- a/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx
+++ b/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx
@@ -14,27 +14,27 @@ import { useUpdateIntegration } from '../hooks/useUpdateIntegration';
 import OutgoingWebhookForm from './OutgoingWebhookForm';
 
 const getInitialValue = (webhookData: Serialized<IOutgoingIntegration> | undefined, defaultToken: string) => ({
-	enabled: webhookData?.enabled || true,
-	impersonateUser: webhookData?.impersonateUser || false,
-	event: webhookData?.event || 'sendMessage',
+	enabled: webhookData?.enabled ?? true,
+	impersonateUser: webhookData?.impersonateUser ?? false,
+	event: webhookData?.event ?? 'sendMessage',
 	urls: webhookData?.urls?.join('\n') ?? '',
-	token: webhookData?.token || defaultToken,
-	triggerWords: triggerWordsToString(webhookData?.triggerWords) || '',
-	targetRoom: webhookData?.targetRoom || '',
-	channel: webhookData?.channel.join(', ') || '',
-	username: webhookData?.username || '',
-	name: webhookData?.name || '',
-	alias: webhookData?.alias || '',
-	avatar: webhookData?.avatar || '',
-	emoji: webhookData?.emoji || '',
-	scriptEnabled: webhookData?.scriptEnabled || false,
-	scriptEngine: webhookData?.scriptEngine || 'isolated-vm',
-	script: webhookData?.script || '',
-	retryFailedCalls: webhookData?.retryFailedCalls || true,
-	retryCount: webhookData?.retryCount || 6,
-	retryDelay: webhookData?.retryDelay || 'powers-of-ten',
-	triggerWordAnywhere: webhookData?.triggerWordAnywhere || false,
-	runOnEdits: webhookData?.runOnEdits || true,
+	token: webhookData?.token ?? defaultToken,
+	triggerWords: triggerWordsToString(webhookData?.triggerWords) ?? '',
+	targetRoom: webhookData?.targetRoom ?? '',
+	channel: webhookData?.channel.join(', ') ?? '',
+	username: webhookData?.username ?? '',
+	name: webhookData?.name ?? '',
+	alias: webhookData?.alias ?? '',
+	avatar: webhookData?.avatar ?? '',
+	emoji: webhookData?.emoji ?? '',
+	scriptEnabled: webhookData?.scriptEnabled ?? false,
+	scriptEngine: webhookData?.scriptEngine ?? 'isolated-vm',
+	script: webhookData?.script ?? '',
+	retryFailedCalls: webhookData?.retryFailedCalls ?? true,
+	retryCount: webhookData?.retryCount ?? 6,
+	retryDelay: webhookData?.retryDelay ?? 'powers-of-ten',
+	triggerWordAnywhere: webhookData?.triggerWordAnywhere ?? false,
+	runOnEdits: webhookData?.runOnEdits ?? true,
 });
 
 const OUTGOING_TYPE = 'webhook-outgoing';
-- 
GitLab