Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 6x 2x 2x | import { Injectable } from "@angular/core" import { createEffect } from "@ngrx/effects" import { Store } from "@ngrx/store" import { distinctUntilChanged, filter, map, withLatestFrom } from "rxjs" import { CcState } from "../../../codeCharta.model" import { metricDataSelector } from "../../selectors/accumulatedData/metricData/metricData.selector" import { setEdgeMetric } from "../../store/dynamicSettings/edgeMetric/edgeMetric.actions" import { edgeMetricSelector } from "../../store/dynamicSettings/edgeMetric/edgeMetric.selector" @Injectable() export class ResetSelectedEdgeMetricWhenItDoesntExistAnymoreEffect { constructor(private store: Store<CcState>) {} resetSelectedEdgeMetricWhenItDoesntExistAnymore$ = createEffect(() => this.store.select(metricDataSelector).pipe( withLatestFrom(this.store.select(edgeMetricSelector)), filter(([metricData, selectedEdgeMetric]) => !metricData.edgeMetricData.some(metric => metric.name === selectedEdgeMetric)), map(([metricData]) => metricData.edgeMetricData[0]?.name), distinctUntilChanged(), map(newEdgeMetric => setEdgeMetric({ value: newEdgeMetric })) ) ) } |