fix duplicate patch updates, add scroll button to setup success (#1800)

* fix duplicate patch updates, add scroll button to setup success

* update path

* update patch

* update patch
This commit is contained in:
Matt Hill
2022-09-14 11:24:22 -06:00
committed by GitHub
parent 67743b37bb
commit 40d47c9f44
11 changed files with 86 additions and 50 deletions

View File

@@ -1,7 +1,7 @@
<ng-container *ngIf="pkg$ | async as pkg">
<app-show-header [pkg]="pkg"></app-show-header>
<ion-content *ngIf="pkg | toDependencies | async as dependencies">
<ion-content *ngIf="pkg | toDependencies as dependencies">
<ion-item-group *ngIf="pkg | toStatus as status">
<!-- ** status ** -->
<app-show-status

View File

@@ -6,7 +6,6 @@ import {
PackageDataEntry,
PackageMainStatus,
PackageState,
UIMarketplaceData,
} from 'src/app/services/patch-db/data-model'
import {
PackageStatus,
@@ -16,11 +15,7 @@ import { filter, tap } from 'rxjs/operators'
import { ActivatedRoute } from '@angular/router'
import { getPkgId } from '@start9labs/shared'
import { MarketplaceService } from 'src/app/services/marketplace.service'
import {
AbstractMarketplaceService,
Marketplace,
} from '@start9labs/marketplace'
import { Observable } from 'rxjs'
import { AbstractMarketplaceService } from '@start9labs/marketplace'
const STATES = [
PackageState.Installing,

View File

@@ -1,16 +1,12 @@
import { Pipe, PipeTransform } from '@angular/core'
import { NavigationExtras } from '@angular/router'
import { NavController } from '@ionic/angular'
import { combineLatest, Observable } from 'rxjs'
import { filter, map, startWith } from 'rxjs/operators'
import {
DataModel,
DependencyError,
DependencyErrorType,
PackageDataEntry,
} from 'src/app/services/patch-db/data-model'
import { DependentInfo } from 'src/app/types/dependent-info'
import { PatchDB } from 'patch-db-client'
import { ModalService } from 'src/app/services/modal.service'
export interface DependencyInfo {
@@ -28,35 +24,18 @@ export interface DependencyInfo {
})
export class ToDependenciesPipe implements PipeTransform {
constructor(
private readonly patch: PatchDB<DataModel>,
private readonly navCtrl: NavController,
private readonly modalService: ModalService,
) {}
transform(pkg: PackageDataEntry): Observable<DependencyInfo[]> {
return combineLatest([
this.patch.watch$(
'package-data',
pkg.manifest.id,
'installed',
'current-dependencies',
),
this.patch.watch$(
'package-data',
pkg.manifest.id,
'installed',
'status',
'dependency-errors',
),
]).pipe(
filter(deps => deps.every(Boolean) && !!pkg.installed),
map(([currentDeps, depErrors]) =>
Object.keys(currentDeps)
.filter(id => !!pkg.manifest.dependencies[id])
.map(id => this.setDepValues(pkg, id, depErrors)),
),
startWith([]),
)
transform(pkg: PackageDataEntry): DependencyInfo[] {
if (!pkg.installed) return []
return Object.keys(pkg.installed?.['current-dependencies'])
.filter(id => !!pkg.manifest.dependencies[id])
.map(id =>
this.setDepValues(pkg, id, pkg.installed!.status['dependency-errors']),
)
}
private setDepValues(