1- import { hasValue } from '@dspace/shared/utils/empty.util' ;
21import {
3- createSelector ,
4- MemoizedSelector ,
5- Selector ,
6- } from '@ngrx/store' ;
2+ keySelector ,
3+ subStateSelector ,
4+ } from '@dspace/core/ngrx/selectors-utils' ;
5+ import { MemoizedSelector } from '@ngrx/store' ;
76
87import { SubmissionObjectEntry } from './objects/submission-objects.reducer' ;
98import { SubmissionSectionObject } from './objects/submission-section-object.model' ;
@@ -12,32 +11,6 @@ import {
1211 SubmissionState ,
1312} from './submission.reducers' ;
1413
15- /**
16- * Export a function to return a subset of the state by key
17- */
18- export function keySelector < T , V > ( parentSelector : Selector < any , any > , subState : string , key : string ) : MemoizedSelector < T , V > {
19- return createSelector < T , unknown [ ] , V > ( parentSelector , ( state : T ) => {
20- if ( hasValue ( state ) && hasValue ( state [ subState ] ) ) {
21- return state [ subState ] [ key ] ;
22- } else {
23- return undefined ;
24- }
25- } ) ;
26- }
27-
28- /**
29- * Export a function to return a subset of the state
30- */
31- export function subStateSelector < T , V > ( parentSelector : Selector < any , any > , subState : string ) : MemoizedSelector < T , V > {
32- return createSelector < T , unknown [ ] , V > ( parentSelector , ( state : T ) => {
33- if ( hasValue ( state ) && hasValue ( state [ subState ] ) ) {
34- return state [ subState ] ;
35- } else {
36- return undefined ;
37- }
38- } ) ;
39- }
40-
4114export function submissionObjectFromIdSelector ( submissionId : string ) : MemoizedSelector < SubmissionState , SubmissionObjectEntry > {
4215 return keySelector < SubmissionState , SubmissionObjectEntry > ( submissionSelector , 'objects' , submissionId ) ;
4316}
0 commit comments