Disabled Clear All button when downloads include only the application update and when they also include files, clear only the files (#2294)
This commit is contained in:
@@ -157,10 +157,16 @@ export class DownloadsManager extends JsonFileManager<DownloadedItems> {
|
|||||||
clearDownloadsDropDown = () => {
|
clearDownloadsDropDown = () => {
|
||||||
log.debug('DownloadsManager.clearDownloadsDropDown');
|
log.debug('DownloadsManager.clearDownloadsDropDown');
|
||||||
|
|
||||||
this.saveAll({});
|
if (this.hasUpdate()) {
|
||||||
this.fileSizes = new Map();
|
this.saveAll({
|
||||||
|
[APP_UPDATE_KEY]: this.downloads[APP_UPDATE_KEY],
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.saveAll({});
|
||||||
|
this.toggleAppMenuDownloadsEnabled(false);
|
||||||
|
}
|
||||||
this.closeDownloadsDropdown();
|
this.closeDownloadsDropdown();
|
||||||
this.toggleAppMenuDownloadsEnabled(false);
|
this.fileSizes = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
showFileInFolder = (item?: DownloadedItem) => {
|
showFileInFolder = (item?: DownloadedItem) => {
|
||||||
@@ -282,6 +288,10 @@ export class DownloadsManager extends JsonFileManager<DownloadedItems> {
|
|||||||
WindowManager.sendToRenderer(HIDE_DOWNLOADS_DROPDOWN_BUTTON_BADGE);
|
WindowManager.sendToRenderer(HIDE_DOWNLOADS_DROPDOWN_BUTTON_BADGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hasUpdate = () => {
|
||||||
|
return Boolean(this.downloads[APP_UPDATE_KEY]?.type === DownloadItemTypeEnum.UPDATE);
|
||||||
|
}
|
||||||
|
|
||||||
private markFileAsDeleted = (item: DownloadedItem) => {
|
private markFileAsDeleted = (item: DownloadedItem) => {
|
||||||
const fileId = this.getDownloadedFileId(item);
|
const fileId = this.getDownloadedFileId(item);
|
||||||
const file = this.downloads[fileId];
|
const file = this.downloads[fileId];
|
||||||
|
@@ -158,6 +158,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.disabled {
|
&.disabled {
|
||||||
|
background: transparent;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
color: rgba(63, 67, 80, 0.32);
|
color: rgba(63, 67, 80, 0.32);
|
||||||
}
|
}
|
||||||
@@ -438,8 +439,15 @@ body {
|
|||||||
background: #1f1f1f;
|
background: #1f1f1f;
|
||||||
border: 1px solid rgba(221, 223, 228, 0.16);
|
border: 1px solid rgba(221, 223, 228, 0.16);
|
||||||
|
|
||||||
.DownloadsDropdown__header .DownloadsDropdown__Downloads {
|
.DownloadsDropdown__header {
|
||||||
color: #DDD;
|
.DownloadsDropdown__Downloads {
|
||||||
|
color: #DDD;
|
||||||
|
}
|
||||||
|
.DownloadsDropdown__clearAllButton {
|
||||||
|
&.disabled {
|
||||||
|
color: rgba(63, 67, 80, 0.52);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.DownloadsDropdown__divider {
|
.DownloadsDropdown__divider {
|
||||||
|
@@ -74,7 +74,13 @@ class DownloadsDropdown extends React.PureComponent<Record<string, never>, State
|
|||||||
}
|
}
|
||||||
|
|
||||||
clearAll = () => {
|
clearAll = () => {
|
||||||
window.postMessage({type: REQUEST_CLEAR_DOWNLOADS_DROPDOWN}, window.location.href);
|
if (!this.clearAllButtonDisabled()) {
|
||||||
|
window.postMessage({type: REQUEST_CLEAR_DOWNLOADS_DROPDOWN}, window.location.href);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
clearAllButtonDisabled = () => {
|
||||||
|
return this.state.downloads?.length === 1 && this.state.downloads[0]?.type === 'update';
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@@ -93,7 +99,9 @@ class DownloadsDropdown extends React.PureComponent<Record<string, never>, State
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={'DownloadsDropdown__clearAllButton'}
|
className={classNames('DownloadsDropdown__clearAllButton', {
|
||||||
|
disabled: this.clearAllButtonDisabled(),
|
||||||
|
})}
|
||||||
onClick={this.clearAll}
|
onClick={this.clearAll}
|
||||||
>
|
>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
|
Reference in New Issue
Block a user