RED-3687 - removed generic param on init context

This commit is contained in:
Valentin Mihai 2022-07-19 14:06:01 +03:00
parent 6864edb489
commit 7d899d7f2f
2 changed files with 7 additions and 6 deletions

View File

@ -14,6 +14,7 @@ import { ContextComponent } from '@utils/context.component';
interface CommentsTemplate {
dossier: Dossier;
file: File;
hiddenComments: boolean;
}
@Component({

View File

@ -1,17 +1,17 @@
import { combineLatest, Observable, ObservableInputTuple, of, pipe } from 'rxjs';
import { combineLatest, Observable, of } from 'rxjs';
import { map, startWith } from 'rxjs/operators';
import { OnDetach, ValuesOf } from '@iqser/common-ui';
import { ValuesOf } from '@iqser/common-ui';
export class ContextComponent<C> {
componentContext$: Observable<C> | null = of({} as C);
export class ContextComponent<T> {
componentContext$: Observable<T> | null = of({} as T);
protected _initContext<T extends Record<string, ValuesOf<T>>>(context: ObservableInputTuple<T>): void {
protected _initContext(context: Record<string, Observable<ValuesOf<T>>>): void {
const observables = Object.values(context).map(obs => obs.pipe(startWith(null)));
const keys = Object.keys(context);
this.componentContext$ = combineLatest(observables).pipe(map(values => this._mapKeysToObs(keys, values)));
}
protected _mapKeysToObs<T>(keys: string[], observables: Observable<any>[]): T {
protected _mapKeysToObs(keys: string[], observables: ValuesOf<T>[]): T {
return keys.reduce((acc, key, index) => ({ ...acc, [key]: observables[index] }), {} as T);
}
}