You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/components/MainViewController.tsx

71 lines
2.1 KiB
TypeScript

import React from 'react';
import { ToastUtils } from '../session/utils';
import { createClosedGroup as createClosedGroupV2 } from '../receiver/closedGroups';
Session v1.6.2 (#1639) * padd Message buffer for all outgoing messages (even opengroupv2) * pad and unpad message everywhere attachment not padded for opengroup only * lint * enable fileserver v2 sending side * removed all en unused local strings * remove all unused keys for other locales * update displayname even if we dont have avatar on incoming profile * redesign group invitation message type * ask confirmation before joining opengroup invitation * remove the channelId from groupInvitation * fallback to envelope timestamp if dataMessage.timestamp is 0 * match group invitation design with ios * speed up first load of room message by prefetching token * create convo for members if they don't exist also, removing a private convo does not remove it entirely as we need the convo to be able to remove members * fix avatar download on restore when linking device Fixes #1601 * make sure the left member convo exist in rendering GroupUpdate * Reply attachments (#1591) * First attachment showing in reply composition. * WIP: Adding thumbnail to quote response composition component. * Added icon for voice recording attachment * Updated formatting. * Formatting. * removed duplicate styling. * WIP: Converting quote component to functional components. * Fix bug where thumbnails for attachment replies wasn't showing. * yarn Formatting. * Removed old quote component. * Add type to contentTypeSupported method. * Moved quote subcomponents out of Quote component. * yarn format * Add export to quote subcomponents. * Fixing linting errors. * remove commented line. * Addressing PR comments. * Allow pasting images into composition box as attachments (#1616) * Allow pasting images into composition box as attachments * Fix linter errors * Fix typo * Get snode from snode (#1614) * force deleteAccount after 10sec timeout waiting for configMessage * move some constants to file where they are used * add a way to fetch snodes from snodes * remove a snode from a pubkey's swarm if we get 421 without valid content * remove getVersion from snodes * hide groupMembers in right panel for non-group convo * Fix fonts sans serif (#1619) * force deleteAccount after 10sec timeout waiting for configMessage * move some constants to file where they are used * add a way to fetch snodes from snodes * remove a snode from a pubkey's swarm if we get 421 without valid content * remove getVersion from snodes * hide groupMembers in right panel for non-group convo * fix font sans serif by using roboto instead Fixes #1617 * WIP: User nicknames (#1618) * WIP Adding change nickname dialog. * WIP adding nickname change dialog. * WIP nickname dialog. * WIP: Able to set conversation nicknames. Next step cleaning and adding to conversation list menu. * Fix message capitilisations. * Add change nickname to conversation list menu. * Enable clear nickname menu item. * Added messages for changing nicknames. * Clearing nicknames working from header and message list. * Adding modal styling to nickname modal. * Reorder nickname menu item positions. * Add group based conditional nickname menu options to conversation header menu. * minor tidying. * Remove unused error causing el option. * Formatting. * Linting fixes. * Made PR fixes * Prioritise displaying nicknames for inviting new closed group members and updating closed group members. * Fix app image start for non-debian based distribs (#1622) Fixes #1620 * fixup nickname dialog for enter key pressed event (#1623) also add some type for it and remove unused props * Fix attachment extension vnd (#1628) * allow openoffice document extension and don't use * allow opendocument to be shared with the extension rather than mimetype Fixes #1593 * allow message without padding * add test for odt files * More Japanese translations (#1632) * Translate some untranslated strings into Japanese * Tweak some Japanese translations * Add new Japanese translations * WIP: Closed group reliability (#1630) * WIP: added non-durable messaging function. * WIP: Non-durable sending * WIP: adding dialog box. * Creating dialog if group invite message promises don't return true. * removed console log * applied PR changes, linting and formatting. * WIP: allowing resend invite to failures. * using lookup. * WIP: recursively opening dialog. * WIP: debugging reject triggering on confirmation modal. * register events fix. * Closed group invite retry dialog working. * Added english text to messages. * Prevent saving of hexkey pair if it already exists. * Fixed nickname edit input trimming end letter. * Don't show closed group invite dialog unless it has failed at least once. * Fix linting error. * Fix plurality. * Ensure admin members are included in all invite reattempts, mixed plurality. * test fixing windows build * Revert "test fixing windows build" This reverts commit 8ed2e0891d160a774de452e8373aea179502e221. Co-authored-by: Warrick <wcor690@aucklanduni.ac.nz> Co-authored-by: shellhazard <unva1idated@protonmail.com> Co-authored-by: beantaco <64012487+beantaco@users.noreply.github.com>
4 years ago
import { VALIDATION } from '../session/constants';
5 years ago
export class MessageView extends React.Component {
public render() {
return (
<div className="conversation placeholder">
<div className="conversation-header" />
<div className="container">
<div className="content session-full-logo">
<img
src="images/session/brand.svg"
className="session-brand-logo"
alt="full-brand-logo"
/>
<img
src="images/session/session-text.svg"
className="session-text-logo"
alt="full-brand-logo"
/>
</div>
</div>
</div>
);
}
}
5 years ago
// /////////////////////////////////////
// //////////// Management /////////////
// /////////////////////////////////////
/**
* Returns true if the group was indead created
*/
async function createClosedGroup(
5 years ago
groupName: string,
Session 1.7.5 (#2094) * Added message requests disabled for now * no longer showing empty space for conversations moved from list. * Added syncing accepting of contact between running instances. * Adding blocking of individual requests and syncing of block to devices. Added approval by replying to a message. * fixed typos for translations and method name. * Blocking, accepting on click and accepting on msg send working across clients. * adding setting of active_at to hide unapproved messages. * adding feature flag for config message receiving * fix archlinux pw unused issue on archlinux, the appimage links to the system sqlite by default which does not support sqlcipher * hide activeAt = 0 convo from search results Fixes #2033 * opengroup messages from blocked user are dropped Fixes #2019 * opengroup messages from blocked user are dropped Fixes #2019 * dismiss a call when answered from another of our devices * add data-testid for leftpane sections and edit profile dialog * update turn servers * cleanup sessionprotobuf * move the state of calling to its own slice * no video track by default and will be turn ON if asked to * message request refactoring. * create offer and answer ourselves and do not use the negotiation needed event. this event is causing us to loop in negotiation needed when each side try to create one, gets the answer and so on... * auto select the first audio input on connection success webrtc * add a way to choose the audioouput/mute a webrtc call * mute audio from bg when video is in fullscreen this is to avoid having two times the remote sound playing one in the bg and one in the fullscreen * Adding improvements to message request handling. * Only updating approval when it is a true value as we consider a block a decline. * Linting and formatting. * More formatting and linting * fixing merge conflicts * linting and formatting changes * darken a bit the green of sent message box in light theme * disable deduplication based serverId+sender only use the serverTimestamp+sender for searching because serverId+sender might have false positive * Fixing up block all logic. * speed up fetching closed group's members avatar * Applying PR changes. * cleanup props passing of avatar and name with a custom hook * fix a bug releasing the decrypted attachment blobs too early * Adding trigger logic for conversation filtering of requests. * Fixing rimraf transpile bug. Adding PR fixes - icon buttons. * Minor call tweaks (#2051) * show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety * Fetch translations (#2056) * show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety * add type for i18n to run update after crowdin fetch with tools/updateI18nKeysType.py * update to latest translations * Open group regex fixes (#2058) * Open group URL regex fixes - Capital letters in room tokens were not being accepted (it eventually gets lower-cased internally, which works fine, but that happens *after* the URL is tested for acceptability). - `-` in room was not being allowed (it is and always has been on SOGS, session-android, and session-ios). - single-letter room ids are valid, but only 2+ letter ids were being accepted. - complete URL regex wasn't anchored so something like `garbagehttps://example.com/room?public_key=<64hex>moregarbage` was being accepted in the GUI input (it fails later when other code tries to parse it as a URL). - removed `m` modifier from open group regex: without anchors it wasn't doing anything anyway, but *with* anchors it would still allow leading/trailing garbage if delineated by newlines. - public key regex was accepting g-z letters, and not accepting A-F. - various regex cleanups: - use non-capture groups (?:...) rather than capturing groups (...) - avoid repetition in host segment matching - tightened up host pattern matching a bit: - DNS host segments have a max length of 63 - Limit port max length to 5, and disallow starting with 0 * Show an error when the open group URL is invalid It's quite disconcerting when you have a bad open group URL and try to add it and the join button just "doesn't work" without any feedback at all. Fix it to show an error message. (There is already an i18n entry for this because this same message is thrown if the URL can't be parsed later on). * Add call duration (#2059) * add call duration once connected * close incoming call dialog if endCall from same sender * disable message request toggle if featureFlag is OFF * Cleanup message request (#2063) * close incoming call dialog if endCall from seame sender * disable message request toggle if featureFlag is OFF * cleanup UI of message requests * mark all existing conversations as approved in a migration * fix regex with conversationID for opengroups * Various UI fixes (#2070) * cleanup unused convo json fields in db * display a toast if the user is not approved yet on call OFFER received * enable CBR for calls * do not update active_at on configMessage if !!active_at * remove mkdirp dependency * disable call button if focused convo is blocked * quote: do not include the full body in quote, but just the first 100 * click on the edit profile qr code padding * Allow longer input for opengroup join overlay Fixes #2068 * Fix overlay feature for start new session button * make ringing depend on redux CALL status * turn ON read-receipt by default * keep read-receipts disabled by default (#2071) * refactor most of the components to outside of their Session folder (#2072) * refactor most of the components to outside of their Session folder * finish moving overlay and memberListItem to react hook * fix bug with kicked member len >2 not being displayed also sort admins first in UpdateGroupMembers dialog * fix admin leaving text of groupNotification * add a useFocusMount hook to focus input fields on mount * make click avatar convo item open only user dialog * cleanup config default.json * make sure to use convoController to build sync message * disable showing pubkey on opengroups * add a pause on audio playback Fixes #2079 * Minor styling fix for large amount of message requests (#2080) * Minor styling fix for large amount of message requests * Vertical center fix for message request banner. * removing top margin from banner again. * reactify group updates text bubble from redux store (#2083) * add crown icon for closed group admins (#2084) * disable call for now + fix left pane actions overflow (#2085) * Fix attachment dl freeze (#2086) * fix attachment download freezing app for some opengroups * make registration page work with smaller height * Unban UI (#2091) * adding basic functionaliy for unbanning a user * merge ban and unban user dialog in to one dialog Co-authored-by: warrickct <warrickct@gmail.com> * use React Provider for convoListItem (#2088) this is to avoid passing down the prop to all the components * fix closed group updates undefined on no names (#2092) Co-authored-by: Warrick Corfe-Tan <warrickct@gmail.com> Co-authored-by: Jason Rhinelander <jason@imaginary.ca> Co-authored-by: Warrick <wcor690@aucklanduni.ac.nz>
3 years ago
groupMemberIds: Array<string>
): Promise<boolean> {
5 years ago
// Validate groupName and groupMembers length
if (groupName.length === 0) {
ToastUtils.pushToastError('invalidGroupName', window.i18n('invalidGroupNameTooShort'));
return false;
Session v1.6.2 (#1639) * padd Message buffer for all outgoing messages (even opengroupv2) * pad and unpad message everywhere attachment not padded for opengroup only * lint * enable fileserver v2 sending side * removed all en unused local strings * remove all unused keys for other locales * update displayname even if we dont have avatar on incoming profile * redesign group invitation message type * ask confirmation before joining opengroup invitation * remove the channelId from groupInvitation * fallback to envelope timestamp if dataMessage.timestamp is 0 * match group invitation design with ios * speed up first load of room message by prefetching token * create convo for members if they don't exist also, removing a private convo does not remove it entirely as we need the convo to be able to remove members * fix avatar download on restore when linking device Fixes #1601 * make sure the left member convo exist in rendering GroupUpdate * Reply attachments (#1591) * First attachment showing in reply composition. * WIP: Adding thumbnail to quote response composition component. * Added icon for voice recording attachment * Updated formatting. * Formatting. * removed duplicate styling. * WIP: Converting quote component to functional components. * Fix bug where thumbnails for attachment replies wasn't showing. * yarn Formatting. * Removed old quote component. * Add type to contentTypeSupported method. * Moved quote subcomponents out of Quote component. * yarn format * Add export to quote subcomponents. * Fixing linting errors. * remove commented line. * Addressing PR comments. * Allow pasting images into composition box as attachments (#1616) * Allow pasting images into composition box as attachments * Fix linter errors * Fix typo * Get snode from snode (#1614) * force deleteAccount after 10sec timeout waiting for configMessage * move some constants to file where they are used * add a way to fetch snodes from snodes * remove a snode from a pubkey's swarm if we get 421 without valid content * remove getVersion from snodes * hide groupMembers in right panel for non-group convo * Fix fonts sans serif (#1619) * force deleteAccount after 10sec timeout waiting for configMessage * move some constants to file where they are used * add a way to fetch snodes from snodes * remove a snode from a pubkey's swarm if we get 421 without valid content * remove getVersion from snodes * hide groupMembers in right panel for non-group convo * fix font sans serif by using roboto instead Fixes #1617 * WIP: User nicknames (#1618) * WIP Adding change nickname dialog. * WIP adding nickname change dialog. * WIP nickname dialog. * WIP: Able to set conversation nicknames. Next step cleaning and adding to conversation list menu. * Fix message capitilisations. * Add change nickname to conversation list menu. * Enable clear nickname menu item. * Added messages for changing nicknames. * Clearing nicknames working from header and message list. * Adding modal styling to nickname modal. * Reorder nickname menu item positions. * Add group based conditional nickname menu options to conversation header menu. * minor tidying. * Remove unused error causing el option. * Formatting. * Linting fixes. * Made PR fixes * Prioritise displaying nicknames for inviting new closed group members and updating closed group members. * Fix app image start for non-debian based distribs (#1622) Fixes #1620 * fixup nickname dialog for enter key pressed event (#1623) also add some type for it and remove unused props * Fix attachment extension vnd (#1628) * allow openoffice document extension and don't use * allow opendocument to be shared with the extension rather than mimetype Fixes #1593 * allow message without padding * add test for odt files * More Japanese translations (#1632) * Translate some untranslated strings into Japanese * Tweak some Japanese translations * Add new Japanese translations * WIP: Closed group reliability (#1630) * WIP: added non-durable messaging function. * WIP: Non-durable sending * WIP: adding dialog box. * Creating dialog if group invite message promises don't return true. * removed console log * applied PR changes, linting and formatting. * WIP: allowing resend invite to failures. * using lookup. * WIP: recursively opening dialog. * WIP: debugging reject triggering on confirmation modal. * register events fix. * Closed group invite retry dialog working. * Added english text to messages. * Prevent saving of hexkey pair if it already exists. * Fixed nickname edit input trimming end letter. * Don't show closed group invite dialog unless it has failed at least once. * Fix linting error. * Fix plurality. * Ensure admin members are included in all invite reattempts, mixed plurality. * test fixing windows build * Revert "test fixing windows build" This reverts commit 8ed2e0891d160a774de452e8373aea179502e221. Co-authored-by: Warrick <wcor690@aucklanduni.ac.nz> Co-authored-by: shellhazard <unva1idated@protonmail.com> Co-authored-by: beantaco <64012487+beantaco@users.noreply.github.com>
4 years ago
} else if (groupName.length > VALIDATION.MAX_GROUP_NAME_LENGTH) {
ToastUtils.pushToastError('invalidGroupName', window.i18n('invalidGroupNameTooLong'));
return false;
5 years ago
}
// >= because we add ourself as a member AFTER this. so a 10 group is already invalid as it will be 11 with ourself
// the same is valid with groups count < 1
Session 1.7.5 (#2094) * Added message requests disabled for now * no longer showing empty space for conversations moved from list. * Added syncing accepting of contact between running instances. * Adding blocking of individual requests and syncing of block to devices. Added approval by replying to a message. * fixed typos for translations and method name. * Blocking, accepting on click and accepting on msg send working across clients. * adding setting of active_at to hide unapproved messages. * adding feature flag for config message receiving * fix archlinux pw unused issue on archlinux, the appimage links to the system sqlite by default which does not support sqlcipher * hide activeAt = 0 convo from search results Fixes #2033 * opengroup messages from blocked user are dropped Fixes #2019 * opengroup messages from blocked user are dropped Fixes #2019 * dismiss a call when answered from another of our devices * add data-testid for leftpane sections and edit profile dialog * update turn servers * cleanup sessionprotobuf * move the state of calling to its own slice * no video track by default and will be turn ON if asked to * message request refactoring. * create offer and answer ourselves and do not use the negotiation needed event. this event is causing us to loop in negotiation needed when each side try to create one, gets the answer and so on... * auto select the first audio input on connection success webrtc * add a way to choose the audioouput/mute a webrtc call * mute audio from bg when video is in fullscreen this is to avoid having two times the remote sound playing one in the bg and one in the fullscreen * Adding improvements to message request handling. * Only updating approval when it is a true value as we consider a block a decline. * Linting and formatting. * More formatting and linting * fixing merge conflicts * linting and formatting changes * darken a bit the green of sent message box in light theme * disable deduplication based serverId+sender only use the serverTimestamp+sender for searching because serverId+sender might have false positive * Fixing up block all logic. * speed up fetching closed group's members avatar * Applying PR changes. * cleanup props passing of avatar and name with a custom hook * fix a bug releasing the decrypted attachment blobs too early * Adding trigger logic for conversation filtering of requests. * Fixing rimraf transpile bug. Adding PR fixes - icon buttons. * Minor call tweaks (#2051) * show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety * Fetch translations (#2056) * show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety * add type for i18n to run update after crowdin fetch with tools/updateI18nKeysType.py * update to latest translations * Open group regex fixes (#2058) * Open group URL regex fixes - Capital letters in room tokens were not being accepted (it eventually gets lower-cased internally, which works fine, but that happens *after* the URL is tested for acceptability). - `-` in room was not being allowed (it is and always has been on SOGS, session-android, and session-ios). - single-letter room ids are valid, but only 2+ letter ids were being accepted. - complete URL regex wasn't anchored so something like `garbagehttps://example.com/room?public_key=<64hex>moregarbage` was being accepted in the GUI input (it fails later when other code tries to parse it as a URL). - removed `m` modifier from open group regex: without anchors it wasn't doing anything anyway, but *with* anchors it would still allow leading/trailing garbage if delineated by newlines. - public key regex was accepting g-z letters, and not accepting A-F. - various regex cleanups: - use non-capture groups (?:...) rather than capturing groups (...) - avoid repetition in host segment matching - tightened up host pattern matching a bit: - DNS host segments have a max length of 63 - Limit port max length to 5, and disallow starting with 0 * Show an error when the open group URL is invalid It's quite disconcerting when you have a bad open group URL and try to add it and the join button just "doesn't work" without any feedback at all. Fix it to show an error message. (There is already an i18n entry for this because this same message is thrown if the URL can't be parsed later on). * Add call duration (#2059) * add call duration once connected * close incoming call dialog if endCall from same sender * disable message request toggle if featureFlag is OFF * Cleanup message request (#2063) * close incoming call dialog if endCall from seame sender * disable message request toggle if featureFlag is OFF * cleanup UI of message requests * mark all existing conversations as approved in a migration * fix regex with conversationID for opengroups * Various UI fixes (#2070) * cleanup unused convo json fields in db * display a toast if the user is not approved yet on call OFFER received * enable CBR for calls * do not update active_at on configMessage if !!active_at * remove mkdirp dependency * disable call button if focused convo is blocked * quote: do not include the full body in quote, but just the first 100 * click on the edit profile qr code padding * Allow longer input for opengroup join overlay Fixes #2068 * Fix overlay feature for start new session button * make ringing depend on redux CALL status * turn ON read-receipt by default * keep read-receipts disabled by default (#2071) * refactor most of the components to outside of their Session folder (#2072) * refactor most of the components to outside of their Session folder * finish moving overlay and memberListItem to react hook * fix bug with kicked member len >2 not being displayed also sort admins first in UpdateGroupMembers dialog * fix admin leaving text of groupNotification * add a useFocusMount hook to focus input fields on mount * make click avatar convo item open only user dialog * cleanup config default.json * make sure to use convoController to build sync message * disable showing pubkey on opengroups * add a pause on audio playback Fixes #2079 * Minor styling fix for large amount of message requests (#2080) * Minor styling fix for large amount of message requests * Vertical center fix for message request banner. * removing top margin from banner again. * reactify group updates text bubble from redux store (#2083) * add crown icon for closed group admins (#2084) * disable call for now + fix left pane actions overflow (#2085) * Fix attachment dl freeze (#2086) * fix attachment download freezing app for some opengroups * make registration page work with smaller height * Unban UI (#2091) * adding basic functionaliy for unbanning a user * merge ban and unban user dialog in to one dialog Co-authored-by: warrickct <warrickct@gmail.com> * use React Provider for convoListItem (#2088) this is to avoid passing down the prop to all the components * fix closed group updates undefined on no names (#2092) Co-authored-by: Warrick Corfe-Tan <warrickct@gmail.com> Co-authored-by: Jason Rhinelander <jason@imaginary.ca> Co-authored-by: Warrick <wcor690@aucklanduni.ac.nz>
3 years ago
if (groupMemberIds.length < 1) {
ToastUtils.pushToastError('pickClosedGroupMember', window.i18n('pickClosedGroupMember'));
return false;
Session 1.7.5 (#2094) * Added message requests disabled for now * no longer showing empty space for conversations moved from list. * Added syncing accepting of contact between running instances. * Adding blocking of individual requests and syncing of block to devices. Added approval by replying to a message. * fixed typos for translations and method name. * Blocking, accepting on click and accepting on msg send working across clients. * adding setting of active_at to hide unapproved messages. * adding feature flag for config message receiving * fix archlinux pw unused issue on archlinux, the appimage links to the system sqlite by default which does not support sqlcipher * hide activeAt = 0 convo from search results Fixes #2033 * opengroup messages from blocked user are dropped Fixes #2019 * opengroup messages from blocked user are dropped Fixes #2019 * dismiss a call when answered from another of our devices * add data-testid for leftpane sections and edit profile dialog * update turn servers * cleanup sessionprotobuf * move the state of calling to its own slice * no video track by default and will be turn ON if asked to * message request refactoring. * create offer and answer ourselves and do not use the negotiation needed event. this event is causing us to loop in negotiation needed when each side try to create one, gets the answer and so on... * auto select the first audio input on connection success webrtc * add a way to choose the audioouput/mute a webrtc call * mute audio from bg when video is in fullscreen this is to avoid having two times the remote sound playing one in the bg and one in the fullscreen * Adding improvements to message request handling. * Only updating approval when it is a true value as we consider a block a decline. * Linting and formatting. * More formatting and linting * fixing merge conflicts * linting and formatting changes * darken a bit the green of sent message box in light theme * disable deduplication based serverId+sender only use the serverTimestamp+sender for searching because serverId+sender might have false positive * Fixing up block all logic. * speed up fetching closed group's members avatar * Applying PR changes. * cleanup props passing of avatar and name with a custom hook * fix a bug releasing the decrypted attachment blobs too early * Adding trigger logic for conversation filtering of requests. * Fixing rimraf transpile bug. Adding PR fixes - icon buttons. * Minor call tweaks (#2051) * show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety * Fetch translations (#2056) * show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety * add type for i18n to run update after crowdin fetch with tools/updateI18nKeysType.py * update to latest translations * Open group regex fixes (#2058) * Open group URL regex fixes - Capital letters in room tokens were not being accepted (it eventually gets lower-cased internally, which works fine, but that happens *after* the URL is tested for acceptability). - `-` in room was not being allowed (it is and always has been on SOGS, session-android, and session-ios). - single-letter room ids are valid, but only 2+ letter ids were being accepted. - complete URL regex wasn't anchored so something like `garbagehttps://example.com/room?public_key=<64hex>moregarbage` was being accepted in the GUI input (it fails later when other code tries to parse it as a URL). - removed `m` modifier from open group regex: without anchors it wasn't doing anything anyway, but *with* anchors it would still allow leading/trailing garbage if delineated by newlines. - public key regex was accepting g-z letters, and not accepting A-F. - various regex cleanups: - use non-capture groups (?:...) rather than capturing groups (...) - avoid repetition in host segment matching - tightened up host pattern matching a bit: - DNS host segments have a max length of 63 - Limit port max length to 5, and disallow starting with 0 * Show an error when the open group URL is invalid It's quite disconcerting when you have a bad open group URL and try to add it and the join button just "doesn't work" without any feedback at all. Fix it to show an error message. (There is already an i18n entry for this because this same message is thrown if the URL can't be parsed later on). * Add call duration (#2059) * add call duration once connected * close incoming call dialog if endCall from same sender * disable message request toggle if featureFlag is OFF * Cleanup message request (#2063) * close incoming call dialog if endCall from seame sender * disable message request toggle if featureFlag is OFF * cleanup UI of message requests * mark all existing conversations as approved in a migration * fix regex with conversationID for opengroups * Various UI fixes (#2070) * cleanup unused convo json fields in db * display a toast if the user is not approved yet on call OFFER received * enable CBR for calls * do not update active_at on configMessage if !!active_at * remove mkdirp dependency * disable call button if focused convo is blocked * quote: do not include the full body in quote, but just the first 100 * click on the edit profile qr code padding * Allow longer input for opengroup join overlay Fixes #2068 * Fix overlay feature for start new session button * make ringing depend on redux CALL status * turn ON read-receipt by default * keep read-receipts disabled by default (#2071) * refactor most of the components to outside of their Session folder (#2072) * refactor most of the components to outside of their Session folder * finish moving overlay and memberListItem to react hook * fix bug with kicked member len >2 not being displayed also sort admins first in UpdateGroupMembers dialog * fix admin leaving text of groupNotification * add a useFocusMount hook to focus input fields on mount * make click avatar convo item open only user dialog * cleanup config default.json * make sure to use convoController to build sync message * disable showing pubkey on opengroups * add a pause on audio playback Fixes #2079 * Minor styling fix for large amount of message requests (#2080) * Minor styling fix for large amount of message requests * Vertical center fix for message request banner. * removing top margin from banner again. * reactify group updates text bubble from redux store (#2083) * add crown icon for closed group admins (#2084) * disable call for now + fix left pane actions overflow (#2085) * Fix attachment dl freeze (#2086) * fix attachment download freezing app for some opengroups * make registration page work with smaller height * Unban UI (#2091) * adding basic functionaliy for unbanning a user * merge ban and unban user dialog in to one dialog Co-authored-by: warrickct <warrickct@gmail.com> * use React Provider for convoListItem (#2088) this is to avoid passing down the prop to all the components * fix closed group updates undefined on no names (#2092) Co-authored-by: Warrick Corfe-Tan <warrickct@gmail.com> Co-authored-by: Jason Rhinelander <jason@imaginary.ca> Co-authored-by: Warrick <wcor690@aucklanduni.ac.nz>
3 years ago
} else if (groupMemberIds.length >= VALIDATION.CLOSED_GROUP_SIZE_LIMIT) {
ToastUtils.pushToastError('closedGroupMaxSize', window.i18n('closedGroupMaxSize'));
return false;
5 years ago
}
await createClosedGroupV2(groupName, groupMemberIds);
5 years ago
return true;
}
export const MainViewController = {
createClosedGroup,
};