Skip to content

Commit

Permalink
Fix bug #3674
Browse files Browse the repository at this point in the history
  • Loading branch information
BenediktMehl committed Feb 3, 2025
1 parent be979aa commit ce8c84d
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
2 changes: 2 additions & 0 deletions visualization/app/app.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { UpdateQueryParametersEffect } from "app/codeCharta/state/effects/update
import { UpdateVisibleTopLabelsEffect } from "app/codeCharta/state/effects/updateVisibleTopLabels/updateVisibleTopLabels.effect"
import { ResetColorRangeEffect } from "app/codeCharta/state/store/dynamicSettings/colorRange/resetColorRange.effect"
import { BlacklistSearchPatternEffect } from "app/codeCharta/ui/ribbonBar/searchPanel/searchBar/blacklistSearchPattern.effect"
import { UpdateShowLabelsEffect } from "./codeCharta/state/effects/updateShowLabels/updateShowLabels.effect"

export const appConfig: ApplicationConfig = {
providers: [
Expand All @@ -41,6 +42,7 @@ export const appConfig: ApplicationConfig = {
RenderCodeMapEffect,
AutoFitCodeMapEffect,
UpdateVisibleTopLabelsEffect,
UpdateShowLabelsEffect,
LinkColorMetricToHeightMetricEffect,
ResetSelectedEdgeMetricWhenItDoesntExistAnymoreEffect,
UpdateFileSettingsEffect,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Injectable } from "@angular/core"
import { Store } from "@ngrx/store"
import { createEffect } from "@ngrx/effects"
import { filter, mergeMap, withLatestFrom } from "rxjs"
import { colorLabelsSelector } from "../../store/appSettings/colorLabels/colorLabels.selector"
import { showMetricLabelNodeValueSelector } from "../../store/appSettings/showMetricLabelNameValue/showMetricLabelNameValue.selector"
import { setShowMetricLabelNameValue } from "../../store/appSettings/showMetricLabelNameValue/showMetricLabelNameValue.actions"
import { setShowMetricLabelNodeName } from "../../store/appSettings/showMetricLabelNodeName/showMetricLabelNodeName.actions"
import { showMetricLabelNodeNameSelector } from "../../store/appSettings/showMetricLabelNodeName/showMetricLabelNodeName.selector"
import { CcState, ColorLabelOptions } from "app/codeCharta/codeCharta.model"

@Injectable()
export class UpdateShowLabelsEffect {
constructor(private readonly store: Store<CcState>) {}

updateShowLabels$ = createEffect(() =>
this.store.select(colorLabelsSelector).pipe(
withLatestFrom(this.store.select(showMetricLabelNodeValueSelector), this.store.select(showMetricLabelNodeNameSelector)),
filter(([colorLabels, showMetricLabelNodeValue, showMetricLabelNodeName]) => {
return this.atLeastOneChecked(colorLabels) !== (showMetricLabelNodeValue || showMetricLabelNodeName)
}),
mergeMap(([colorLabels, _showMetricLabelNodeValue, _showMetricLabelNodeName]) => {
if (this.atLeastOneChecked(colorLabels)) {
return [setShowMetricLabelNodeName({ value: true })]
}
return [setShowMetricLabelNodeName({ value: false }), setShowMetricLabelNameValue({ value: false })]
})
)
)

private atLeastOneChecked(colorLabels: ColorLabelOptions): boolean {
return colorLabels.positive || colorLabels.negative || colorLabels.neutral
}
}

0 comments on commit ce8c84d

Please sign in to comment.