diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 8dea81532..4d8a837b5 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index b8f2fddaa..9ad74f832 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 095872910..0b9c9db1a 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1107,7 +1107,7 @@ "Placeholder text in the message entry field when it is disabled while we are waiting for a friend request approval" }, "sendMessageFriendRequest": { - "message": "Hi there! This is ...!", + "message": "Send your first message", "description": "Placeholder text in the message entry field when it is the first message sent to that contact" }, @@ -1440,7 +1440,8 @@ "description": "Header for notification settings" }, "readReceiptSettingDescription": { - "message": "Enable the sending and receiving of read receipts", + "message": + "See and share when messages have been read (enables read receipts in all sessions).", "description": "Description of the read receipts setting" }, "readReceiptSettingTitle": { @@ -1993,7 +1994,7 @@ "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'.", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { @@ -2164,6 +2165,9 @@ "description": "Title shown to the user to confirm they want to leave the group" }, + "noContactsForGroup": { + "message": "You don't have any contacts to start a group with." + }, "copiedPublicKey": { "message": "Session ID copied", "description": "A toast message telling the user that the key was copied" @@ -2610,6 +2614,9 @@ "message": "Complete Sign Up" }, "compose": { + "message": "Compose" + }, + "newSession": { "message": "New Session" }, "searchForAKeyPhrase": { @@ -2655,11 +2662,11 @@ "decline": { "message": "Decline" }, - "generalSettingsTitle": { - "message": "General" + "appearanceSettingsTitle": { + "message": "Appearance" }, - "generalSettingsDescription": { - "message": "General settings and configuration" + "appearanceSettingsDescription": { + "message": "Appearance and interface options" }, "accountSettingsTitle": { "message": "Account" @@ -2683,13 +2690,13 @@ "message": "Notifications" }, "notificationSettingsDescription": { - "message": "Choose what you're notified about" + "message": "Configure notification options" }, "devicesSettingsTitle": { "message": "Devices" }, "devicesSettingsDescription": { - "message": "Manage linked devices" + "message": "Manage your linked devices" }, "mnemonicEmpty": { "message": "Seed is mandatory" @@ -2718,11 +2725,33 @@ "addChannel": { "message": "Join Open Group" }, + "joinOpenGroup": { + "message": "Join Open Group" + }, + "newClosedGroup": { + "message": "New Closed Group" + }, + "createClosedGroup": { + "message": "Create Closed Group" + }, + "createClosedGroupDescription": { + "message": + "Closed groups are end-to-end encrypted group chats for up to 10 members. They provide the same privacy protections as one-on-one sessions." + }, + "createClosedGroupNamePrompt": { + "message": "Group Name" + }, + "createClosedGroupPlaceholder": { + "message": "Enter a group name" + }, + "closedGroupCreatedToastTitle": { + "message": "Group created successfully" + }, "enterChannelURL": { "message": "Enter Open Group URL" }, "channelUrlPlaceholder": { - "message": "https://chat.lokinet.org" + "message": "chat.getsession.org" }, "addChannelDescription": { "message": "Enter an open group URL." diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 72db1df40..fddcf20ea 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -1368,7 +1368,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 2f36156c4..4cdb26f48 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index df961d479..4205980df 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index f4e068d2e..3b3af59cf 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 5faf65d0a..968abaec2 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/mk/messages.json b/_locales/mk/messages.json index 2fa0c67b3..3987e9b00 100644 --- a/_locales/mk/messages.json +++ b/_locales/mk/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 4ad55771a..e58b1496e 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 03612e3af..5bc5dae14 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 75dca695f..496213f33 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -1504,7 +1504,7 @@ "description": "Shown in the conversation history when someone updates the group" }, "titleIsNow": { - "message": "Title is now '$name$'", + "message": "Group name has been set to '$name$'", "description": "Shown in the conversation history when someone changes the title of the group", "placeholders": { "name": { diff --git a/app/sql.js b/app/sql.js index f84ac2373..e9cb2390c 100644 --- a/app/sql.js +++ b/app/sql.js @@ -902,7 +902,7 @@ async function updateToLokiSchemaVersion1(currentVersion, instance) { rssFeed: 'https://loki.network/feed/', closable: true, name: 'Loki.network News', - profileAvatar: 'images/loki/session_icon.png', + profileAvatar: 'images/session/session_chat_icon.png', }; const updatesRssFeedData = { @@ -911,7 +911,7 @@ async function updateToLokiSchemaVersion1(currentVersion, instance) { rssFeed: 'https://loki.network/category/messenger-updates/feed/', closable: false, name: 'Messenger updates', - profileAvatar: 'images/loki/session_icon.png', + profileAvatar: 'images/session/session_chat_icon.png', }; const autoJoinLokiChats = false; diff --git a/config/default.json b/config/default.json index b21c715ae..e0b61dac0 100644 --- a/config/default.json +++ b/config/default.json @@ -35,6 +35,6 @@ "-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIJAIm6LatK5PNiMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYD\nVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5j\naXNjbzEdMBsGA1UECgwUT3BlbiBXaGlzcGVyIFN5c3RlbXMxHTAbBgNVBAsMFE9w\nZW4gV2hpc3BlciBTeXN0ZW1zMRMwEQYDVQQDDApUZXh0U2VjdXJlMB4XDTEzMDMy\nNTIyMTgzNVoXDTIzMDMyMzIyMTgzNVowgY0xCzAJBgNVBAYTAlVTMRMwEQYDVQQI\nDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMR0wGwYDVQQKDBRP\ncGVuIFdoaXNwZXIgU3lzdGVtczEdMBsGA1UECwwUT3BlbiBXaGlzcGVyIFN5c3Rl\nbXMxEzARBgNVBAMMClRleHRTZWN1cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\nggEKAoIBAQDBSWBpOCBDF0i4q2d4jAXkSXUGpbeWugVPQCjaL6qD9QDOxeW1afvf\nPo863i6Crq1KDxHpB36EwzVcjwLkFTIMeo7t9s1FQolAt3mErV2U0vie6Ves+yj6\ngrSfxwIDAcdsKmI0a1SQCZlr3Q1tcHAkAKFRxYNawADyps5B+Zmqcgf653TXS5/0\nIPPQLocLn8GWLwOYNnYfBvILKDMItmZTtEbucdigxEA9mfIvvHADEbteLtVgwBm9\nR5vVvtwrD6CCxI3pgH7EH7kMP0Od93wLisvn1yhHY7FuYlrkYqdkMvWUrKoASVw4\njb69vaeJCUdU+HCoXOSP1PQcL6WenNCHAgMBAAGjUDBOMB0GA1UdDgQWBBQBixjx\nP/s5GURuhYa+lGUypzI8kDAfBgNVHSMEGDAWgBQBixjxP/s5GURuhYa+lGUypzI8\nkDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQB+Hr4hC56m0LvJAu1R\nK6NuPDbTMEN7/jMojFHxH4P3XPFfupjR+bkDq0pPOU6JjIxnrD1XD/EVmTTaTVY5\niOheyv7UzJOefb2pLOc9qsuvI4fnaESh9bhzln+LXxtCrRPGhkxA1IMIo3J/s2WF\n/KVYZyciu6b4ubJ91XPAuBNZwImug7/srWvbpk0hq6A6z140WTVSKtJG7EP41kJe\n/oF4usY5J7LPkxK3LWzMJnb5EIJDmRvyH8pyRwWg6Qm6qiGFaI4nL8QU4La1x2en\n4DGXRaLMPRwjELNgQPodR38zoCMuA8gHZfZYYoZ7D7Q1wNUiVHcxuFrEeBaYJbLE\nrwLV\n-----END CERTIFICATE-----\n", "import": false, "serverTrustRoot": "BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx", - "defaultPublicChatServer": "https://chat.lokinet.org/", - "defaultFileServer": "https://file.lokinet.org" + "defaultPublicChatServer": "https://chat.getsession.org", + "defaultFileServer": "https://file.getsession.org" } diff --git a/js/background.js b/js/background.js index 66ea5bb54..04fdd2de8 100644 --- a/js/background.js +++ b/js/background.js @@ -121,7 +121,6 @@ 'x.svg', 'x_white.svg', 'icon-paste.svg', - 'loki/loki_icon_text.png', 'loki/session_icon_128.png', ]); @@ -988,6 +987,18 @@ return toastID; }; + window.getFriendsFromContacts = contacts => { + // To call from TypeScript, input / output are both + // of type Array + let friendList = contacts; + if (friendList !== undefined) { + friendList = friendList.filter( + friend => friend.type === 'direct' && !friend.isMe + ); + } + return friendList; + }; + // Get memberlist. This function is not accurate >> // window.getMemberList = window.lokiPublicChatAPI.getListOfMembers(); diff --git a/js/models/messages.js b/js/models/messages.js index ac268f332..0fb0a6e61 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -203,6 +203,13 @@ } return conversation.getDisplayName(); }, + getLokiNameForNumber(number) { + const conversation = ConversationController.get(number); + if (!conversation) { + return number; + } + return conversation.getLokiProfile().displayName; + }, getDescription() { if (this.isGroupUpdate()) { const groupUpdate = this.get('group_update'); @@ -224,10 +231,10 @@ messages.push(i18n('titleIsNow', groupUpdate.name)); } if (groupUpdate.joined && groupUpdate.joined.length) { - const names = _.map( - groupUpdate.joined, - this.getNameForNumber.bind(this) + const names = groupUpdate.joined.map(name => + this.getLokiNameForNumber(name) ); + if (names.length > 1) { messages.push(i18n('multipleJoinedTheGroup', names.join(', '))); } else { diff --git a/js/modules/loki_app_dot_net_api.js b/js/modules/loki_app_dot_net_api.js index a3d92cfb6..752d37d93 100644 --- a/js/modules/loki_app_dot_net_api.js +++ b/js/modules/loki_app_dot_net_api.js @@ -310,7 +310,7 @@ class LokiAppDotNetServerAPI { if ( window.lokiFeatureFlags.useSnodeProxy && (this.baseServerUrl === 'https://file-dev.lokinet.org' || - this.baseServerUrl === 'https://file.lokinet.org') + this.baseServerUrl === 'https://file.getsession.org') ) { const finalOptions = { ...fetchOptions }; if (!fetchOptions.method) { @@ -483,7 +483,7 @@ class LokiAppDotNetServerAPI { if ( window.lokiFeatureFlags.useSnodeProxy && (this.baseServerUrl === 'https://file-dev.lokinet.org' || - this.baseServerUrl === 'https://file.lokinet.org') + this.baseServerUrl === 'https://file.getsession.org') ) { mode = '_sendToProxy'; diff --git a/js/views/conversation_view.js b/js/views/conversation_view.js index 1014520c6..ab9e5a547 100644 --- a/js/views/conversation_view.js +++ b/js/views/conversation_view.js @@ -1282,8 +1282,9 @@ }, deleteSelectedMessages() { + const ourPubkey = textsecure.storage.user.getNumber(); const selected = Array.from(this.model.selectedMessages); - const isModerator = this.model.isModerator(this.model.OUR_NUMBER); + const isModerator = this.model.isModerator(ourPubkey); const isAllOurs = selected.every( message => message.attributes.source === message.OUR_NUMBER ); diff --git a/js/views/group_update_view.js b/js/views/group_update_view.js index 11ff2a57a..b7e150d5e 100644 --- a/js/views/group_update_view.js +++ b/js/views/group_update_view.js @@ -19,7 +19,7 @@ const messages = ['Updated the group.']; if (this.model.name) { - messages.push(`Title is now '${this.model.name}'.`); + messages.push(`Group name has been set to '${this.model.name}'.`); } if (this.model.joined) { messages.push(`${this.model.joined.join(', ')} joined the group`); diff --git a/preload.js b/preload.js index c95f402de..8fb3936d1 100644 --- a/preload.js +++ b/preload.js @@ -64,6 +64,7 @@ window.CONSTANTS = { MAX_LOGIN_TRIES: 3, MAX_PASSWORD_LENGTH: 32, MAX_USERNAME_LENGTH: 20, + MAX_GROUP_NAME_LENGTH: 64, DEFAULT_PUBLIC_CHAT_URL: appConfig.get('defaultPublicChatServer'), MAX_CONNECTION_DURATION: 5000, }; diff --git a/stylesheets/_conversation.scss b/stylesheets/_conversation.scss index d2453c1b2..2f879d9c3 100644 --- a/stylesheets/_conversation.scss +++ b/stylesheets/_conversation.scss @@ -210,7 +210,7 @@ align-self: flex-start; - box-shadow: 2px 2px lightgrey; + box-shadow: none; .title { margin: 6px; @@ -246,17 +246,18 @@ } .join-btn { - background-color: #e0e0e0; + background-color: #00f782; + color: white; padding: 6px 10px; margin-left: 6px; - border-radius: 6px; - box-shadow: 2px 2px 1px #c0c0c0; - color: #404040; + border-radius: 2px; + box-shadow: none; user-select: none; cursor: pointer; + transition: 0.25s; &:hover { - background-color: #c7c7c7; + background-color: #00d672; } } } @@ -266,7 +267,7 @@ .group-invitation { background-color: #242424; border-color: #303030; - box-shadow: 2px 2px #4f4f4f; + box-shadow: none; .title { color: lightgrey; @@ -670,7 +671,7 @@ .module-last-seen-indicator__bar { background-color: $color-light-60; width: 100%; - height: 4px; + height: 2px; } .module-last-seen-indicator__text { diff --git a/stylesheets/_modules.scss b/stylesheets/_modules.scss index 234f424a6..097920c68 100644 --- a/stylesheets/_modules.scss +++ b/stylesheets/_modules.scss @@ -1235,11 +1235,17 @@ } .module-group-notification__change { - margin-top: 10px; + background-color: #212121; + width: 90%; + max-width: 700px; + margin: 10px auto; + padding: 5px 20px; + border-radius: 4px; } .module-group-notification__contact { - font-weight: 300; + font-family: 'SF Pro Text'; + font-weight: bold; } // Module: Reset Session Notification diff --git a/stylesheets/_session.scss b/stylesheets/_session.scss index dff264ab9..5781ced1e 100644 --- a/stylesheets/_session.scss +++ b/stylesheets/_session.scss @@ -150,6 +150,11 @@ div.spacer-lg { width: 100%; } +input, +textarea { + caret-color: $session-color-green !important; +} + @mixin text-highlight($color) { background-color: $color; padding: $session-margin-xs $session-margin-sm; @@ -269,7 +274,7 @@ $session_message-container-border-radius: 5px; &.brand { color: $session-color-white; - &:hover { + &:not(.disabled):hover { filter: brightness(90%); } @@ -352,12 +357,12 @@ $session_message-container-border-radius: 5px; min-width: 165px; height: 45px; line-height: 40px; - padding: 0; + padding: 0px $session-margin-lg; font-size: $session-font-md; font-family: $session-font-family; border-radius: 500px; - &:hover { + &:not(.disabled):hover { color: $session-color-white; border-color: $session-color-white; } @@ -559,6 +564,11 @@ label { position: relative; } +.module-left-pane-overlay { + h3 { + margin-bottom: 6px; + } +} .message-selection-overlay { display: none; position: absolute; @@ -1387,6 +1397,7 @@ input { background-color: $session-shade-4; border: $session-separator-element-border; display: flex; + align-items: center; transition: $session-transition-duration; .module-avatar, @@ -1676,3 +1687,77 @@ input { } } } + +.group-member-list { + &__container { + padding: 2px 0px; + width: 100%; + max-height: 400px; + overflow-y: auto; + box-shadow: inset 0px 14px 7px -15px $session-color-dark-grey, + inset 0px -14px 7px -15px $session-color-dark-grey; + } + + &__selection { + height: 100%; + display: flex; + flex-direction: column; + } + + &__no-contacts { + font-family: 'SpaceMono'; + text-align: center; + padding: 20px; + } +} +.create-group-name-input { + .session-id-editable { + height: 60px !important; + + textarea { + padding-bottom: 0px !important; + } + + &-disabled { + border: 1px solid $session-color-dark-grey !important; + } + } +} + +.session-member-item { + cursor: pointer; + font-family: 'SF Pro Text'; + padding: 0px $session-margin-sm; + height: 50px; + display: flex; + justify-content: space-between; + transition: $session-transition-duration; + + &.selected { + background-color: $session-shade-4; + } + + &__checkmark { + opacity: 0; + transition: $session-transition-duration; + + &.selected { + opacity: 1; + } + } + + &__info, + &__checkmark { + display: flex; + align-items: center; + } + + &__name { + font-weight: bold; + margin-left: $session-margin-md; + } + &__pubkey { + margin-left: 5px; + opacity: 0.8; + } +} diff --git a/stylesheets/_session_left_pane.scss b/stylesheets/_session_left_pane.scss index 7fea21411..8024524e2 100644 --- a/stylesheets/_session_left_pane.scss +++ b/stylesheets/_session_left_pane.scss @@ -178,8 +178,8 @@ $session-compose-margin: 20px; &__header { display: flex; flex-direction: row; - margin: 15px 7px 14px 0px; - height: 33px; + padding: 15px 7px 14px 0px; + height: 63px; @at-root .light-theme #{&} { background-color: $session-color-white; @@ -271,8 +271,8 @@ $session-compose-margin: 20px; position: relative; height: 1px; opacity: 0.3; - margin-top: -10px; - margin-bottom: 50px; + margin-top: 2px; + margin-bottom: 40px; } .exit { @@ -291,7 +291,8 @@ $session-compose-margin: 20px; } .session-description-long { - font-size: 13px; + font-size: $session-font-sm; + line-height: $session-font-h3; margin: 0px 20px; font-family: 'SF Pro Display'; } diff --git a/stylesheets/_theme_dark.scss b/stylesheets/_theme_dark.scss index 726573b64..39de2faad 100644 --- a/stylesheets/_theme_dark.scss +++ b/stylesheets/_theme_dark.scss @@ -116,7 +116,7 @@ body.dark-theme { } .module-last-seen-indicator__bar { - background-color: $color-dark-30; + background-color: #353535; } .module-last-seen-indicator__text { diff --git a/test/models/messages_test.js b/test/models/messages_test.js index 70efb2708..7b0f7ece0 100644 --- a/test/models/messages_test.js +++ b/test/models/messages_test.js @@ -101,7 +101,7 @@ describe('MessageCollection', () => { message = messages.add({ group_update: { name: 'blerg' } }); assert.equal( message.getDescription(), - "Title is now 'blerg'", + "Group name has been set to 'blerg'", 'Returns a single notice if only group_updates.name changes.' ); @@ -126,7 +126,7 @@ describe('MessageCollection', () => { }); assert.equal( message.getDescription(), - "Title is now 'blerg', Bob joined the group", + "Group name has been set to 'blerg', Bob joined the group", 'Notes when there are multiple changes to group_updates properties.' ); diff --git a/ts/components/LeftPane.tsx b/ts/components/LeftPane.tsx index babd60a8e..7313c48ac 100644 --- a/ts/components/LeftPane.tsx +++ b/ts/components/LeftPane.tsx @@ -177,6 +177,7 @@ export class LeftPane extends React.Component { private renderChannelSection() { const { + friends, openConversationInternal, conversations, searchResults, @@ -189,6 +190,7 @@ export class LeftPane extends React.Component { return ( { {this.renderOptions(triggerId)} {this.renderTitle()} {/* This might be redundant as we show the title in the title: */} - {isPrivateGroup ? this.renderMemberCount() : null} + {/*isPrivateGroup ? this.renderMemberCount() : null*/} {this.renderExpirationLength()} diff --git a/ts/components/conversation/CreateGroupDialog.tsx b/ts/components/conversation/CreateGroupDialog.tsx index 6dd617bb3..1daf947db 100644 --- a/ts/components/conversation/CreateGroupDialog.tsx +++ b/ts/components/conversation/CreateGroupDialog.tsx @@ -39,6 +39,7 @@ export class CreateGroupDialog extends React.Component { this.onGroupNameChanged = this.onGroupNameChanged.bind(this); let friends = this.props.friendList; + friends = friends.map(d => { const lokiProfile = d.getLokiProfile(); const name = lokiProfile ? lokiProfile.displayName : 'Anonymous'; @@ -95,6 +96,8 @@ export class CreateGroupDialog extends React.Component { return ( null} onOk={() => null}> +
+

{this.state.errorMessage}

{ onMemberClicked={this.onMemberClicked} />
+ +
+