diff --git a/wowup-electron/package.json b/wowup-electron/package.json index a516b632..38c9930b 100644 --- a/wowup-electron/package.json +++ b/wowup-electron/package.json @@ -106,6 +106,7 @@ "@angular/platform-browser": "~10.1.1", "@angular/platform-browser-dynamic": "~10.1.1", "@angular/router": "~10.1.1", + "@types/lodash": "4.14.161", "adm-zip": "0.4.16", "compare-versions": "3.6.0", "conf": "7.1.1", diff --git a/wowup-electron/src/app/pages/get-addons/get-addons.component.ts b/wowup-electron/src/app/pages/get-addons/get-addons.component.ts index 4105e541..af336cfe 100644 --- a/wowup-electron/src/app/pages/get-addons/get-addons.component.ts +++ b/wowup-electron/src/app/pages/get-addons/get-addons.component.ts @@ -1,6 +1,4 @@ import { Component, OnInit } from '@angular/core'; -import { PotentialAddonStatusColumnComponent } from 'app/components/potential-addon-status-column/potential-addon-status-column.component'; -import { PotentialAddonTableColumnComponent } from 'app/components/potential-addon-table-column/potential-addon-table-column.component'; import { WowClientType } from 'app/models/warcraft/wow-client-type'; import { ColumnState } from 'app/models/wowup/column-state'; import { PotentialAddon } from 'app/models/wowup/potential-addon'; diff --git a/wowup-electron/src/app/pages/my-addons/my-addons.component.ts b/wowup-electron/src/app/pages/my-addons/my-addons.component.ts index 87968ad0..4365f503 100644 --- a/wowup-electron/src/app/pages/my-addons/my-addons.component.ts +++ b/wowup-electron/src/app/pages/my-addons/my-addons.component.ts @@ -68,17 +68,23 @@ export class MyAddonsComponent implements OnInit, OnDestroy { this.addonService.addonInstalled$.subscribe((evt) => { console.log('UPDATE') - const addons: MyAddonsListItem[] = [].concat(this._displayAddonsSrc.value); - const listItemIdx = addons.findIndex(li => li.addon.id === evt.addon.id); + let listItems: MyAddonsListItem[] = [].concat(this._displayAddonsSrc.value); + const listItemIdx = listItems.findIndex(li => li.addon.id === evt.addon.id); const listItem = this.createAddonListItem(evt.addon); listItem.isInstalling = evt.installState === AddonInstallState.Installing || evt.installState === AddonInstallState.Downloading; listItem.statusText = this.getInstallStateText(evt.installState); listItem.installProgress = evt.progress; - console.log(listItem); - addons[listItemIdx] = listItem; + if (listItemIdx === -1) { + listItems.push(listItem); + } else { + listItems[listItemIdx] = listItem; + } + + listItems = this.sortListItems(listItems); + this._ngZone.run(() => { - this._displayAddonsSrc.next(addons); + this._displayAddonsSrc.next(listItems); }); }); @@ -234,7 +240,11 @@ export class MyAddonsComponent implements OnInit, OnDestroy { private formatAddons(addons: Addon[]): MyAddonsListItem[] { const listItems = addons.map(addon => this.createAddonListItem(addon)); - return _.sortBy(listItems, ['displayState', 'name']); + return this.sortListItems(listItems); + } + + private sortListItems(listItems: MyAddonsListItem[]) { + return _.orderBy(listItems, ['displayState', 'addon.name']); } private createAddonListItem(addon: Addon) { diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index d344e006..5cf4e2ad 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -337,10 +337,8 @@ export class AddonService { } private getLatestFile(searchResult: AddonSearchResult, channelType: AddonChannelType): AddonSearchResultFile { - return _.flow( - _.filter((f: AddonSearchResultFile) => f.channelType <= channelType), - _.first - )(searchResult.files); + let files = _.filter(searchResult.files, (f: AddonSearchResultFile) => f.channelType <= channelType); + return _.first(files); } private createAddon(