Skip to content

Commit 6f9a946

Browse files
Track metadata changes for reset toggle
1 parent d0d4efd commit 6f9a946

File tree

5 files changed

+35
-4
lines changed

5 files changed

+35
-4
lines changed

application/frontend/src/app/core/containers/metadata-control-bar/metadata-control-bar.component.spec.ts

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { FakeMatIconRegistry } from 'src/test/material-fakes';
2727
import RoutesMetadataSelectors from '../../selectors/routes-metadata.selectors';
2828
import * as fromUI from '../../selectors/ui.selectors';
2929
import { MetadataControlBarComponent } from './metadata-control-bar.component';
30+
import RoutesChartSelectors from '../../selectors/routes-chart.selectors';
3031

3132
describe('MetadataControlBarComponent', () => {
3233
let component: MetadataControlBarComponent;
@@ -45,6 +46,8 @@ describe('MetadataControlBarComponent', () => {
4546
{ selector: RoutesMetadataSelectors.selectAvailableDisplayColumnsOptions, value: [] },
4647
{ selector: RoutesMetadataSelectors.selectFilters, value: [] },
4748
{ selector: RoutesMetadataSelectors.selectDisplayColumns, value: null },
49+
{ selector: RoutesChartSelectors.selectViewHasChanged, value: false },
50+
{ selector: RoutesMetadataSelectors.selectViewHasChanged, value: false },
4851
],
4952
}),
5053
],

application/frontend/src/app/core/containers/metadata-control-bar/metadata-control-bar.component.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
} from '@angular/core';
2525
import { Router } from '@angular/router';
2626
import { select, Store } from '@ngrx/store';
27-
import { Observable, Subscription } from 'rxjs';
27+
import { combineLatest, Observable, Subscription } from 'rxjs';
2828
import { exhaustMap, map, switchMap, take } from 'rxjs/operators';
2929
import { FilterMenuComponent } from 'src/app/shared/components';
3030
import { ActiveFilter, FilterOption } from 'src/app/shared/models';
@@ -91,7 +91,11 @@ export class MetadataControlBarComponent implements OnInit, OnDestroy {
9191
this.store.pipe(select(selectors.selectAvailableDisplayColumnsOptions))
9292
)
9393
);
94-
this.viewHasChanged$ = this.store.pipe(select(RoutesChartSelectors.selectViewHasChanged));
94+
95+
this.viewHasChanged$ = combineLatest([
96+
this.store.pipe(select(RoutesChartSelectors.selectViewHasChanged)),
97+
this.store.pipe(select(RoutesMetadataSelectors.selectViewHasChanged)),
98+
]).pipe(map(([chartChanged, metadataChanged]) => chartChanged || metadataChanged));
9599
}
96100

97101
ngOnDestroy(): void {

application/frontend/src/app/core/containers/routes-chart-control-bar/routes-chart-control-bar.component.spec.ts

+3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import Long from 'long';
3131
import { Page } from '../../models';
3232
import * as fromUI from 'src/app/core/selectors/ui.selectors';
3333
import { Component, EventEmitter, Input, Output } from '@angular/core';
34+
import RoutesMetadataSelectors from '../../selectors/routes-metadata.selectors';
3435

3536
@Component({
3637
selector: 'app-time-navigation',
@@ -78,6 +79,8 @@ describe('RoutesChartControlBarComponent', () => {
7879
{ selector: RoutesChartSelectors.selectRangeOffset, value: 0 },
7980
{ selector: RoutesChartSelectors.selectSelectedRange, value: null },
8081
{ selector: fromUI.selectPage, value: Page.RoutesChart },
82+
{ selector: RoutesChartSelectors.selectViewHasChanged, value: false },
83+
{ selector: RoutesMetadataSelectors.selectViewHasChanged, value: false }
8184
],
8285
}),
8386
],

application/frontend/src/app/core/containers/routes-chart-control-bar/routes-chart-control-bar.component.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
ViewChild,
2424
} from '@angular/core';
2525
import { select, Store } from '@ngrx/store';
26-
import { Observable, Subscription } from 'rxjs';
26+
import { combineLatest, Observable, Subscription } from 'rxjs';
2727
import { exhaustMap, map, take } from 'rxjs/operators';
2828
import * as fromConfig from 'src/app/core/selectors/config.selectors';
2929
import RoutesChartSelectors from 'src/app/core/selectors/routes-chart.selectors';
@@ -37,6 +37,7 @@ import { Router } from '@angular/router';
3737
import { Range } from 'src/app/shared/models';
3838
import ShipmentModelSelectors from '../../selectors/shipment-model.selectors';
3939
import * as fromUI from 'src/app/core/selectors/ui.selectors';
40+
import RoutesMetadataSelectors from '../../selectors/routes-metadata.selectors';
4041

4142
@Component({
4243
selector: 'app-routes-chart-control-bar',
@@ -86,7 +87,10 @@ export class RoutesChartControlBarComponent implements OnInit, OnDestroy {
8687
select(fromUI.selectPage),
8788
map((page) => (page === Page.ShipmentsMetadata ? Page.RoutesMetadata : page))
8889
);
89-
this.viewHasChanged$ = this.store.pipe(select(RoutesChartSelectors.selectViewHasChanged));
90+
this.viewHasChanged$ = combineLatest([
91+
this.store.pipe(select(RoutesChartSelectors.selectViewHasChanged)),
92+
this.store.pipe(select(RoutesMetadataSelectors.selectViewHasChanged)),
93+
]).pipe(map(([chartChanged, metadataChanged]) => chartChanged || metadataChanged));
9094
}
9195

9296
ngOnDestroy(): void {

application/frontend/src/app/core/selectors/routes-metadata.selectors.ts

+17
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,22 @@ const selectDisplayColumns = createSelector(
357357
}
358358
);
359359

360+
const selectViewHasChanged = createSelector(
361+
selectFilters,
362+
selectPageIndex,
363+
selectPageSize,
364+
selectSelected,
365+
selectDisplayColumnsState,
366+
selectSort,
367+
(filters, pageIndex, pageSize, selected, displayColumns, sort) =>
368+
filters.length > 0 ||
369+
pageIndex !== 0 ||
370+
pageSize !== 25 ||
371+
selected.length > 0 ||
372+
!!displayColumns ||
373+
sort.direction?.length > 0
374+
);
375+
360376
export const RoutesMetadataSelectors = {
361377
selectDisplayColumns,
362378
selectColumnsToDisplay,
@@ -386,6 +402,7 @@ export const RoutesMetadataSelectors = {
386402
selectSort,
387403
selectPageSize,
388404
selectPageIndex,
405+
selectViewHasChanged,
389406
};
390407

391408
export default RoutesMetadataSelectors;

0 commit comments

Comments
 (0)