Skip to content

Commit aba7368

Browse files
authored
feat(router-store): add route fragment selector (#2543)
1 parent 47e7ba3 commit aba7368

File tree

4 files changed

+16
-0
lines changed

4 files changed

+16
-0
lines changed

modules/router-store/spec/router_selectors.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ const mockData = {
6969
ref: 'ngrx.io',
7070
},
7171
},
72+
fragment: 'test-fragment',
7273
children: [],
7374
},
7475
fragment: null,
@@ -141,6 +142,14 @@ describe('Router State Selectors', () => {
141142
expect(result).toEqual(undefined);
142143
});
143144

145+
it('should create a selector for selecting the fragment', () => {
146+
const result = selectors.selectFragment(state);
147+
148+
expect(result).toEqual(
149+
state.router.state.root.firstChild.firstChild.fragment
150+
);
151+
});
152+
144153
it('should create a selector for selecting the query params', () => {
145154
const result = selectors.selectQueryParams(state);
146155

modules/router-store/src/models.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { MemoizedSelector } from '@ngrx/store';
33

44
export interface RouterStateSelectors<V> {
55
selectCurrentRoute: MemoizedSelector<V, any>;
6+
selectFragment: MemoizedSelector<V, string | undefined>;
67
selectQueryParams: MemoizedSelector<V, Params>;
78
selectQueryParam: (param: string) => MemoizedSelector<V, string | undefined>;
89
selectRouteParams: MemoizedSelector<V, Params>;

modules/router-store/src/router_selectors.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ export function getSelectors<V>(
2222
}
2323
return route;
2424
});
25+
const selectFragment = createSelector(
26+
selectCurrentRoute,
27+
route => route && route.fragment
28+
);
2529
const selectQueryParams = createSelector(
2630
selectCurrentRoute,
2731
route => route && route.queryParams
@@ -45,6 +49,7 @@ export function getSelectors<V>(
4549

4650
return {
4751
selectCurrentRoute,
52+
selectFragment,
4853
selectQueryParams,
4954
selectQueryParam,
5055
selectRouteParams,

projects/ngrx.io/content/guide/router-store/selectors.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export const selectRouter = createFeatureSelector<
2626

2727
export const {
2828
selectCurrentRoute, // select the current route
29+
selectFragment, // select the current route fragment
2930
selectQueryParams, // select the current route query params
3031
selectQueryParam, // factory function to select a query param
3132
selectRouteParams, // select the current route params

0 commit comments

Comments
 (0)