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:
Tasos Boulis
2022-10-20 16:20:51 +03:00
committed by GitHub
parent 48869a654f
commit bbf162e7d0
3 changed files with 33 additions and 7 deletions

View File

@@ -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];

View File

@@ -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 {

View File

@@ -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