|
@@ -11,6 +11,7 @@ import { IDeeplinkingConfig } from '../../base/config/configType';
|
11
|
11
|
import { getLegalUrls } from '../../base/config/functions.any';
|
12
|
12
|
import { isSupportedBrowser } from '../../base/environment/environment';
|
13
|
13
|
import { translate, translateToHTML } from '../../base/i18n/functions';
|
|
14
|
+import Platform from '../../base/react/Platform.web';
|
14
|
15
|
import { withPixelLineHeight } from '../../base/styles/functions.web';
|
15
|
16
|
import Button from '../../base/ui/components/web/Button';
|
16
|
17
|
import { BUTTON_TYPES } from '../../base/ui/constants.any';
|
|
@@ -85,6 +86,14 @@ const DeepLinkingDesktopPage: React.FC<WithTranslation> = ({ t }) => {
|
85
|
86
|
const deeplinkingCfg = useSelector((state: IReduxState) =>
|
86
|
87
|
state['features/base/config']?.deeplinking || {} as IDeeplinkingConfig);
|
87
|
88
|
|
|
89
|
+ const generateDownloadURL = useCallback(() => {
|
|
90
|
+ const downloadCfg = deeplinkingCfg.desktop?.download;
|
|
91
|
+
|
|
92
|
+ if (downloadCfg) {
|
|
93
|
+ return downloadCfg[Platform.OS as keyof typeof downloadCfg];
|
|
94
|
+ }
|
|
95
|
+ }, [ deeplinkingCfg ]);
|
|
96
|
+
|
88
|
97
|
const legalUrls = useSelector(getLegalUrls);
|
89
|
98
|
|
90
|
99
|
const { hideLogo, desktop } = deeplinkingCfg;
|
|
@@ -134,6 +143,16 @@ const DeepLinkingDesktopPage: React.FC<WithTranslation> = ({ t }) => {
|
134
|
143
|
: t(`${_TNS}.descriptionWithoutWeb`, { app: desktop?.appName })
|
135
|
144
|
}
|
136
|
145
|
</div>
|
|
146
|
+ <div className = { styles.descriptionLabel }>
|
|
147
|
+ {
|
|
148
|
+ t(`${_TNS}.noDesktopApp`)
|
|
149
|
+ }
|
|
150
|
+ <a href = { generateDownloadURL() }>
|
|
151
|
+ {
|
|
152
|
+ t(`${_TNS}.downloadApp`)
|
|
153
|
+ }
|
|
154
|
+ </a>
|
|
155
|
+ </div>
|
137
|
156
|
<div className = { styles.buttonsContainer }>
|
138
|
157
|
<Button
|
139
|
158
|
label = { t(`${_TNS}.tryAgainButton`) }
|