From c92d22fecef035fcb5f486f32188dc06c94c576a Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 28 Jan 2020 15:00:28 +1100 Subject: [PATCH] allow space inside a display name but not at start or end --- js/modules/loki_app_dot_net_api.js | 2 -- ts/components/session/RegistrationTabs.tsx | 31 +++++++++++++--------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/js/modules/loki_app_dot_net_api.js b/js/modules/loki_app_dot_net_api.js index 1bd6d6e0f..db017e403 100644 --- a/js/modules/loki_app_dot_net_api.js +++ b/js/modules/loki_app_dot_net_api.js @@ -1351,7 +1351,6 @@ class LokiPublicChannelAPI { // process remaining messages slaveMessages.forEach(messageData => { - const slaveKey = messageData.source; // prevent our own device sent messages from coming back in @@ -1377,7 +1376,6 @@ class LokiPublicChannelAPI { this.chatAPI.emit('publicMessage', { message: messageData, }); - }); // if we received one of our own messages diff --git a/ts/components/session/RegistrationTabs.tsx b/ts/components/session/RegistrationTabs.tsx index 3f8964a71..8083faf77 100644 --- a/ts/components/session/RegistrationTabs.tsx +++ b/ts/components/session/RegistrationTabs.tsx @@ -217,11 +217,11 @@ export class RegistrationTabs extends React.Component<{}, State> { private onDisplayNameChanged(val: string) { const sanitizedName = this.sanitiseNameInput(val); + const trimName = sanitizedName.trim(); + this.setState({ displayName: sanitizedName, - displayNameError: !sanitizedName - ? window.i18n('displayNameEmpty') - : undefined, + displayNameError: !trimName ? window.i18n('displayNameEmpty') : undefined, }); } @@ -553,10 +553,7 @@ export class RegistrationTabs extends React.Component<{}, State> { } private renderTermsConditionAgreement() { - // FIXME - window.log.info( - 'FIXME: add link to our Terms and Conditions and privacy statement' - ); + // FIXME add link to our Terms and Conditions and privacy statement return (
@@ -713,7 +710,7 @@ export class RegistrationTabs extends React.Component<{}, State> { } private sanitiseNameInput(val: string) { - return val.trim().replace(window.displayNameRegex, ''); + return val.replace(window.displayNameRegex, ''); } private async resetRegistration() { @@ -738,6 +735,19 @@ export class RegistrationTabs extends React.Component<{}, State> { passwordFieldsMatch, } = this.state; // Make sure the password is valid + + const trimName = displayName.trim(); + + if (!trimName) { + window.pushToast({ + title: window.i18n('displayNameEmpty'), + type: 'error', + id: 'invalidDisplayName', + }); + + return; + } + if (passwordErrorString) { window.pushToast({ title: window.i18n('invalidPassword'), @@ -761,9 +771,6 @@ export class RegistrationTabs extends React.Component<{}, State> { if (!mnemonicSeed) { return; } - if (!displayName) { - return; - } // Ensure we clear the secondary device registration status window.textsecure.storage.remove('secondaryDeviceStatus'); @@ -775,7 +782,7 @@ export class RegistrationTabs extends React.Component<{}, State> { await this.accountManager.registerSingleDevice( mnemonicSeed, language, - displayName + trimName ); trigger('openInbox'); } catch (e) {