From eb9a838af1f42bdb4b4d576f4fd5544c5833c596 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 16 Jun 2020 10:00:37 +1000 Subject: [PATCH] remove friends from UI logic --- app/sql.js | 2 +- js/background.js | 4 +-- js/models/conversations.js | 20 ++++++----- js/models/message.d.ts | 1 - js/modules/loki_app_dot_net_api.js | 2 +- js/modules/loki_rss_api.js | 2 +- js/modules/signal.js | 4 --- js/views/app_view.js | 4 +-- js/views/conversation_view.js | 8 ++--- js/views/create_group_dialog_view.js | 18 +++++----- js/views/invite_friends_dialog_view.js | 8 ++--- js/views/message_view.js | 5 --- js/views/moderators_add_dialog_view.js | 8 ++--- libloki/api.js | 16 --------- libtextsecure/outgoing_message.js | 7 +--- libtextsecure/sendmessage.js | 1 - ts/components/ConversationListItem.tsx | 22 ++++-------- ts/components/SearchResults.tsx | 1 - .../conversation/ConversationHeader.tsx | 8 +++-- .../conversation/CreateGroupDialog.tsx | 22 ++++++------ .../conversation/InviteFriendsDialog.tsx | 28 +++++++-------- .../conversation/ModeratorsAddDialog.tsx | 34 +++++++++---------- .../conversation/ModeratorsRemoveDialog.tsx | 4 +-- .../conversation/UpdateGroupMembersDialog.tsx | 24 ++++++------- ts/components/session/ActionsPanel.tsx | 5 +-- .../session/LeftPaneContactSection.tsx | 2 -- .../session/LeftPaneMessageSection.tsx | 3 +- .../session/SessionGroupSettings.tsx | 10 +++--- ts/global.d.ts | 1 - ts/receiver/groups.ts | 4 +-- ts/receiver/receiver.ts | 4 +-- ts/state/selectors/conversations.ts | 5 +-- ts/window/index.ts | 3 -- 33 files changed, 116 insertions(+), 174 deletions(-) diff --git a/app/sql.js b/app/sql.js index fcac55d92..8253cafee 100644 --- a/app/sql.js +++ b/app/sql.js @@ -469,6 +469,7 @@ async function updateToSchemaVersion6(currentVersion, instance) { console.log('updateToSchemaVersion6: starting...'); await instance.run('BEGIN TRANSACTION;'); + // friendRequestStatus is no longer needed. So no need to add the column on new apps // await instance.run( // `ALTER TABLE conversations // ADD COLUMN friendRequestStatus INTEGER;` @@ -2015,7 +2016,6 @@ async function getAllConversations() { return map(rows, row => jsonToObject(row.json)); } - async function getAllConversationIds() { const rows = await db.all( `SELECT id FROM ${CONVERSATIONS_TABLE} ORDER BY id ASC;` diff --git a/js/background.js b/js/background.js index 0cddd1f67..bbb192166 100644 --- a/js/background.js +++ b/js/background.js @@ -1177,9 +1177,9 @@ } }); - Whisper.events.on('inviteFriends', async groupConvo => { + Whisper.events.on('inviteContacts', async groupConvo => { if (appView) { - appView.showInviteFriendsDialog(groupConvo); + appView.showInviteContactsDialog(groupConvo); } }); diff --git a/js/models/conversations.js b/js/models/conversations.js index 683ae0d2b..c71146a00 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -315,9 +315,15 @@ // We don't send typing messages if the setting is disabled or we do not have a session // or we blocked that user const devicePubkey = new libsession.Types.PubKey(this.id); - const hasSession = await libsession.Protocols.SessionProtocol.hasSession(devicePubkey); + const hasSession = await libsession.Protocols.SessionProtocol.hasSession( + devicePubkey + ); - if (!storage.get('typing-indicators-setting') || !hasSession || this.isBlocked()) { + if ( + !storage.get('typing-indicators-setting') || + !hasSession || + this.isBlocked() + ) { return; } @@ -747,7 +753,6 @@ // otherwise, enable the input and set default placeholder this.trigger('disable:input', false); this.trigger('change:placeholder', 'chat'); - }, isSecondaryDevice() { return !!this.get('secondaryStatus'); @@ -1399,10 +1404,7 @@ await serverAPI.setAvatar(url, profileKey); }, - async handleMessageSendResult({ - failoverNumbers, - unidentifiedDeliveries, - }) { + async handleMessageSendResult({ failoverNumbers, unidentifiedDeliveries }) { await Promise.all( (failoverNumbers || []).map(async number => { const conversation = ConversationController.get(number); @@ -2009,7 +2011,9 @@ read = read.filter(item => !item.hasErrors); const devicePubkey = new libsession.Types.PubKey(this.id); - const hasSession = await libsession.Protocols.SessionProtocol.hasSession(devicePubkey); + const hasSession = await libsession.Protocols.SessionProtocol.hasSession( + devicePubkey + ); if (hasSession) { return; } diff --git a/js/models/message.d.ts b/js/models/message.d.ts index dc544c396..97970616d 100644 --- a/js/models/message.d.ts +++ b/js/models/message.d.ts @@ -1,4 +1,3 @@ - type MessageModelType = 'incoming' | 'outgoing'; export type EndSessionType = 'done' | 'ongoing'; diff --git a/js/modules/loki_app_dot_net_api.js b/js/modules/loki_app_dot_net_api.js index 2ba549388..f20537d6a 100644 --- a/js/modules/loki_app_dot_net_api.js +++ b/js/modules/loki_app_dot_net_api.js @@ -1968,7 +1968,7 @@ class LokiPublicChannelAPI { const messageData = { serverId: adnMessage.id, clientVerified: true, - friendRequest: false, + isSessionRequest: false, source: pubKey, sourceDevice: 1, timestamp, diff --git a/js/modules/loki_rss_api.js b/js/modules/loki_rss_api.js index fb6763c97..ff857ff78 100644 --- a/js/modules/loki_rss_api.js +++ b/js/modules/loki_rss_api.js @@ -120,7 +120,7 @@ class LokiRssAPI extends EventEmitter { // if we use group style, we can put the title in the source const messageData = { - friendRequest: false, + isSessionRequest: false, source: this.groupId, sourceDevice: 1, timestamp: pubDate.getTime(), diff --git a/js/modules/signal.js b/js/modules/signal.js index b4dad50a8..38d5c5293 100644 --- a/js/modules/signal.js +++ b/js/modules/signal.js @@ -39,9 +39,6 @@ const { EmbeddedContact, } = require('../../ts/components/conversation/EmbeddedContact'); const { Emojify } = require('../../ts/components/conversation/Emojify'); -const { - FriendRequest, -} = require('../../ts/components/conversation/FriendRequest'); const { GroupNotification, } = require('../../ts/components/conversation/GroupNotification'); @@ -286,7 +283,6 @@ exports.setup = (options = {}) => { SettingsView, EmbeddedContact, Emojify, - FriendRequest, GroupNotification, Lightbox, LightboxGallery, diff --git a/js/views/app_view.js b/js/views/app_view.js index 47c8f8516..4f9110408 100644 --- a/js/views/app_view.js +++ b/js/views/app_view.js @@ -259,8 +259,8 @@ resolve: () => ConversationController.deleteContact(groupConvo.id), }); }, - showInviteFriendsDialog(groupConvo) { - const dialog = new Whisper.InviteFriendsDialogView(groupConvo); + showInviteContactsDialog(groupConvo) { + const dialog = new Whisper.InviteContactsDialogView(groupConvo); this.el.append(dialog.el); }, showAddModeratorsDialog(groupConvo) { diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index 7f5875d3d..a7010412c 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -241,8 +241,8 @@ window.Whisper.events.trigger('leaveGroup', this.model); }, - onInviteFriends: () => { - window.Whisper.events.trigger('inviteFriends', this.model); + onInviteContacts: () => { + window.Whisper.events.trigger('inviteContacts', this.model); }, onUpdateGroupName: () => { @@ -312,8 +312,8 @@ window.Whisper.events.trigger('leaveGroup', this.model); }, - onInviteFriends: () => { - window.Whisper.events.trigger('inviteFriends', this.model); + onInviteContacts: () => { + window.Whisper.events.trigger('inviteContacts', this.model); }, onShowLightBox: (lightBoxOptions = {}) => { this.showChannelLightbox(lightBoxOptions); diff --git a/js/views/create_group_dialog_view.js b/js/views/create_group_dialog_view.js index 5d702a758..e15d2f665 100644 --- a/js/views/create_group_dialog_view.js +++ b/js/views/create_group_dialog_view.js @@ -16,9 +16,7 @@ const convos = window.getConversations().models; - let allMembers = convos.filter( - d => !!d && d.isPrivate() && !d.isMe() - ); + let allMembers = convos.filter(d => !!d && d.isPrivate() && !d.isMe()); allMembers = _.uniq(allMembers, true, d => d.id); this.membersToShow = allMembers; @@ -34,7 +32,7 @@ titleText: this.titleText, okText: this.okText, cancelText: this.cancelText, - friendList: this.membersToShow, + contactList: this.membersToShow, onClose: this.close, }, }); @@ -130,8 +128,8 @@ this.isAdmin = groupConvo.isModerator( window.storage.get('primaryDevicePubKey') ); - // zero out friendList for now - this.friendsAndMembers = []; + // zero out contactList for now + this.contactsAndMembers = []; this.existingMembers = []; } else { this.titleText = i18n('updateGroupDialogTitle'); @@ -140,11 +138,11 @@ this.existingMembers = groupConvo.get('members') || []; // Show a contact if they are our friend or if they are a member - this.friendsAndMembers = convos.filter( + this.contactsAndMembers = convos.filter( d => this.existingMembers.includes(d.id) && d.isPrivate() && !d.isMe() ); - this.friendsAndMembers = _.uniq( - this.friendsAndMembers, + this.contactsAndMembers = _.uniq( + this.contactsAndMembers, true, d => d.id ); @@ -168,7 +166,7 @@ cancelText: i18n('cancel'), isPublic: this.isPublic, existingMembers: this.existingMembers, - friendList: this.friendsAndMembers, + contactList: this.contactsAndMembers, isAdmin: this.isAdmin, onClose: this.close, onSubmit: this.onSubmit, diff --git a/js/views/invite_friends_dialog_view.js b/js/views/invite_friends_dialog_view.js index cbbd4ae9b..f29a0febd 100644 --- a/js/views/invite_friends_dialog_view.js +++ b/js/views/invite_friends_dialog_view.js @@ -6,7 +6,7 @@ window.Whisper = window.Whisper || {}; - Whisper.InviteFriendsDialogView = Whisper.View.extend({ + Whisper.InviteContactsDialogView = Whisper.View.extend({ className: 'loki-dialog modal', initialize(convo) { this.close = this.close.bind(this); @@ -14,9 +14,7 @@ const convos = window.getConversations().models; - this.contacts = convos.filter( - d => !!d && d.isPrivate() && !d.isMe() - ); + this.contacts = convos.filter(d => !!d && d.isPrivate() && !d.isMe()); if (!convo.isPublic()) { const members = convo.get('members') || []; this.contacts = this.contacts.filter(d => !members.includes(d.id)); @@ -36,7 +34,7 @@ className: 'invite-friends-dialog', Component: window.Signal.Components.InviteFriendsDialog, props: { - friendList: this.contacts, + contactList: this.contacts, onSubmit: this.submit, onClose: this.close, chatName: this.chatName, diff --git a/js/views/message_view.js b/js/views/message_view.js index 1f82fcdb3..83e488348 100644 --- a/js/views/message_view.js +++ b/js/views/message_view.js @@ -74,11 +74,6 @@ Component: Components.ResetSessionNotification, props: this.model.getPropsForResetSessionNotification(), }; - } else if (this.model.propsForFriendRequest) { - return { - Component: Components.FriendRequest, - props: this.model.propsForFriendRequest, - }; } else if (this.model.propsForGroupInvitation) { return { Component: Components.GroupInvitation, diff --git a/js/views/moderators_add_dialog_view.js b/js/views/moderators_add_dialog_view.js index 095f441db..2d2773957 100644 --- a/js/views/moderators_add_dialog_view.js +++ b/js/views/moderators_add_dialog_view.js @@ -23,11 +23,7 @@ // private friends (not you) that aren't already moderators const contacts = convos.filter( - d => - !!d && - d.isPrivate() && - !d.isMe() && - !modPubKeys.includes(d.id) + d => !!d && d.isPrivate() && !d.isMe() && !modPubKeys.includes(d.id) ); this.contacts = contacts; @@ -40,7 +36,7 @@ className: 'add-moderators-dialog', Component: window.Signal.Components.AddModeratorsDialog, props: { - friendList: this.contacts, + contactList: this.contacts, chatName: this.chatName, onSubmit: this.onSubmit, onClose: this.close, diff --git a/libloki/api.js b/libloki/api.js index 5996cb717..a5a88a643 100644 --- a/libloki/api.js +++ b/libloki/api.js @@ -8,12 +8,10 @@ const DebugFlagsEnum = { GROUP_SYNC_MESSAGES: 1, CONTACT_SYNC_MESSAGES: 2, - AUTO_FRIEND_REQUEST_MESSAGES: 4, SESSION_REQUEST_MESSAGES: 8, SESSION_MESSAGE_SENDING: 16, SESSION_BACKGROUND_MESSAGE: 32, GROUP_REQUEST_INFO: 64, - NORMAL_FRIEND_REQUEST_MESSAGES: 128, // If you add any new flag, be sure it is bitwise safe! (unique and 2 multiples) ALL: 65535, }; @@ -50,18 +48,6 @@ } } - function logAutoFriendRequest(...args) { - if (debugFlags & DebugFlagsEnum.AUTO_FRIEND_REQUEST_MESSAGES) { - debugLogFn(...args); - } - } - - function logNormalFriendRequest(...args) { - if (debugFlags & DebugFlagsEnum.NORMAL_FRIEND_REQUEST_MESSAGES) { - debugLogFn(...args); - } - } - function logSessionRequest(...args) { if (debugFlags & DebugFlagsEnum.SESSION_REQUEST_MESSAGES) { debugLogFn(...args); @@ -304,12 +290,10 @@ const debug = { logContactSync, logGroupSync, - logAutoFriendRequest, logSessionRequest, logSessionMessageSending, logBackgroundMessage, logGroupRequestInfo, - logNormalFriendRequest, }; window.libloki.api = { diff --git a/libtextsecure/outgoing_message.js b/libtextsecure/outgoing_message.js index 1e3fb8bf4..a38df2a10 100644 --- a/libtextsecure/outgoing_message.js +++ b/libtextsecure/outgoing_message.js @@ -106,9 +106,6 @@ function getStaleDeviceIdsForNumber(number) { } const DebugMessageType = { - AUTO_FR_REQUEST: 'auto-friend-request', - AUTO_FR_ACCEPT: 'auto-friend-accept', - SESSION_REQUEST: 'session-request', SESSION_REQUEST_ACCEPT: 'session-request-accepted', @@ -357,8 +354,6 @@ OutgoingMessage.prototype = { const updatedDevices = await getStaleDeviceIdsForNumber(devicePubKey); const keysFound = await this.getKeysForNumber(devicePubKey, updatedDevices); - - // Check if we need to attach the preKeys const enableFallBackEncryption = !keysFound || this.messageType === 'session-request'; @@ -580,7 +575,7 @@ OutgoingMessage.prototype = { if (!outgoingObject) { return; } - const { pubKey: destination, ttl, isSessionRequest } = outgoingObject; + const { pubKey: destination, ttl } = outgoingObject; try { const socketMessage = wrapInWebsocketMessage( diff --git a/libtextsecure/sendmessage.js b/libtextsecure/sendmessage.js index 8e193a31d..6d67ee2ad 100644 --- a/libtextsecure/sendmessage.js +++ b/libtextsecure/sendmessage.js @@ -1177,7 +1177,6 @@ MessageSender.prototype = { throw error; }; - // The actual deletion of the session now happens later // as we need to ensure the other contact has successfully // switch to a new session first. diff --git a/ts/components/ConversationListItem.tsx b/ts/components/ConversationListItem.tsx index 3dcd827e2..6abcbe9d0 100644 --- a/ts/components/ConversationListItem.tsx +++ b/ts/components/ConversationListItem.tsx @@ -117,12 +117,7 @@ export class ConversationListItem extends React.PureComponent { } public renderHeader() { - const { - unreadCount, - i18n, - isMe, - lastUpdated, - } = this.props; + const { unreadCount, i18n, isMe, lastUpdated } = this.props; return (
@@ -137,7 +132,7 @@ export class ConversationListItem extends React.PureComponent { {isMe ? i18n('noteToSelf') : this.renderUser()}
{this.renderUnread()} - {( + {
{ : null )} > - {( + { - )} + }
- )} + } ); } @@ -214,12 +209,7 @@ export class ConversationListItem extends React.PureComponent { } public renderMessage() { - const { - lastMessage, - isTyping, - unreadCount, - i18n, - } = this.props; + const { lastMessage, isTyping, unreadCount, i18n } = this.props; if (!lastMessage && !isTyping) { return null; diff --git a/ts/components/SearchResults.tsx b/ts/components/SearchResults.tsx index 1e12e1b98..3c9bb1a35 100644 --- a/ts/components/SearchResults.tsx +++ b/ts/components/SearchResults.tsx @@ -12,7 +12,6 @@ import { LocalizerType } from '../types/Util'; export type PropsData = { contacts: Array; - friends: Array; conversations: Array; hideMessagesHeader: boolean; messages: Array; diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx index 31e9e6420..caf1a77f5 100644 --- a/ts/components/conversation/ConversationHeader.tsx +++ b/ts/components/conversation/ConversationHeader.tsx @@ -89,7 +89,7 @@ interface Props { onLeaveGroup: () => void; onAddModerators: () => void; onRemoveModerators: () => void; - onInviteFriends: () => void; + onInviteContacts: () => void; onAvatarClick?: (userPubKey: string) => void; onUpdateGroupName: () => void; @@ -300,7 +300,7 @@ export class ConversationHeader extends React.Component { onLeaveGroup, onAddModerators, onRemoveModerators, - onInviteFriends, + onInviteContacts, onUpdateGroupName, } = this.props; @@ -333,7 +333,9 @@ export class ConversationHeader extends React.Component { ) : null} {/* TODO: add delete group */} {isGroup && isPublic ? ( - {i18n('inviteFriends')} + + {i18n('inviteContacts')} + ) : null} {!isMe && isClosable && !isPrivateGroup ? ( !isPublic ? ( diff --git a/ts/components/conversation/CreateGroupDialog.tsx b/ts/components/conversation/CreateGroupDialog.tsx index 3349f599a..de5b39931 100644 --- a/ts/components/conversation/CreateGroupDialog.tsx +++ b/ts/components/conversation/CreateGroupDialog.tsx @@ -17,13 +17,13 @@ interface Props { titleText: string; okText: string; cancelText: string; - friendList: Array; + contactList: Array; i18n: any; onClose: any; } interface State { - friendList: Array; + contactList: Array; groupName: string; errorDisplayed: boolean; errorMessage: string; @@ -39,9 +39,9 @@ export class CreateGroupDialog extends React.Component { this.closeDialog = this.closeDialog.bind(this); this.onGroupNameChanged = this.onGroupNameChanged.bind(this); - let friends = this.props.friendList; + let contacts = this.props.contactList; - friends = friends.map(d => { + contacts = contacts.map(d => { const lokiProfile = d.getLokiProfile(); const name = lokiProfile ? lokiProfile.displayName : 'Anonymous'; @@ -57,7 +57,7 @@ export class CreateGroupDialog extends React.Component { }); this.state = { - friendList: friends, + contactList: contacts, groupName: '', errorDisplayed: false, // if empty, the initial height is 0, which is not desirable @@ -68,7 +68,7 @@ export class CreateGroupDialog extends React.Component { } public onClickOK() { - const members = this.state.friendList + const members = this.state.contactList .filter(d => d.checkmarked) .map(d => d.id); @@ -118,7 +118,7 @@ export class CreateGroupDialog extends React.Component { />
{ private getMemberCount() { // Add 1 to include yourself - return this.state.friendList.filter(d => d.checkmarked).length + 1; + return this.state.contactList.filter(d => d.checkmarked).length + 1; } private closeDialog() { @@ -192,7 +192,7 @@ export class CreateGroupDialog extends React.Component { } private onMemberClicked(selected: any) { - const updatedFriends = this.state.friendList.map(member => { + const updatedContacts = this.state.contactList.map(member => { if (member.id === selected.id) { return { ...member, checkmarked: !member.checkmarked }; } else { @@ -201,7 +201,7 @@ export class CreateGroupDialog extends React.Component { }); if ( - updatedFriends.filter(d => d.checkmarked).length > + updatedContacts.filter(d => d.checkmarked).length > window.CONSTANTS.SMALL_GROUP_SIZE_LIMIT - 1 ) { const msg = `${this.props.i18n('maxGroupMembersError')} ${ @@ -215,7 +215,7 @@ export class CreateGroupDialog extends React.Component { this.setState(state => { return { ...state, - friendList: updatedFriends, + contactList: updatedContacts, }; }); } diff --git a/ts/components/conversation/InviteFriendsDialog.tsx b/ts/components/conversation/InviteFriendsDialog.tsx index f96ab3c60..0066a5813 100644 --- a/ts/components/conversation/InviteFriendsDialog.tsx +++ b/ts/components/conversation/InviteFriendsDialog.tsx @@ -8,14 +8,14 @@ import { } from '../session/SessionMemberListItem'; interface Props { - friendList: Array; + contactList: Array; chatName: string; onSubmit: any; onClose: any; } interface State { - friendList: Array; + contactList: Array; } export class InviteFriendsDialog extends React.Component { @@ -27,9 +27,9 @@ export class InviteFriendsDialog extends React.Component { this.onClickOK = this.onClickOK.bind(this); this.onKeyUp = this.onKeyUp.bind(this); - let friends = this.props.friendList; + let contacts = this.props.contactList; - friends = friends.map(d => { + contacts = contacts.map(d => { const lokiProfile = d.getLokiProfile(); const name = lokiProfile ? lokiProfile.displayName : 'Anonymous'; @@ -49,7 +49,7 @@ export class InviteFriendsDialog extends React.Component { }); this.state = { - friendList: friends, + contactList: contacts, }; window.addEventListener('keyup', this.onKeyUp); @@ -60,7 +60,7 @@ export class InviteFriendsDialog extends React.Component { const cancelText = window.i18n('cancel'); const okText = window.i18n('ok'); - const hasFriends = this.state.friendList.length !== 0; + const hasContacts = this.state.contactList.length !== 0; return ( {
{this.renderMemberList()}
- {hasFriends ? null : ( + {hasContacts ? null : ( <>

{window.i18n('noFriendsToAdd')}

@@ -85,7 +85,7 @@ export class InviteFriendsDialog extends React.Component {
@@ -94,19 +94,19 @@ export class InviteFriendsDialog extends React.Component { } private onClickOK() { - const selectedFriends = this.state.friendList + const selectedContacts = this.state.contactList .filter(d => d.checkmarked) .map(d => d.id); - if (selectedFriends.length > 0) { - this.props.onSubmit(selectedFriends); + if (selectedContacts.length > 0) { + this.props.onSubmit(selectedContacts); } this.closeDialog(); } private renderMemberList() { - const members = this.state.friendList; + const members = this.state.contactList; return members.map((member: ContactType, index: number) => ( { } private onMemberClicked(clickedMember: ContactType) { - const updatedFriends = this.state.friendList.map(member => { + const updatedContacts = this.state.contactList.map(member => { if (member.id === clickedMember.id) { return { ...member, checkmarked: !member.checkmarked }; } else { @@ -149,7 +149,7 @@ export class InviteFriendsDialog extends React.Component { this.setState(state => { return { ...state, - friendList: updatedFriends, + contactList: updatedContacts, }; }); } diff --git a/ts/components/conversation/ModeratorsAddDialog.tsx b/ts/components/conversation/ModeratorsAddDialog.tsx index f55e6680c..61c603fcf 100644 --- a/ts/components/conversation/ModeratorsAddDialog.tsx +++ b/ts/components/conversation/ModeratorsAddDialog.tsx @@ -3,7 +3,7 @@ import { Contact, MemberList } from './MemberList'; import { cleanSearchTerm } from '../../util/cleanSearchTerm'; interface Props { - friendList: Array; + contactList: Array; chatName: string; onSubmit: any; onClose: any; @@ -16,7 +16,7 @@ declare global { } interface State { - friendList: Array; + contactList: Array; inputBoxValue: string; } @@ -37,8 +37,8 @@ export class AddModeratorsDialog extends React.Component { this.onKeyUp = this.onKeyUp.bind(this); this.inputRef = React.createRef(); - let friends = this.props.friendList; - friends = friends.map(d => { + let contacts = this.props.contactList; + contacts = contacts.map(d => { const lokiProfile = d.getLokiProfile(); const name = lokiProfile ? lokiProfile.displayName : 'Anonymous'; @@ -57,7 +57,7 @@ export class AddModeratorsDialog extends React.Component { }; }); this.state = { - friendList: friends, + contactList: contacts, inputBoxValue: '', }; @@ -82,15 +82,15 @@ export class AddModeratorsDialog extends React.Component { public add() { // if we have valid data if (this.state.inputBoxValue.length > 64) { - const weHave = this.state.friendList.some( + const weHave = this.state.contactList.some( user => user.authorPhoneNumber === this.state.inputBoxValue ); if (!weHave) { // lookup to verify it's registered? // convert pubKey into local object... - const friends = this.state.friendList; - friends.push({ + const contacts = this.state.contactList; + contacts.push({ id: this.state.inputBoxValue, authorPhoneNumber: this.state.inputBoxValue, authorProfileName: this.state.inputBoxValue, @@ -104,7 +104,7 @@ export class AddModeratorsDialog extends React.Component { this.setState(state => { return { ...state, - friendList: friends, + contactList: contacts, }; }); } @@ -125,7 +125,7 @@ export class AddModeratorsDialog extends React.Component { public render() { const i18n = window.i18n; - const hasFriends = this.state.friendList.length !== 0; + const hasContacts = this.state.contactList.length !== 0; return (
@@ -150,13 +150,13 @@ export class AddModeratorsDialog extends React.Component {

From friends:

- {hasFriends ? null : ( + {hasContacts ? null : (

{i18n('noFriendsToAdd')}

)}
@@ -174,11 +174,11 @@ export class AddModeratorsDialog extends React.Component { private onClickOK() { this.add(); // process inputBox - const selectedFriends = this.state.friendList + const selectedContacts = this.state.contactList .filter(d => d.checkmarked) .map(d => d.id); - if (selectedFriends.length > 0) { - this.props.onSubmit(selectedFriends); + if (selectedContacts.length > 0) { + this.props.onSubmit(selectedContacts); } this.closeDialog(); @@ -204,7 +204,7 @@ export class AddModeratorsDialog extends React.Component { } private onMemberClicked(selected: any) { - const updatedFriends = this.state.friendList.map(member => { + const updatedContacts = this.state.contactList.map(member => { if (member.id === selected.id) { return { ...member, checkmarked: !member.checkmarked }; } else { @@ -215,7 +215,7 @@ export class AddModeratorsDialog extends React.Component { this.setState(state => { return { ...state, - friendList: updatedFriends, + contactList: updatedContacts, }; }); } diff --git a/ts/components/conversation/ModeratorsRemoveDialog.tsx b/ts/components/conversation/ModeratorsRemoveDialog.tsx index c4a71121f..5ec36b366 100644 --- a/ts/components/conversation/ModeratorsRemoveDialog.tsx +++ b/ts/components/conversation/ModeratorsRemoveDialog.tsx @@ -123,7 +123,7 @@ export class RemoveModeratorsDialog extends React.Component { } private onModClicked(selected: any) { - const updatedFriends = this.state.modList.map(member => { + const updatedContacts = this.state.modList.map(member => { if (member.id === selected.id) { return { ...member, checkmarked: !member.checkmarked }; } else { @@ -134,7 +134,7 @@ export class RemoveModeratorsDialog extends React.Component { this.setState(state => { return { ...state, - modList: updatedFriends, + modList: updatedContacts, }; }); } diff --git a/ts/components/conversation/UpdateGroupMembersDialog.tsx b/ts/components/conversation/UpdateGroupMembersDialog.tsx index 76552a7bc..ca9e05e5e 100644 --- a/ts/components/conversation/UpdateGroupMembersDialog.tsx +++ b/ts/components/conversation/UpdateGroupMembersDialog.tsx @@ -14,8 +14,8 @@ interface Props { okText: string; isPublic: boolean; cancelText: string; - // friends not in the group - friendList: Array; + // contacts not in the group + contactList: Array; isAdmin: boolean; existingMembers: Array; i18n: any; @@ -24,7 +24,7 @@ interface Props { } interface State { - friendList: Array; + contactList: Array; errorDisplayed: boolean; errorMessage: string; } @@ -38,8 +38,8 @@ export class UpdateGroupMembersDialog extends React.Component { this.onKeyUp = this.onKeyUp.bind(this); this.closeDialog = this.closeDialog.bind(this); - let friends = this.props.friendList; - friends = friends.map(d => { + let contacts = this.props.contactList; + contacts = contacts.map(d => { const lokiProfile = d.getLokiProfile(); const name = lokiProfile ? lokiProfile.displayName : 'Anonymous'; @@ -58,7 +58,7 @@ export class UpdateGroupMembersDialog extends React.Component { }); this.state = { - friendList: friends, + contactList: contacts, errorDisplayed: false, errorMessage: 'placeholder', }; @@ -67,7 +67,7 @@ export class UpdateGroupMembersDialog extends React.Component { } public onClickOK() { - const members = this.getWouldBeMembers(this.state.friendList).map( + const members = this.getWouldBeMembers(this.state.contactList).map( d => d.id ); @@ -77,7 +77,7 @@ export class UpdateGroupMembersDialog extends React.Component { } public render() { - const checkMarkedCount = this.getMemberCount(this.state.friendList); + const checkMarkedCount = this.getMemberCount(this.state.contactList); const okText = this.props.okText; const cancelText = this.props.cancelText; @@ -94,7 +94,7 @@ export class UpdateGroupMembersDialog extends React.Component { // private group titleText = this.props.titleText; noFriendsClasses = - this.state.friendList.length === 0 + this.state.contactList.length === 0 ? 'no-friends' : classNames('no-friends', 'hidden'); } @@ -145,7 +145,7 @@ export class UpdateGroupMembersDialog extends React.Component { } private renderMemberList() { - const members = this.state.friendList; + const members = this.state.contactList; return members.map((member: ContactType, index: number) => ( { return; } - const updatedFriends = this.state.friendList.map(member => { + const updatedContacts = this.state.contactList.map(member => { if (member.id === selected.id) { return { ...member, checkmarked: !member.checkmarked }; } else { @@ -229,7 +229,7 @@ export class UpdateGroupMembersDialog extends React.Component { this.setState(state => { return { ...state, - friendList: updatedFriends, + contactList: updatedContacts, }; }); } diff --git a/ts/components/session/ActionsPanel.tsx b/ts/components/session/ActionsPanel.tsx index d2d28fe62..296cd02b4 100644 --- a/ts/components/session/ActionsPanel.tsx +++ b/ts/components/session/ActionsPanel.tsx @@ -126,10 +126,7 @@ export class ActionsPanel extends React.Component { } public render(): JSX.Element { - const { - selectedSection, - unreadMessageCount, - } = this.props; + const { selectedSection, unreadMessageCount } = this.props; const isProfilePageSelected = selectedSection === SectionType.Profile; const isMessagePageSelected = selectedSection === SectionType.Message; diff --git a/ts/components/session/LeftPaneContactSection.tsx b/ts/components/session/LeftPaneContactSection.tsx index 97e674cdf..c86537b93 100644 --- a/ts/components/session/LeftPaneContactSection.tsx +++ b/ts/components/session/LeftPaneContactSection.tsx @@ -107,7 +107,6 @@ export class LeftPaneContactSection extends React.Component { ); } - public renderRow = ({ index, key, @@ -189,7 +188,6 @@ export class LeftPaneContactSection extends React.Component { })); } - private handleOnAddContact() { const sessionID = this.state.addContactRecipientID.trim(); const error = validateNumber(sessionID, window.i18n); diff --git a/ts/components/session/LeftPaneMessageSection.tsx b/ts/components/session/LeftPaneMessageSection.tsx index b05b7c6d7..5bf50a38f 100644 --- a/ts/components/session/LeftPaneMessageSection.tsx +++ b/ts/components/session/LeftPaneMessageSection.tsx @@ -118,8 +118,7 @@ export class LeftPaneMessageSection extends React.Component { let conversationList = conversations; if (conversationList !== undefined) { conversationList = conversationList.filter( - conversation => - !conversation.isSecondary + conversation => !conversation.isSecondary ); } diff --git a/ts/components/session/SessionGroupSettings.tsx b/ts/components/session/SessionGroupSettings.tsx index 1aa4bd515..5a1c13c8d 100644 --- a/ts/components/session/SessionGroupSettings.tsx +++ b/ts/components/session/SessionGroupSettings.tsx @@ -24,7 +24,7 @@ interface Props { isKickedFromGroup: boolean; onGoBack: () => void; - onInviteFriends: () => void; + onInviteContacts: () => void; onLeaveGroup: () => void; onUpdateGroupName: () => void; onUpdateGroupMembers: () => void; @@ -308,14 +308,14 @@ export class SessionGroupSettings extends React.Component { const { id, onGoBack, - onInviteFriends, + onInviteContacts, avatarPath, isAdmin, isPublic, isKickedFromGroup, } = this.props; - const showInviteFriends = (isPublic || isAdmin) && !isKickedFromGroup; + const showInviteContacts = (isPublic || isAdmin) && !isKickedFromGroup; return (
@@ -332,11 +332,11 @@ export class SessionGroupSettings extends React.Component { size={80} />
- {showInviteFriends && ( + {showInviteContacts && ( )}
diff --git a/ts/global.d.ts b/ts/global.d.ts index c055d9e7c..91d454566 100644 --- a/ts/global.d.ts +++ b/ts/global.d.ts @@ -8,7 +8,6 @@ interface Window { clearLocalData: any; getAccountManager: any; getConversations: any; - getFriendsFromContacts: any; mnemonic: any; clipboard: any; attemptConnection: any; diff --git a/ts/receiver/groups.ts b/ts/receiver/groups.ts index e1c8b7a5a..620cc68f9 100644 --- a/ts/receiver/groups.ts +++ b/ts/receiver/groups.ts @@ -47,8 +47,8 @@ export async function preprocessGroupMessage( // NOTE: we use group admins to tell if this is // the creation of the group (initial update) const groupAdminsSet = - conversation.get('groupAdmins') && - conversation.get('groupAdmins').length > 0; + conversation.get('groupAdmins') && + conversation.get('groupAdmins').length > 0; const newGroup = !groupAdminsSet; const knownMembers = conversation.get('members'); diff --git a/ts/receiver/receiver.ts b/ts/receiver/receiver.ts index 0b248d5fc..9e2ba86cf 100644 --- a/ts/receiver/receiver.ts +++ b/ts/receiver/receiver.ts @@ -66,7 +66,6 @@ function initIncomingMessage(data: MessageCreationData): MessageModel { isRss, // + }; - return new window.Whisper.Message(messageData); } @@ -217,7 +216,6 @@ async function isMessageDuplicate({ } } - function getEnvelopeId(envelope: EnvelopePlus) { if (envelope.source) { return `${envelope.source}.${envelope.sourceDevice} ${toNumber( @@ -595,6 +593,8 @@ export async function handleMessageEvent(event: any): Promise { const isDuplicate = await isMessageDuplicate(data); + const testNb: number = 3.1545; + if (isDuplicate) { // RSS expects duplicates, so squelch log if (!source.match(/^rss:/)) { diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index d0f8ba3c2..de93f3d84 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -124,10 +124,7 @@ export const _getLeftPaneLists = ( allContacts.push(conversation); } - if ( - unreadCount < 9 && - conversation.unreadCount > 0 - ) { + if (unreadCount < 9 && conversation.unreadCount > 0) { unreadCount += conversation.unreadCount; } diff --git a/ts/window/index.ts b/ts/window/index.ts index 4688cde7b..cc5464239 100644 --- a/ts/window/index.ts +++ b/ts/window/index.ts @@ -25,7 +25,6 @@ interface WindowInterface extends Window { clearLocalData: any; getAccountManager: any; getConversations: any; - getFriendsFromContacts: any; mnemonic: any; clipboard: any; attemptConnection: any; @@ -49,7 +48,6 @@ interface WindowInterface extends Window { Session: any; log: any; i18n: LocalizerType; - friends: any; generateID: any; storage: any; pushToast: any; @@ -106,7 +104,6 @@ export const lokiFeatureFlags = window.lokiFeatureFlags; // Getters export const getAccountManager = window.getAccountManager; export const getConversations = window.getConversations; -export const getFriendsFromContacts = window.getFriendsFromContacts; export const getSettingValue = window.getSettingValue; // Setters