@@ -378,16 +378,29 @@ let MTComp = (function () {
378
378
useEffect ( ( ) => {
379
379
if ( rtmChannelResponse ) {
380
380
rtmClient . on ( "MessageFromPeer" , function ( message , peerId ) {
381
- setRtmMessages ( message . text ) ;
381
+ setRtmMessages ( ( prevMessages : any [ ] ) => {
382
+ // Check if the messages array exceeds the maximum limit
383
+ if ( prevMessages . length >= 500 ) {
384
+ prevMessages . pop ( ) ; // Remove the oldest message
385
+ }
386
+ return [ ...prevMessages , { "peermessage" : JSON . parse ( message . text + "" ) , "from" : peerId } ] ;
387
+ } ) ;
382
388
} ) ;
389
+
383
390
rtmChannelResponse . on ( "ChannelMessage" , function ( message , memberId ) {
384
- setRtmMessages ( message . text ) ;
385
- dispatch (
386
- changeChildAction ( "messages" , getData ( rtmMessages ) . data , false )
387
- ) ;
391
+ setRtmMessages ( ( prevMessages : any [ ] ) => {
392
+ // Check if the messages array exceeds the maximum limit
393
+ if ( prevMessages . length >= 500 ) {
394
+ prevMessages . pop ( ) ; // Remove the oldest message
395
+ }
396
+ return [ ...prevMessages , { "channelmessage" : JSON . parse ( message . text + "" ) , "from" : memberId } ] ;
397
+ } ) ;
398
+
399
+ dispatch ( changeChildAction ( "messages" , getData ( rtmMessages ) . data , false ) ) ;
388
400
} ) ;
389
401
}
390
402
} , [ rtmChannelResponse ] ) ;
403
+
391
404
392
405
useEffect ( ( ) => {
393
406
if ( client ) {
@@ -399,11 +412,11 @@ let MTComp = (function () {
399
412
setUserLeft ( user ) ;
400
413
} ) ;
401
414
client . on ( "volume-indicator" , ( volumeInfos : any ) => {
402
- if ( volumeInfos . length == 0 ) return ;
415
+ if ( volumeInfos . length === 0 ) return ;
403
416
volumeInfos . map ( ( volumeInfo : any ) => {
404
417
const speaking = volumeInfo . level >= 30 ;
405
418
if (
406
- volumeInfo . uid == userId &&
419
+ volumeInfo . uid === userId &&
407
420
props . localUser . value . speaking != speaking
408
421
) {
409
422
setLocalUserSpeaking ( speaking ) ;
@@ -671,21 +684,20 @@ MTComp = withMethodExposing(MTComp, [
671
684
} ,
672
685
execute : async ( comp , values ) => {
673
686
if ( ! comp . children . meetingActive . getView ( ) . value ) return ;
674
- let otherData =
675
- values !== undefined && values [ 1 ] !== undefined ? values [ 1 ] : "" ;
676
- let toUsers : any =
687
+ let messagedata =
677
688
values !== undefined && values [ 0 ] !== undefined ? values [ 0 ] : "" ;
689
+ let toUsers : any =
690
+ values !== undefined && values [ 1 ] !== undefined ? values [ 1 ] : "" ;
678
691
679
692
let message : any = {
680
693
time : Date . now ( ) ,
681
- from : comp . children . localUser . getView ( ) . value ,
694
+ message : messagedata ,
682
695
} ;
683
- message [ "data" ] = otherData ;
684
696
685
697
if ( toUsers . length > 0 && toUsers [ 0 ] !== undefined ) {
686
- let peers = toUsers ?. map ( ( u : any ) => u . user ) ;
687
- peers . forEach ( ( p : any ) => {
688
- sendPeerMessageRtm ( message , String ( p ) ) ;
698
+ toUsers . forEach ( ( peer : any ) => {
699
+ message . to = peer ;
700
+ sendPeerMessageRtm ( message , String ( peer ) ) ;
689
701
} ) ;
690
702
} else {
691
703
sendMessageRtm ( message ) ;
0 commit comments