@@ -9,9 +9,9 @@ import { RemoteData } from '../../../core/data/remote-data';
99import { getItemEditRoute , getItemPageRoute } from '../../item-page-routing-paths' ;
1010import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service' ;
1111import { FeatureID } from '../../../core/data/feature-authorization/feature-id' ;
12- import { hasValue } from '../../../shared/empty.util' ;
12+ import { hasValue , isNotEmpty } from '../../../shared/empty.util' ;
1313import {
14- getAllSucceededRemoteDataPayload , getFirstSucceededRemoteData , getRemoteDataPayload ,
14+ getAllSucceededRemoteDataPayload , getFirstCompletedRemoteData , getFirstSucceededRemoteData , getRemoteDataPayload ,
1515} from '../../../core/shared/operators' ;
1616import { IdentifierDataService } from '../../../core/data/identifier-data.service' ;
1717import { Identifier } from '../../../shared/object-list/identifier-data/identifier.model' ;
@@ -105,12 +105,13 @@ export class ItemStatusComponent implements OnInit {
105105
106106 // Observable for configuration determining whether the Register DOI feature is enabled
107107 let registerConfigEnabled$ : Observable < boolean > = this . configurationService . findByPropertyName ( 'identifiers.item-status.register-doi' ) . pipe (
108- getFirstSucceededRemoteData ( ) ,
109- getRemoteDataPayload ( ) ,
110- map ( ( enabled : ConfigurationProperty ) => {
111- if ( enabled !== undefined && enabled . values ) {
112- return true ;
108+ getFirstCompletedRemoteData ( ) ,
109+ map ( ( rd : RemoteData < ConfigurationProperty > ) => {
110+ // If the config property is exposed via rest and has a value set, return it
111+ if ( rd . hasSucceeded && hasValue ( rd . payload ) && isNotEmpty ( rd . payload . values ) ) {
112+ return rd . payload . values [ 0 ] === ' true' ;
113113 }
114+ // Otherwise, return false
114115 return false ;
115116 } )
116117 ) ;
0 commit comments