[MM-54591] Use getVersion endpoint to report app name (#2862)
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import {ipcRenderer, contextBridge, app} from 'electron';
|
import {ipcRenderer, contextBridge} from 'electron';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
GET_LANGUAGE_INFORMATION,
|
GET_LANGUAGE_INFORMATION,
|
||||||
@@ -110,8 +110,6 @@ contextBridge.exposeInMainWorld('mas', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
contextBridge.exposeInMainWorld('desktop', {
|
contextBridge.exposeInMainWorld('desktop', {
|
||||||
getAppName: () => app.name,
|
|
||||||
|
|
||||||
quit: (reason, stack) => ipcRenderer.send(QUIT, reason, stack),
|
quit: (reason, stack) => ipcRenderer.send(QUIT, reason, stack),
|
||||||
openAppMenu: () => ipcRenderer.send(OPEN_APP_MENU),
|
openAppMenu: () => ipcRenderer.send(OPEN_APP_MENU),
|
||||||
closeServersDropdown: () => ipcRenderer.send(CLOSE_SERVERS_DROPDOWN),
|
closeServersDropdown: () => ipcRenderer.send(CLOSE_SERVERS_DROPDOWN),
|
||||||
|
@@ -10,17 +10,24 @@ import UpdateWrapper from './Update/UpdateWrapper';
|
|||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
activeItem?: DownloadedItem;
|
activeItem?: DownloadedItem;
|
||||||
item: DownloadedItem;
|
item: DownloadedItem;
|
||||||
|
appName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DownloadsDropdownItem = ({item, activeItem}: OwnProps) => {
|
const DownloadsDropdownItem = ({item, activeItem, appName}: OwnProps) => {
|
||||||
if (item.type === 'update' && item.state !== 'progressing') {
|
if (item.type === 'update' && item.state !== 'progressing') {
|
||||||
return <UpdateWrapper item={item}/>;
|
return (
|
||||||
|
<UpdateWrapper
|
||||||
|
item={item}
|
||||||
|
appName={appName}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DownloadsDropdownItemFile
|
<DownloadsDropdownItemFile
|
||||||
item={item}
|
item={item}
|
||||||
activeItem={activeItem}
|
activeItem={activeItem}
|
||||||
|
appName={appName}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@@ -15,9 +15,10 @@ import Thumbnail from './Thumbnail';
|
|||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
activeItem?: DownloadedItem;
|
activeItem?: DownloadedItem;
|
||||||
item: DownloadedItem;
|
item: DownloadedItem;
|
||||||
|
appName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DownloadsDropdownItemFile = ({item, activeItem}: OwnProps) => {
|
const DownloadsDropdownItemFile = ({item, activeItem, appName}: OwnProps) => {
|
||||||
const [threeDotButtonVisible, setThreeDotButtonVisible] = useState(false);
|
const [threeDotButtonVisible, setThreeDotButtonVisible] = useState(false);
|
||||||
const translate = useIntl();
|
const translate = useIntl();
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ const DownloadsDropdownItemFile = ({item, activeItem}: OwnProps) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const itemFilename = item.type === 'update' ?
|
const itemFilename = item.type === 'update' ?
|
||||||
translate.formatMessage({id: 'renderer.downloadsDropdown.Update.MattermostVersionX', defaultMessage: `{appName} version ${item.filename}`}, {version: item.filename, appName: window.desktop.getAppName()}) :
|
translate.formatMessage({id: 'renderer.downloadsDropdown.Update.MattermostVersionX', defaultMessage: `{appName} version ${item.filename}`}, {version: item.filename, appName}) :
|
||||||
item.filename;
|
item.filename;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@@ -12,9 +12,10 @@ import Thumbnail from '../Thumbnail';
|
|||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
item: DownloadedItem;
|
item: DownloadedItem;
|
||||||
|
appName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const UpdateAvailable = ({item}: OwnProps) => {
|
const UpdateAvailable = ({item, appName}: OwnProps) => {
|
||||||
const onButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
const onButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
||||||
e?.preventDefault?.();
|
e?.preventDefault?.();
|
||||||
window.desktop.downloadsDropdown.startUpdateDownload();
|
window.desktop.downloadsDropdown.startUpdateDownload();
|
||||||
@@ -36,7 +37,7 @@ const UpdateAvailable = ({item}: OwnProps) => {
|
|||||||
defaultMessage={`A new version of the {appName} Desktop App (version ${item.filename}) is available to install.`}
|
defaultMessage={`A new version of the {appName} Desktop App (version ${item.filename}) is available to install.`}
|
||||||
values={{
|
values={{
|
||||||
version: item.filename,
|
version: item.filename,
|
||||||
appName: window.desktop.getAppName(),
|
appName,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -15,9 +15,10 @@ import FileSizeAndStatus from '../FileSizeAndStatus';
|
|||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
item: DownloadedItem;
|
item: DownloadedItem;
|
||||||
|
appName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const UpdateAvailable = ({item}: OwnProps) => {
|
const UpdateAvailable = ({item, appName}: OwnProps) => {
|
||||||
const translate = useIntl();
|
const translate = useIntl();
|
||||||
|
|
||||||
const onButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
const onButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
||||||
@@ -31,7 +32,7 @@ const UpdateAvailable = ({item}: OwnProps) => {
|
|||||||
<Thumbnail item={item}/>
|
<Thumbnail item={item}/>
|
||||||
<div className='DownloadsDropdown__File__Body__Details'>
|
<div className='DownloadsDropdown__File__Body__Details'>
|
||||||
<div className='DownloadsDropdown__File__Body__Details__Filename'>
|
<div className='DownloadsDropdown__File__Body__Details__Filename'>
|
||||||
{translate.formatMessage({id: 'renderer.downloadsDropdown.Update.MattermostVersionX', defaultMessage: `{appName} version ${item.filename}`}, {version: item.filename, appName: window.desktop.getAppName()})}
|
{translate.formatMessage({id: 'renderer.downloadsDropdown.Update.MattermostVersionX', defaultMessage: `{appName} version ${item.filename}`}, {version: item.filename, appName})}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={classNames('DownloadsDropdown__File__Body__Details__FileSizeAndStatus', {
|
className={classNames('DownloadsDropdown__File__Body__Details__FileSizeAndStatus', {
|
||||||
|
@@ -11,14 +11,25 @@ import 'renderer/css/components/Button.scss';
|
|||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
item: DownloadedItem;
|
item: DownloadedItem;
|
||||||
|
appName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const UpdateWrapper = ({item}: OwnProps) => {
|
const UpdateWrapper = ({item, appName}: OwnProps) => {
|
||||||
if (item.state === 'available') {
|
if (item.state === 'available') {
|
||||||
return <UpdateAvailable item={item}/>;
|
return (
|
||||||
|
<UpdateAvailable
|
||||||
|
item={item}
|
||||||
|
appName={appName}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (item.state === 'completed') {
|
if (item.state === 'completed') {
|
||||||
return <UpdateDownloaded item={item}/>;
|
return (
|
||||||
|
<UpdateDownloaded
|
||||||
|
item={item}
|
||||||
|
appName={appName}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
@@ -18,6 +18,7 @@ type State = {
|
|||||||
darkMode?: boolean;
|
darkMode?: boolean;
|
||||||
windowBounds?: Electron.Rectangle;
|
windowBounds?: Electron.Rectangle;
|
||||||
item?: DownloadedItem;
|
item?: DownloadedItem;
|
||||||
|
appName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
class DownloadsDropdown extends React.PureComponent<Record<string, never>, State> {
|
class DownloadsDropdown extends React.PureComponent<Record<string, never>, State> {
|
||||||
@@ -40,6 +41,9 @@ class DownloadsDropdown extends React.PureComponent<Record<string, never>, State
|
|||||||
window.desktop.downloadsDropdown.focus();
|
window.desktop.downloadsDropdown.focus();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
window.desktop.getVersion().then(({name}) => {
|
||||||
|
this.setState({appName: name});
|
||||||
|
});
|
||||||
window.desktop.downloadsDropdown.requestInfo();
|
window.desktop.downloadsDropdown.requestInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,6 +85,10 @@ class DownloadsDropdown extends React.PureComponent<Record<string, never>, State
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
if (!this.state.appName) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<IntlProvider>
|
<IntlProvider>
|
||||||
<div
|
<div
|
||||||
@@ -115,6 +123,7 @@ class DownloadsDropdown extends React.PureComponent<Record<string, never>, State
|
|||||||
item={downloadItem}
|
item={downloadItem}
|
||||||
key={downloadItem.filename}
|
key={downloadItem.filename}
|
||||||
activeItem={this.state.item}
|
activeItem={this.state.item}
|
||||||
|
appName={this.state.appName || ''}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
@@ -31,8 +31,6 @@ declare global {
|
|||||||
getThumbnailLocation: (location: string) => Promise<string>;
|
getThumbnailLocation: (location: string) => Promise<string>;
|
||||||
};
|
};
|
||||||
desktop: {
|
desktop: {
|
||||||
getAppName: () => string;
|
|
||||||
|
|
||||||
quit: (reason: string, stack: string) => void;
|
quit: (reason: string, stack: string) => void;
|
||||||
openAppMenu: () => void;
|
openAppMenu: () => void;
|
||||||
closeServersDropdown: () => void;
|
closeServersDropdown: () => void;
|
||||||
|
Reference in New Issue
Block a user