From 545eef4edb3ef028e3eed5cbb28b140c3b1ba06f Mon Sep 17 00:00:00 2001
From: Audric Ackermann <audric@loki.network>
Date: Mon, 9 Nov 2020 12:06:26 +1100
Subject: [PATCH] include expireTimer in group invitation message so it does
 not reset it

---
 js/models/conversations.js                                 | 1 +
 .../outgoing/content/data/GroupInvitationMessage.ts        | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/js/models/conversations.js b/js/models/conversations.js
index 56e7d5a7b..1dc4e3a34 100644
--- a/js/models/conversations.js
+++ b/js/models/conversations.js
@@ -1285,6 +1285,7 @@
                 serverName: groupInvitation.name,
                 channelId: groupInvitation.channelId,
                 serverAddress: groupInvitation.address,
+                expireTimer: this.get('expireTimer'),
               }
             );
 
diff --git a/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts b/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts
index 742b85a96..868ab6c92 100644
--- a/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts
+++ b/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts
@@ -7,18 +7,23 @@ interface GroupInvitationMessageParams extends MessageParams {
   serverAddress: string;
   channelId: number;
   serverName: string;
+  // if there is an expire timer set for the conversation, we need to set it.
+  // otherwise, it will disable the expire timer on the receiving side.
+  expireTimer?: number;
 }
 
 export class GroupInvitationMessage extends DataMessage {
   private readonly serverAddress: string;
   private readonly channelId: number;
   private readonly serverName: string;
+  private readonly expireTimer?: number;
 
   constructor(params: GroupInvitationMessageParams) {
     super({ timestamp: params.timestamp, identifier: params.identifier });
     this.serverAddress = params.serverAddress;
     this.channelId = params.channelId;
     this.serverName = params.serverName;
+    this.expireTimer = params.expireTimer;
   }
 
   public ttl(): number {
@@ -32,8 +37,10 @@ export class GroupInvitationMessage extends DataMessage {
       serverName: this.serverName,
     });
 
+
     return new SignalService.DataMessage({
       groupInvitation,
+      expireTimer: this.expireTimer,
     });
   }
 }