diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 760fc8836b..8b649412bc 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -441,5 +441,7 @@ "deletionTypeTitle": "Deletion Type", "deleteJustForMe": "Delete just for me", "messageDeletedPlaceholder": "This message has been deleted", - "messageDeleted": "Message deleted" + "messageDeleted": "Message deleted", + "surveyTitle": "Take our Session Survey", + "goToOurSurvey": "Go to our survey" } diff --git a/package.json b/package.json index 7eac174a15..a373f893a9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "session-desktop", "productName": "Session", "description": "Private messaging from your desktop", - "version": "1.7.2", + "version": "1.7.3", "license": "GPL-3.0", "author": { "name": "Loki Project", diff --git a/stylesheets/_session.scss b/stylesheets/_session.scss index a594052e0d..285e29ef23 100644 --- a/stylesheets/_session.scss +++ b/stylesheets/_session.scss @@ -1094,7 +1094,8 @@ input { display: flex; flex-direction: column; margin: $session-margin-sm; - align-items: flex-start; + align-items: center; + min-width: 10vw; position: relative; .onion__node { @@ -1121,6 +1122,7 @@ input { } .onion__node__country { margin: $session-margin-sm; + min-width: 150px; } .onion__growing-icon { diff --git a/ts/components/dialog/OnionStatusPathDialog.tsx b/ts/components/dialog/OnionStatusPathDialog.tsx index 42b94ff9f8..8b3624a2e7 100644 --- a/ts/components/dialog/OnionStatusPathDialog.tsx +++ b/ts/components/dialog/OnionStatusPathDialog.tsx @@ -19,6 +19,8 @@ import { Flex } from '../basic/Flex'; import { SessionIcon, SessionIconButton } from '../session/icon'; import { SessionSpinner } from '../session/SessionSpinner'; import { SessionWrapperModal } from '../session/SessionWrapperModal'; +// tslint:disable-next-line: no-submodule-imports +import useHover from 'react-use/lib/useHover'; export type StatusLightType = { glowStartDelay: number; @@ -26,6 +28,25 @@ export type StatusLightType = { color?: string; }; +const OnionCountryDisplay = ({ + index, + labelText, + snodeIp, +}: { + snodeIp?: string; + labelText: string; + index: number; +}) => { + const element = (hovered: boolean) => ( +
+ {hovered && snodeIp ? snodeIp : labelText} +
+ ); + const [hoverable] = useHover(element); + + return hoverable; +}; + const OnionPathModalInner = () => { const onionPath = useSelector(getFirstOnionPath); const isOnline = useSelector(getIsOnline); @@ -69,14 +90,12 @@ const OnionPathModalInner = () => { {nodes.map((snode: Snode | any, index: number) => { let labelText = snode.label ? snode.label - : countryLookup.byIso(ip2country(snode.ip))?.country; + : `${countryLookup.byIso(ip2country(snode.ip))?.country}`; if (!labelText) { labelText = window.i18n('unknownCountry'); } return labelText ? ( -
- {labelText} -
+ ) : null; })} diff --git a/ts/components/session/settings/SessionSettings.tsx b/ts/components/session/settings/SessionSettings.tsx index 92a9196ef0..05db39c865 100644 --- a/ts/components/session/settings/SessionSettings.tsx +++ b/ts/components/session/settings/SessionSettings.tsx @@ -463,6 +463,23 @@ class SettingsViewInner extends React.Component { info: (value: number) => `${value}%`, }, }, + { + id: 'session-survey', + title: window.i18n('surveyTitle'), + description: undefined, + hidden: false, + type: SessionSettingType.Button, + category: SessionSettingCategory.Appearance, + setFn: undefined, + comparisonValue: undefined, + onClick: () => { + void shell.openExternal('https://getsession.org/survey'); + }, + content: { + buttonText: window.i18n('goToOurSurvey'), + buttonColor: SessionButtonColor.Primary, + }, + }, { id: 'help-translation', title: window.i18n('translation'),