From 1e4f02a56d5f819f944f7312627462414af7fdbd Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Mon, 20 Nov 2023 08:58:27 +0100
Subject: [PATCH 1/3] Updated Translations

---
 client/packages/lowcoder/src/i18n/locales/en.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts
index 40138fb17..c061179ef 100644
--- a/client/packages/lowcoder/src/i18n/locales/en.ts
+++ b/client/packages/lowcoder/src/i18n/locales/en.ts
@@ -318,6 +318,7 @@ export const en = {
     validate: "Validation message",
     border: "Border",
     borderRadius: "Border radius",
+    borderwidth: "Border width",
     background: "Background",
     headerBackground: "Header background",
     footerBackground: "Footer background",

From e03639fc341f6a73ac0cd5d3310fcf13a8042a81 Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Mon, 20 Nov 2023 09:08:40 +0100
Subject: [PATCH 2/3] Updated Section Control

---
 client/packages/lowcoder-design/src/components/Section.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/client/packages/lowcoder-design/src/components/Section.tsx b/client/packages/lowcoder-design/src/components/Section.tsx
index a0c18134f..da58f9588 100644
--- a/client/packages/lowcoder-design/src/components/Section.tsx
+++ b/client/packages/lowcoder-design/src/components/Section.tsx
@@ -142,5 +142,5 @@ export const sectionNames = {
   validation: trans("prop.validation"),
   layout: trans("prop.layout"),
   style: trans("prop.style"),
-  meetings : trans("prop.meetings"),
+  meetings : trans("prop.meetings"), // added by Falk Wolsky
 };

From 538065511d7798a4747a1132347aafc63e165b21 Mon Sep 17 00:00:00 2001
From: FalkWolsky <fw@falkwolsky.com>
Date: Mon, 20 Nov 2023 13:31:18 +0100
Subject: [PATCH 3/3] Broadcast Function including Array Length

---
 .../videoMeetingControllerComp.tsx            | 42 ++++++++++++-------
 1 file changed, 27 insertions(+), 15 deletions(-)

diff --git a/client/packages/lowcoder/src/comps/comps/meetingComp/videoMeetingControllerComp.tsx b/client/packages/lowcoder/src/comps/comps/meetingComp/videoMeetingControllerComp.tsx
index 49a5f2cbb..fe4bcdb16 100644
--- a/client/packages/lowcoder/src/comps/comps/meetingComp/videoMeetingControllerComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/meetingComp/videoMeetingControllerComp.tsx
@@ -378,16 +378,29 @@ let MTComp = (function () {
       useEffect(() => {
         if (rtmChannelResponse) {
           rtmClient.on("MessageFromPeer", function (message, peerId) {
-            setRtmMessages(message.text);
+            setRtmMessages((prevMessages: any[]) => {
+              // Check if the messages array exceeds the maximum limit
+              if (prevMessages.length >= 500) {
+                prevMessages.pop(); // Remove the oldest message
+              }
+              return [...prevMessages, {"peermessage" : JSON.parse(message.text + ""), "from" : peerId}];
+            });
           });
+      
           rtmChannelResponse.on("ChannelMessage", function (message, memberId) {
-            setRtmMessages(message.text);
-            dispatch(
-              changeChildAction("messages", getData(rtmMessages).data, false)
-            );
+            setRtmMessages((prevMessages: any[]) => {
+              // Check if the messages array exceeds the maximum limit
+              if (prevMessages.length >= 500) {
+                prevMessages.pop(); // Remove the oldest message
+              }
+              return [...prevMessages, {"channelmessage" : JSON.parse(message.text + ""), "from" : memberId}];
+            });
+      
+            dispatch(changeChildAction("messages", getData(rtmMessages).data, false));
           });
         }
       }, [rtmChannelResponse]);
+      
 
       useEffect(() => {
         if (client) {
@@ -399,11 +412,11 @@ let MTComp = (function () {
             setUserLeft(user);
           });
           client.on("volume-indicator", (volumeInfos: any) => {
-            if (volumeInfos.length == 0) return;
+            if (volumeInfos.length === 0) return;
             volumeInfos.map((volumeInfo: any) => {
               const speaking = volumeInfo.level >= 30;
               if (
-                volumeInfo.uid == userId &&
+                volumeInfo.uid === userId &&
                 props.localUser.value.speaking != speaking
               ) {
                 setLocalUserSpeaking(speaking);
@@ -671,21 +684,20 @@ MTComp = withMethodExposing(MTComp, [
     },
     execute: async (comp, values) => {
       if (!comp.children.meetingActive.getView().value) return;
-      let otherData =
-        values !== undefined && values[1] !== undefined ? values[1] : "";
-      let toUsers: any =
+      let messagedata =
         values !== undefined && values[0] !== undefined ? values[0] : "";
+      let toUsers: any =
+        values !== undefined && values[1] !== undefined ? values[1] : "";
 
       let message: any = {
         time: Date.now(),
-        from: comp.children.localUser.getView().value,
+        message: messagedata,
       };
-      message["data"] = otherData;
 
       if (toUsers.length > 0 && toUsers[0] !== undefined) {
-        let peers = toUsers?.map((u: any) => u.user);
-        peers.forEach((p: any) => {
-          sendPeerMessageRtm(message, String(p));
+        toUsers.forEach((peer: any) => {
+          message.to = peer;
+          sendPeerMessageRtm(message, String(peer));
         });
       } else {
         sendMessageRtm(message);