@@ -78,6 +78,7 @@ import {
78
78
isSubmittingButtonDisabled ,
79
79
isFormEditing ,
80
80
resetFieldState ,
81
+ getRequester ,
81
82
} from './utils' ;
82
83
83
84
import css from './requests.css' ;
@@ -186,7 +187,7 @@ class RequestForm extends React.Component {
186
187
const { titleLevelRequestsFeatureEnabled } = this . getTlrSettings ( ) ;
187
188
188
189
this . state = {
189
- proxy : { } ,
190
+ proxy : null ,
190
191
selectedLoan : loan ,
191
192
...getDefaultRequestPreferences ( request , initialValues ) ,
192
193
isAwaitingForProxySelection : false ,
@@ -452,17 +453,13 @@ class RequestForm extends React.Component {
452
453
const {
453
454
form,
454
455
selectedUser,
455
- onSetSelectedUser,
456
456
} = this . props ;
457
457
458
458
if ( selectedUser . id === proxy . id ) {
459
- onSetSelectedUser ( selectedUser ) ;
460
459
this . setState ( {
461
460
proxy : selectedUser ,
462
461
} ) ;
463
- form . change ( REQUEST_FORM_FIELD_NAMES . REQUESTER_ID , selectedUser . id ) ;
464
462
} else {
465
- onSetSelectedUser ( selectedUser ) ;
466
463
this . setState ( {
467
464
proxy,
468
465
requestTypes : { } ,
@@ -767,6 +764,7 @@ class RequestForm extends React.Component {
767
764
onSetSelectedItem,
768
765
selectedUser,
769
766
} = this . props ;
767
+ const { proxy } = this . state ;
770
768
771
769
this . setState ( {
772
770
isItemOrInstanceLoading : true ,
@@ -816,7 +814,8 @@ class RequestForm extends React.Component {
816
814
} )
817
815
. then ( item => {
818
816
if ( item && selectedUser ?. id ) {
819
- this . findRequestTypes ( item . id , selectedUser . id , ID_TYPE_MAP . ITEM_ID ) ;
817
+ const requester = getRequester ( proxy , selectedUser ) ;
818
+ this . findRequestTypes ( item . id , requester . id , ID_TYPE_MAP . ITEM_ID ) ;
820
819
}
821
820
822
821
return item ;
@@ -849,6 +848,7 @@ class RequestForm extends React.Component {
849
848
onSetSelectedInstance,
850
849
selectedUser,
851
850
} = this . props ;
851
+ const { proxy } = this . state ;
852
852
853
853
this . setState ( {
854
854
isItemOrInstanceLoading : true ,
@@ -897,7 +897,8 @@ class RequestForm extends React.Component {
897
897
} )
898
898
. then ( instance => {
899
899
if ( instance && selectedUser ?. id ) {
900
- this . findRequestTypes ( instance . id , selectedUser . id , ID_TYPE_MAP . INSTANCE_ID ) ;
900
+ const requester = getRequester ( proxy , selectedUser ) ;
901
+ this . findRequestTypes ( instance . id , requester . id , ID_TYPE_MAP . INSTANCE_ID ) ;
901
902
}
902
903
903
904
return instance ;
@@ -1137,26 +1138,26 @@ class RequestForm extends React.Component {
1137
1138
const patronBlocks = onGetPatronManualBlocks ( parentResources ) ;
1138
1139
const automatedPatronBlocks = onGetAutomatedPatronBlocks ( parentResources ) ;
1139
1140
const isEditForm = isFormEditing ( request ) ;
1140
-
1141
+ const selectedProxy = getProxy ( request , proxy ) ;
1142
+ const requester = getRequester ( selectedProxy , selectedUser ) ;
1141
1143
let deliveryLocations ;
1142
1144
let deliveryLocationsDetail = [ ] ;
1143
1145
let addressDetail ;
1144
- if ( selectedUser && selectedUser . personal && selectedUser . personal . addresses ) {
1145
- deliveryLocations = selectedUser . personal . addresses . map ( ( a ) => {
1146
+ if ( requester ? .personal ? .addresses ) {
1147
+ deliveryLocations = requester . personal . addresses . map ( ( a ) => {
1146
1148
const typeName = find ( addressTypes , { id : a . addressTypeId } ) . addressType ;
1147
1149
return { label : typeName , value : a . addressTypeId } ;
1148
1150
} ) ;
1149
1151
deliveryLocations = sortBy ( deliveryLocations , [ 'label' ] ) ;
1150
- deliveryLocationsDetail = keyBy ( selectedUser . personal . addresses , a => a . addressTypeId ) ;
1152
+ deliveryLocationsDetail = keyBy ( requester . personal . addresses , a => a . addressTypeId ) ;
1151
1153
}
1152
1154
1153
1155
if ( selectedAddressTypeId ) {
1154
1156
addressDetail = toUserAddress ( deliveryLocationsDetail [ selectedAddressTypeId ] ) ;
1155
1157
}
1156
1158
1157
- const patronGroup = getPatronGroup ( selectedUser , patronGroups ) ;
1159
+ const patronGroup = getPatronGroup ( requester , patronGroups ) ;
1158
1160
const fulfillmentTypeOptions = getFulfillmentTypeOptions ( hasDelivery , optionLists ?. fulfillmentTypes || [ ] ) ;
1159
- const selectedProxy = getProxy ( request , proxy ) ;
1160
1161
const isSubmittingDisabled = isSubmittingButtonDisabled ( pristine , submitting ) ;
1161
1162
const isTitleLevelRequest = createTitleLevelRequest || request ?. requestLevel === REQUEST_LEVEL_TYPES . TITLE ;
1162
1163
const getPatronBlockModalOpenStatus = ( ) => {
0 commit comments