diff --git a/charts/nynja-app-desktop/Chart.yaml b/charts/nynja-app-desktop/Chart.yaml index 343792e45fc13db6bc77039103d844f198be64dc..35e08ae815053f6532bff3361aef436254738569 100644 --- a/charts/nynja-app-desktop/Chart.yaml +++ b/charts/nynja-app-desktop/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Deployment of the nynja desktop application name: nynja-app-desktop -version: 0.2.6 +version: 0.2.10 diff --git a/charts/nynja-app-desktop/templates/nginx-configmap.yaml b/charts/nynja-app-desktop/templates/nginx-configmap.yaml index 00243952fb6f25b6772084688c04c15ec81d9a44..56fe24ade6e7c5c10513cdd5cb287e4f800fab1f 100644 --- a/charts/nynja-app-desktop/templates/nginx-configmap.yaml +++ b/charts/nynja-app-desktop/templates/nginx-configmap.yaml @@ -54,6 +54,8 @@ data: set $auth_type "Restricted"; # Handle join links (ex. join.nynja.net/123) set $join_link 0; + # Handle client type (web|desktop - default is web) + set $client_type "web"; if ( $host ~ ^join\.(?.+)$ ) { set $join_link 1; @@ -63,8 +65,13 @@ data: set $join_link 0; set $auth_type "off"; } + if ( $http_referer ~* desktop\.(?.+)$ ) { + set $client_type "desktop"; + } if ($join_link = 1) { - return 302 https://desktop.$domain/join$request_uri; + return 302 https://$client_type.$domain/join$request_uri; + #return 302 https://web.$domain/join$request_uri; + #return 302 https://desktop.$domain/join$request_uri; } # {{ if .Values.auth.basic.enabled }} diff --git a/charts/nynja-app-desktop/values.yaml b/charts/nynja-app-desktop/values.yaml index 6f3725380ddf805aff20bcbe5ad0ca82c455f7f2..2ada0569f08dcd2b9cb58443ebefe7d097938062 100644 --- a/charts/nynja-app-desktop/values.yaml +++ b/charts/nynja-app-desktop/values.yaml @@ -2,7 +2,7 @@ replicaCount: 1 auth: - # Whether of not basic auth should be enabled to access the website + ## Whether of not basic auth should be enabled to access the website basic: enabled: true # the .htpasswd file content, sealed for the target environment (cluster + namespace) @@ -18,6 +18,7 @@ gateway: - api-gateway.default.svc.cluster.local hosts: - desktop.nynja.net + - join.nynja.net wellKnown: appleAppSiteAssociation: diff --git a/charts/nynja-app-web/Chart.yaml b/charts/nynja-app-web/Chart.yaml index e930b74ad6577f9a7540cb32e2445231f6e03660..a3de6ea60562c8067f53e1d437390aa8f0b14476 100644 --- a/charts/nynja-app-web/Chart.yaml +++ b/charts/nynja-app-web/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Deployment of the nynja web application name: nynja-app-web -version: 0.2.4 +version: 0.2.7 diff --git a/charts/nynja-app-web/templates/nginx-configmap.yaml b/charts/nynja-app-web/templates/nginx-configmap.yaml index 32c71f0d0f5e71db67fc46fa2d93c1d60ae76139..ca5d14eea04d6299598c4204daa7920fc6333283 100644 --- a/charts/nynja-app-web/templates/nginx-configmap.yaml +++ b/charts/nynja-app-web/templates/nginx-configmap.yaml @@ -54,6 +54,8 @@ data: set $auth_type "Restricted"; # Handle join links (ex. join.nynja.net/123) set $join_link 0; + # Handle client type (web|desktop - default is web) + set $client_type "web"; if ( $host ~ ^join\.(?.+)$ ) { set $join_link 1; @@ -63,8 +65,13 @@ data: set $join_link 0; set $auth_type "off"; } + if ( $http_referer ~* desktop\.(?.+)$ ) { + set $client_type "desktop"; + } if ($join_link = 1) { - return 302 https://web.$domain/join$request_uri; + return 302 https://$client_type.$domain/join$request_uri; + #return 302 https://web.$domain/join$request_uri; + #return 302 https://desktop.$domain/join$request_uri; } # {{ if .Values.auth.basic.enabled }} diff --git a/charts/nynja-app-web/values.yaml b/charts/nynja-app-web/values.yaml index 6856b59363559513143335714592473a084d5801..957d07eb250aecac3922577730d00ad283657dd9 100644 --- a/charts/nynja-app-web/values.yaml +++ b/charts/nynja-app-web/values.yaml @@ -18,6 +18,7 @@ gateway: - api-gateway.default.svc.cluster.local hosts: - web.nynja.net + - join.nynja.net wellKnown: appleAppSiteAssociation: diff --git a/lib/desktop_updater.js b/lib/desktop_updater.js old mode 100644 new mode 100755 index cc361d719cff273c2ce78eb4119bd2889c8941f2..31657976cc6b61d34acd1a64d64e089ea0573cc0 --- a/lib/desktop_updater.js +++ b/lib/desktop_updater.js @@ -28,8 +28,14 @@ ipcRendererUpdateWeb.on('update', function (event, message) { startDownloading() } } else if(msgJSON.key==='update-check-menu') { - getAppVesrion('update-check-menu'); + + var app_ver_split = process.env.currentVersion.split('.'); + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ + getAppVesrion('update-check-menu'); // ipcRendererOnUpdateEvent(msgJSON); + } else{ + ipcRendererOnUpdateEvent(msgJSON); + } } else { ipcRendererOnUpdateEvent(msgJSON); @@ -51,6 +57,7 @@ function ipcRendererOnUpdateEvent(msgJSON) { * currentBuild: 1590208348, * status: 200 */ + var app_ver_split = process.env.currentVersion.split('.'); switch (msgJSON.key) { case 'update-check-menu': //Update UI button or text @@ -59,14 +66,24 @@ function ipcRendererOnUpdateEvent(msgJSON) { document.getElementById('update-info').innerHTML = (msgJSON.upgrade ? 'Update Available' : (msgJSON.version !== '' ? '' : '')); // document.getElementById('update_latest_version').innerHTML = (msgJSON.upgrade ? 'A new release is available (' + msgJSON.version + ').' : (msgJSON.version !== '' ? 'You are using latest version of Nynja.' : 'Encountered an error while updating, try again later.')); + //document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion; + + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ document.getElementById('update_latest_version').innerHTML = (msgJSON.upgrade ? (msgJSON.upgradeType==="version"? 'A new release is available ' + msgJSON.version +' (Build: ' + msgJSON.build + ')' : - 'A new build (' + msgJSON.build + ') is available in release ' + msgJSON.version + '.'): + 'A new build (' + msgJSON.build + ') is available in release ' + msgJSON.version + '.'): (msgJSON.version !== '' ? 'You are using latest version of Nynja.' : - 'Unable to update, please try again later.')); + 'Unable to update, please try again later.')); + + document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion+ (msgJSON.currentBuild===0?'':' (Build: ' + msgJSON.currentBuild+')'); + + }else{ + + document.getElementById('update_latest_version').innerHTML = (msgJSON.upgrade ? 'A new release is available (' + msgJSON.version + ').' : (msgJSON.version !== '' ? 'You are using latest version of Nynja.' : 'Encountered an error while updating, try again later.')); + + document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion; + } - //document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion; - document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion+ ' (Build: ' + msgJSON.currentBuild+')'; document.getElementById('update_version_electron').innerHTML = (msgJSON.electron === undefined ? process.versions.electron : msgJSON.electron); document.getElementById('update_version_chromium').innerHTML = (msgJSON.chromium === undefined ? process.versions.chrome : msgJSON.chromium); @@ -91,13 +108,22 @@ function ipcRendererOnUpdateEvent(msgJSON) { document.getElementById('update-info').innerHTML = (msgJSON.upgrade ? 'Update Available' : (msgJSON.version !== '' ? '' : '')); - document.getElementById('update_latest_version').innerHTML = (msgJSON.upgrade ? - (msgJSON.upgradeType==="version"? 'A new release is available ' + msgJSON.version +' (Build: ' + msgJSON.build + ')' : - 'A new build (' + msgJSON.build + ') is available in release ' + msgJSON.version + '.'): - (msgJSON.version !== '' ? 'You are using latest version of Nynja.' : - 'Unable to update, please try again later.')); + + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ + document.getElementById('update_latest_version').innerHTML = (msgJSON.upgrade ? + (msgJSON.upgradeType==="version"? 'A new release is available ' + msgJSON.version +' (Build: ' + msgJSON.build + ')' : + 'A new build (' + msgJSON.build + ') is available in release ' + msgJSON.version + '.'): + (msgJSON.version !== '' ? 'You are using latest version of Nynja.' : + 'Unable to update, please try again later.')); - document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion+ ' (Build: ' + msgJSON.currentBuild+')'; + document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion+(msgJSON.currentBuild===0?'': ' (Build: ' + msgJSON.currentBuild+')'); + }else{ + + document.getElementById('update_latest_version').innerHTML = (msgJSON.upgrade ? 'A new release is available (' + msgJSON.version + ').' : (msgJSON.version !== '' ? 'You are using latest version of Nynja.' : 'Encountered an error while updating, try again later.')); + + document.getElementById('update_current_version').innerHTML = 'current version ' + msgJSON.currentVersion; + + } //document.getElementById('update_version_electron').innerHTML = msgJSON.electron; //document.getElementById('update_version_chromium').innerHTML = msgJSON.chromium; //document.getElementById('update_version_nodejs').innerHTML = msgJSON.nodejs; @@ -157,11 +183,19 @@ function showReleaseNotes(type, msgJSON) { var releaseNotesVersions = Object.keys(releaseNotes); console.log('[DTU]', 'releaseNotesVersions : ',releaseNotesVersions) if(msgJSON.upgrade){ - releaseNotesVersions = [msgJSON.version]; - console.log('[DTU]', 'msgJSON.upgrade:',msgJSON.upgrade,releaseNotesVersions) - console.log('[DTU]', 'msgJSON.upgrade:',releaseNotes[msgJSON.version],msgJSON.notes) - releaseNotes[msgJSON.version] = {}; - releaseNotes[msgJSON.version]["content"] = msgJSON.notes; + + var app_ver_split = process.env.currentVersion.split('.'); + + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ + releaseNotesVersions = [msgJSON.version]; + console.log('[DTU]', 'msgJSON.upgrade:',msgJSON.upgrade,releaseNotesVersions) + console.log('[DTU]', 'msgJSON.upgrade:',releaseNotes[msgJSON.version],msgJSON.notes) + releaseNotes[msgJSON.version] = {}; + releaseNotes[msgJSON.version]["content"] = msgJSON.notes; + }else{ + releaseNotesVersions = [msgJSON.version]; + + } }else{ releaseNotesVersions = releaseNotesVersions.slice(releaseNotesVersions.indexOf(msgJSON.currentVersion)); console.log('[DTU]', 'msgJSON.upgrade:',msgJSON.upgrade, releaseNotesVersions) @@ -173,12 +207,12 @@ function showReleaseNotes(type, msgJSON) { // //msgJSON.version // return; // } - + Object.keys(releaseNotes[releaseNote]).map(function(buildNumber, bn){ console.log('[DTU]', 'releaseNotesVersions > releaseNote : ',releaseNote) var SPAN_NODE = document.createElement("SPAN"); SPAN_NODE.style = "font-size: 16px;font-weight: bold;"; - SPAN_NODE.innerText = "Version: " + releaseNote; + SPAN_NODE.innerText = "Version: " + releaseNote+ (buildNumber==="content"?"":" (Build: "+buildNumber+")"); document.getElementById('releases_info').appendChild(SPAN_NODE); @@ -186,14 +220,14 @@ function showReleaseNotes(type, msgJSON) { UL_NODE.style = "margin: 5px 0 5px 15px;list-style: none;list-style-type: disc;list-style-position: outside;"; console.log('[DTU]', 'releaseNotesVersions > releaseNotes[releaseNote] : ',releaseNotes[releaseNote]) - releaseNotes[releaseNote].content.map(function (note, j) { + releaseNotes[releaseNote][buildNumber].map(function (note, j) { var LI_NODE = document.createElement("LI"); LI_NODE.innerText = note; LI_NODE.style = "margin-left: 20px;"; UL_NODE.appendChild(LI_NODE); // console.log('[DTU]', (j + 1) , releaseNotes[releaseNote].content.length, LI_NODE, UL_NODE) - if ((j + 1) === releaseNotes[releaseNote].content.length) { + if ((j + 1) === releaseNotes[releaseNote][buildNumber].length) { // console.log('[DTU]', (j + 1) , releaseNotes[releaseNote].content.length, UL_NODE) document.getElementById('releases_info').appendChild(UL_NODE) @@ -202,6 +236,23 @@ function showReleaseNotes(type, msgJSON) { } } }); + }); +/*releaseNotes[releaseNote].content.map(function (note, j) { + + var LI_NODE = document.createElement("LI"); + LI_NODE.innerText = note; + LI_NODE.style = "margin-left: 20px;"; + UL_NODE.appendChild(LI_NODE); + // console.log('[DTU]', (j + 1) , releaseNotes[releaseNote].content.length, LI_NODE, UL_NODE) + if ((j + 1) === releaseNotes[releaseNote].content.length) { + + // console.log('[DTU]', (j + 1) , releaseNotes[releaseNote].content.length, UL_NODE) + document.getElementById('releases_info').appendChild(UL_NODE) + console.log('[DTU]', (j + 1) , document.getElementById('releases_info').innerHTML) + if ((i + 1) === Object.keys(releaseNotes).length) { + } + } + });*/ }) } function updateVersionNotesClick() { @@ -219,19 +270,27 @@ function updateInfoClick(msgJSON) { // // // document.getElementById('update-install').removeEventListener('click'); // document.getElementById('update_download_install').style = ''; // document.getElementById('update_download_install').addEventListener("click", updateConfClick) - if(msgJSON.upgradeType==="version"){ - // alert(1) - document.getElementById('update_download_install').innerHTML = 'Update'; - document.getElementById('update_download_install').style = ''; - document.getElementById('update_download_install').addEventListener("click", updateConfClick) - document.getElementById('releases_info_p').innerHTML = 'After finishing the download, NYNJA application will be restarted to apply new updates.'; + + var app_ver_split = process.env.currentVersion.split('.'); + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ + if(msgJSON.upgradeType==="version"){ + // alert(1) + document.getElementById('update_download_install').innerHTML = 'Update'; + document.getElementById('update_download_install').style = ''; + document.getElementById('update_download_install').addEventListener("click", updateConfClick) + document.getElementById('releases_info_p').innerHTML = 'After finishing the download, NYNJA application will be restarted to apply new updates.'; + }else{ + // alert(2) + + document.getElementById('update_download_install').innerHTML = 'Refresh Only'; + document.getElementById('update_refresh_only').style = ''; + document.getElementById('update_refresh_only').addEventListener("click", startDownloading) + document.getElementById('releases_info_p').innerHTML = 'By clicking on Confirm button, Nynja application will refresh to apply new updates.'; + } }else{ - // alert(2) - - document.getElementById('update_download_install').innerHTML = 'Refresh Only'; - document.getElementById('update_refresh_only').style = ''; - document.getElementById('update_refresh_only').addEventListener("click", startDownloading) - document.getElementById('releases_info_p').innerHTML = 'By clicking on Confirm button, Nynja application will refresh to apply new updates.'; + + document.getElementById('update_download_install').style = ''; + document.getElementById('update_download_install').addEventListener("click", updateConfClick) } } } @@ -258,6 +317,8 @@ function updateConfClick(msgJSON) {//alert(1); */ function startDownloading() { console.log('start-download') + var app_ver_split = process.env.currentVersion.split('.'); + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ //Update confirm and notify main process if(isVersionUpdate){ // alert('start1') @@ -270,7 +331,11 @@ function startDownloading() { appversionObj.action = 'update-build'; ipcRendererUpdateWeb.send('update-main', appversionObj); } + }else{ + document.getElementById('update-notify-box').style = ''; + ipcRendererUpdateWeb.send('update-main', 'update-start'); + } //ipcRendererUpdateWeb.send('update-main', 'update-start'); document.getElementById('update-info').style = 'display: none;'; document.getElementById('update-desc-box').style = 'display: none;'; @@ -495,13 +560,17 @@ if (process.env.currentVersion) { * Call api to get version(major), build(minor) * and latest notes for release */ + var app_ver_split = process.env.currentVersion.split('.'); + if(app_ver_split[0]!=='0'|| parseInt(app_ver_split[1])>3){ getAppVesrion(); setInterval(function(){ console.log('[DTU] CHECK APP VERSION AFTER 10 MINS') getAppVesrion(); - },10*60*1000) + },10*60*1000); + } function getAppVesrion(type='update-check'){ - fetch('https://desktop.staging.nynja.net/appversion', { + // fetch('https://desktop.staging.nynja.net/appversion', { + fetch('https://'+window.location.host+'/appversion', { cache: 'no-store', method: 'GET', headers: { diff --git a/lib/releaseNotes/releaseNotes.json b/lib/releaseNotes/releaseNotes.json index 3ef39ea489ae98504b17082142c043f890c06982..b586b03edddb129a46095a30d8769c302252c148 100644 --- a/lib/releaseNotes/releaseNotes.json +++ b/lib/releaseNotes/releaseNotes.json @@ -1,4 +1,18 @@ { + "0.34.0": { + "content": [ + "Added a badge notification for new message on the \"return to chat\" button", + "Show active speakers when a media is on full screen", + "Show Current Selected (active) Chat in show unread chats mode", + "Add a notification for new messages on the title of the tab", + "Updated time zones list for calendar in new meeting", + "New message indicator when chat scrolled up", + "Make the active screen share icon on the title clickable to go to screen share page", + "When editing the group participants/admins the action buttons should be always shown", + "Left menu: expanding Settings should scroll down", + "New meeting - add 2 submenus, start meeting now and schedule meeting" + ] + }, "0.33.0": { "content": [ "New feature and shortcut for Scheduled meetings", @@ -17,7 +31,7 @@ "Calling: Member name view - larger font and fixed size for all members", "Conference Call: Made the icons after the member name buttons", "Members sorting: Camera and voice are in one group now", - "New meeting title should be editable when an existing group is selected" + "New meeting title is editable when an existing group is selected" ] }, "0.32.1": { diff --git a/lib/releaseNotes/releaseNotesDesktop.json b/lib/releaseNotes/releaseNotesDesktop.json index b924862f06452b7fbf00eac04380991f2a57f1c4..f90059a8f4ea1907fd9add771462e4f5f9e61c23 100644 --- a/lib/releaseNotes/releaseNotesDesktop.json +++ b/lib/releaseNotes/releaseNotesDesktop.json @@ -1,11 +1,11 @@ { "0.4.1": { - "content": [ + "1589451878": [ "Stability improvements" ] }, "0.4.0": { - "content": [ + "1589451878": [ "Electron Framework updated to latest version 8.0.1", "Fixed select all keyboard shortcut (command + A) issue in Mac OS", "Handled mic and camera permission issue on Mac OS", @@ -19,7 +19,7 @@ ] }, "0.3.8": { - "content": [ + "1589451878": [ "Updated login page design.", "Added download guideline in app update process.", "Added release notes in update popup.", @@ -62,4 +62,4 @@ "Added \"Invite by email\" (through add contact)." ] } -} \ No newline at end of file +} diff --git a/releases/dev/nynja-app-web.yaml b/releases/dev/nynja-app-web.yaml index 58f020026e368924d0569cca868a671a69052a83..e41e04f5d7d2c077033cc041901759a5db14a6c2 100644 --- a/releases/dev/nynja-app-web.yaml +++ b/releases/dev/nynja-app-web.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: nynja-app-web - version: 0.2.1 + version: 0.2.7 values: replicaCount: 1 auth: diff --git a/releases/prod/nynja-app-desktop.yaml b/releases/prod/nynja-app-desktop.yaml index a70feb13d42176a182d26b27e1508ad0dd888a90..f49f1d0d53e299cc237e0ffcf1ad0b48f5378ca1 100644 --- a/releases/prod/nynja-app-desktop.yaml +++ b/releases/prod/nynja-app-desktop.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: nynja-app-desktop - version: 0.2.6 + version: 0.2.10 values: replicaCount: 3 auth: diff --git a/releases/prod/nynja-app-web.yaml b/releases/prod/nynja-app-web.yaml index bbbbe838daf1d9944d392fdec2960a602d5210bd..d3cae4da7d14b7540586983ccfce8478910dbbd0 100644 --- a/releases/prod/nynja-app-web.yaml +++ b/releases/prod/nynja-app-web.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: nynja-app-web - version: 0.2.1 + version: 0.2.7 values: replicaCount: 3 auth: diff --git a/releases/staging/nynja-app-desktop.yaml b/releases/staging/nynja-app-desktop.yaml index c845934a33805f4bb2c1960d74058bd27fd548dc..3086e4c3b2954b223143f44c2a51bec7c4cf7a64 100644 --- a/releases/staging/nynja-app-desktop.yaml +++ b/releases/staging/nynja-app-desktop.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: nynja-app-desktop - version: 0.2.6 + version: 0.2.10 values: replicaCount: 3 auth: diff --git a/releases/staging/nynja-app-web.yaml b/releases/staging/nynja-app-web.yaml index 34450254170b671d3dc8326cda81efe68659e25f..b313316dd08523df755ad49dc8cf8b7ef5324c6e 100644 --- a/releases/staging/nynja-app-web.yaml +++ b/releases/staging/nynja-app-web.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: nynja-app-web - version: 0.2.1 + version: 0.2.7 values: replicaCount: 3 auth: diff --git a/src/componets/Urlify/Urlify.js b/src/componets/Urlify/Urlify.js index d7b5d17342015f98b4d1313f9aace7aa4ac8001c..7d4cc46e03b5bb8dca3e60c5f811fc7b11142a6a 100644 --- a/src/componets/Urlify/Urlify.js +++ b/src/componets/Urlify/Urlify.js @@ -59,15 +59,20 @@ class Urlify extends Component { class Mention extends Tag { toReact() { + const alias = this.getContent(true); const attributes = { pathname: `/contacts/${this.params.accountId}`, + state: { + id: this.params.accountId, + alias, + } }; if (noLinkPersistent) { - return `@${this.getContent(true)}`; + return `@${alias}`; } - return @{this.getContent(true)}; + return @{alias}; } } diff --git a/src/containers/ActionMenu/ActionMenu.js b/src/containers/ActionMenu/ActionMenu.js index eb514591fee60c3d548bfe576f2be6a07b61fbc5..1491ef04e841052f98933048d7594747f2b5f8b6 100644 --- a/src/containers/ActionMenu/ActionMenu.js +++ b/src/containers/ActionMenu/ActionMenu.js @@ -197,11 +197,11 @@ class LeftMenu extends Component { - - - - - + {/**/} + {/* */} + {/* */} + {/* */} + {/**/} diff --git a/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js b/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js index e944d2a9ca1f6959d046cd91f5d415bf49f0a00d..b4b5db3363483bb37ecea20aecd0beb6bed792ee 100644 --- a/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js +++ b/src/containers/Panels/ContactDetailsPanel/ContactDetailsPanel.js @@ -342,6 +342,9 @@ class ContactDetailsPanel extends Component { } else if (contact.phone_id) { this.props.actions.requestContact({ ...contact, introductionText: textToSend, addMethod }); this.setState({ introductionText: '' }); + } else if (router.params.phone_id) { + this.props.actions.requestContact({ phone_id: router.params.phone_id, introductionText: textToSend, addMethod }); + this.setState({ introductionText: '' }); } } diff --git a/src/core/configs/Constants.config.js b/src/core/configs/Constants.config.js index 02b354b7b7bba0637725c3c2279b9c5f265467c0..82bf5feab205ad2fb65fe9dbac3e145591d9d2b8 100644 --- a/src/core/configs/Constants.config.js +++ b/src/core/configs/Constants.config.js @@ -1,5 +1,5 @@ const constants = { - version: '0.33.0', + version: '0.34.0', buildNumber: `${__APP_VERSION__}`, historyPageSize: 30, storagePageSize: 50, diff --git a/src/core/resource/conversations/modules/Conversations.module.js b/src/core/resource/conversations/modules/Conversations.module.js index 9807c970b1ab44bd2df8315856a625df74825c03..6ebabfdc5ab778abb4064296379e43610633fde8 100644 --- a/src/core/resource/conversations/modules/Conversations.module.js +++ b/src/core/resource/conversations/modules/Conversations.module.js @@ -350,6 +350,11 @@ const makeScheduledMeetingsSelector = () => createSelector( * @returns {Boolean} */ const getUnreadStatusForCall = (state) => { + const init = profileSelectors.isInit(state); + if (!init) { + return false; + } + const callInfo = audioVideoSelectors.getCallData(state); if (callInfo && callInfo.conferenceId) { const { chatRoomId, p2p, from } = callInfo; diff --git a/src/core/resource/messages/groups/sagas/GroupsMessages.saga.js b/src/core/resource/messages/groups/sagas/GroupsMessages.saga.js index 3e89894dc49268f0abfc64f4a74d436fb37ad315..f1e9479f446559dd6149d9741cd5b9c8031f3db7 100644 --- a/src/core/resource/messages/groups/sagas/GroupsMessages.saga.js +++ b/src/core/resource/messages/groups/sagas/GroupsMessages.saga.js @@ -680,11 +680,11 @@ function* cursorWatcher() { yield call(cursor, { phoneId: phoneId, groupId: groupId, lastReadMessageId: activeGroupLastMsg, state: globalState }); const { autoTranslateIncoming, autoTranscribe } = yield select(roomListSelectors.getMemberSettings, groupId, phoneId); - if (autoTranslateIncoming && toTranslate.length > 0) { + if (autoTranslateIncoming && toTranslate && toTranslate.length > 0) { yield all(toTranslate.map(m => put(translateActions.translate(m)))); } - if (autoTranscribe && toTranscribe.length > 0) { + if (autoTranscribe && toTranscribe && toTranscribe.length > 0) { yield all(toTranscribe.map(m => put(transcribeActions.transcribe({ msg: m })))); } } diff --git a/src/core/resource/messages/personal/sagas/PersonalMessages.saga.js b/src/core/resource/messages/personal/sagas/PersonalMessages.saga.js index a770dbc29aa6fe61cbbccc6f8a4918262e7d85d3..d2cac76e8ffba6721fa3d9e260fc46bf31eb3d1a 100644 --- a/src/core/resource/messages/personal/sagas/PersonalMessages.saga.js +++ b/src/core/resource/messages/personal/sagas/PersonalMessages.saga.js @@ -566,11 +566,11 @@ function* cursorWatcher() { if (dialog.unread_amount > 0 || dialog.p2p_unread_amount > 0) { yield call(cursor, activeDialogId); - if (request.payload.toTranslate.length > 0) { + if (request.payload.toTranslate && request.payload.toTranslate.length > 0) { yield all(request.payload.toTranslate.map(m => put(translateActions.translate(m)))); } - if (request.payload.toTranscribe.length > 0) { + if (request.payload.toTranscribe && request.payload.toTranscribe.length > 0) { yield all(request.payload.toTranscribe.map(m => put(transcribeActions.transcribe({ msg: m })))); } } diff --git a/src/pages/JoinByLink/JoinByLink.js b/src/pages/JoinByLink/JoinByLink.js index f51df24aa2126323a524a67b5848b62e679039f8..25ce7a82aef1cb61f02e68be04b428dfea8743a0 100644 --- a/src/pages/JoinByLink/JoinByLink.js +++ b/src/pages/JoinByLink/JoinByLink.js @@ -5,7 +5,7 @@ import stylesFunc from './JoinByLink.styles'; import { connect } from 'react-redux'; import { profileSelectors } from 'Resource/profile'; import { bindActionCreators } from 'redux'; -import { BrowserView, isMobileOnly, isAndroid, isIOS, isMobile } from 'react-device-detect'; +import { BrowserView, isMobileOnly, isAndroid, isIOS, isMobile, isMobileSafari } from 'react-device-detect'; import { JoinByLinkForm } from '../../containers'; import { LinkError, AudioVideo, AudioVideoAnonymousHeader, LoadingSpinner, NynjaHelmet } from '../../componets'; import { @@ -70,7 +70,7 @@ class JoinByLink extends Component { const agent = navigator.userAgent; if (!(isSafari || isChrome || isFirefox || isOpera || (isEdge && agent.indexOf("Edg/") > -1))){ this.openModal('isBrowserModalOpen'); - } else if (isSafari && browserVersion === '13.1') { + } else if (isSafari && browserVersion === '13.1' && !isMobileSafari) { this.setState({ showSafariWarning: true }); } diff --git a/src/pages/NinjaApp/NinjaApp.js b/src/pages/NinjaApp/NinjaApp.js index de923a9078f7b939f1cc3e0bbbd7f247de0e086f..af6d8d83ac69c41f63fe2151cb5d955dd9d06410 100644 --- a/src/pages/NinjaApp/NinjaApp.js +++ b/src/pages/NinjaApp/NinjaApp.js @@ -11,7 +11,7 @@ import { bindActionCreators } from 'redux'; import { AudioVideo } from '../../componets'; import { requestNotificationPermission } from '../../core/managers/browserNotificationsManager'; import { withTranslation } from 'react-i18next'; -import { isSafari, browserVersion } from "react-device-detect"; +import { isSafari, browserVersion, isMobileSafari } from "react-device-detect"; import ConfirmDialog from "Components/Modals/ConfirmDialog/ConfirmDialog"; const styles = theme => (stylesFunc(theme, darkBgImg)); @@ -36,7 +36,7 @@ export class Dashboard extends Component { } checkSafari() { - if (isSafari && browserVersion === '13.1') { + if (isSafari && browserVersion === '13.1' && !isMobileSafari) { this.setState({ showSafariWarning: true }); } }