{
* @returns List of message request items
*/
const MessageRequestList = () => {
- const lists = useSelector(getLeftPaneLists);
- const validConversationRequests = lists?.conversationRequests;
+ const conversationRequests = useSelector(getConversationRequests);
return (
- {validConversationRequests.map(conversation => {
+ {conversationRequests.map(conversation => {
return ;
})}
diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts
index cdf3cbd61..274770287 100644
--- a/ts/receiver/queuedJob.ts
+++ b/ts/receiver/queuedJob.ts
@@ -317,11 +317,13 @@ async function handleRegularMessage(
updateReadStatus(message, conversation);
}
- if (type === 'outgoing' && window.lokiFeatureFlags.useMessageRequests) {
+ if (type === 'outgoing') {
await handleSyncedReceipts(message, conversation);
- // assumes sync receipts are always from linked device outgoings
- await conversation.setIsApproved(true);
+ if (window.lokiFeatureFlags.useMessageRequests) {
+ // assumes sync receipts are always from linked device outgoings
+ await conversation.setIsApproved(true);
+ }
}
const conversationActiveAt = conversation.get('active_at');
diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts
index bf1f80567..ed0022ab4 100644
--- a/ts/state/selectors/conversations.ts
+++ b/ts/state/selectors/conversations.ts
@@ -429,7 +429,6 @@ export const _getLeftPaneLists = (
): {
conversations: Array;
contacts: Array;
- conversationRequests: Array;
unreadCount: number;
} => {
const values = Object.values(lookup);
@@ -437,7 +436,6 @@ export const _getLeftPaneLists = (
const conversations: Array = [];
const directConversations: Array = [];
- const conversationRequests: Array = [];
let unreadCount = 0;
for (let conversation of sorted) {
@@ -459,7 +457,7 @@ export const _getLeftPaneLists = (
}
let messageRequestsEnabled = false;
- // TODO: if message requests toggle on and msg requesnt enable
+
if (window?.inboxStore?.getState()) {
messageRequestsEnabled =
window.inboxStore?.getState().userConfig.messageRequests === true &&
@@ -481,12 +479,9 @@ export const _getLeftPaneLists = (
directConversations.push(conversation);
}
- if (messageRequestsEnabled) {
- if (!conversation.isApproved && !conversation.isBlocked) {
- // dont increase unread counter, don't push to convo list.
- conversationRequests.push(conversation);
- continue;
- }
+ if (messageRequestsEnabled && !conversation.isApproved && !conversation.isBlocked) {
+ // dont increase unread counter, don't push to convo list.
+ continue;
}
if (
@@ -504,11 +499,75 @@ export const _getLeftPaneLists = (
return {
conversations,
contacts: directConversations,
- conversationRequests,
unreadCount,
};
};
+export const _getConversationRequests = (
+ lookup: ConversationLookupType,
+ comparator: (left: ReduxConversationType, right: ReduxConversationType) => number,
+ selectedConversation?: string
+): Array => {
+ const values = Object.values(lookup);
+ const sorted = values.sort(comparator);
+
+ const conversationRequests: Array = [];
+
+ for (let conversation of sorted) {
+ if (selectedConversation === conversation.id) {
+ conversation = {
+ ...conversation,
+ isSelected: true,
+ };
+ }
+
+ const isBlocked =
+ BlockedNumberController.isBlocked(conversation.id) ||
+ BlockedNumberController.isGroupBlocked(conversation.id);
+
+ if (isBlocked) {
+ conversation = {
+ ...conversation,
+ isBlocked: true,
+ };
+ }
+
+ let messageRequestsEnabled = false;
+
+ if (window?.inboxStore?.getState()) {
+ messageRequestsEnabled =
+ window.inboxStore?.getState().userConfig.messageRequests === true &&
+ window.lokiFeatureFlags?.useMessageRequests === true;
+ }
+
+ // Add Open Group to list as soon as the name has been set
+ if (conversation.isPublic && (!conversation.name || conversation.name === 'Unknown group')) {
+ continue;
+ }
+
+ // Remove all invalid conversations and conversatons of devices associated
+ // with cancelled attempted links
+ if (!conversation.isPublic && !conversation.activeAt) {
+ continue;
+ }
+
+ if (messageRequestsEnabled && !conversation.isApproved && !conversation.isBlocked) {
+ // dont increase unread counter, don't push to convo list.
+ conversationRequests.push(conversation);
+ continue;
+ }
+ }
+
+ return conversationRequests;
+};
+
+export const getConversationRequests = createSelector(
+ getConversationLookup,
+ getConversationComparator,
+ getSelectedConversationKey,
+ _getConversationRequests
+);
+
export const getLeftPaneLists = createSelector(
getConversationLookup,
getConversationComparator,
diff --git a/ts/window.d.ts b/ts/window.d.ts
index 8ef04b728..389e29876 100644
--- a/ts/window.d.ts
+++ b/ts/window.d.ts
@@ -43,11 +43,6 @@ declare global {
log: any;
lokiFeatureFlags: {
useOnionRequests: boolean;
- useFileOnionRequests: boolean;
- useFileOnionRequestsV2: boolean;
- padOutgoingAttachments: boolean;
- enablePinConversations: boolean;
- useUnsendRequests: boolean;
useMessageRequests: boolean;
useCallMessage: boolean;
};