@@ -93,38 +93,39 @@ export default class Contractors extends Component {
9393 } ) , 0 )
9494 }
9595
96- get_contractor = async ( contractor_id , set_state ) => {
97- // make sure update_contractors has finished before getting the contractor to avoid unnecessary requests
98- while ( ! this . state . contractor_response ) {
99- await sleep ( 50 )
100- }
96+ get_contractor = async ( contractor_id , set_contractor ) => {
10197
10298 const state_ref = `con_extra_${ contractor_id } `
10399 let contractor = this . state [ state_ref ]
104100 if ( contractor ) {
105- set_state ( { contractor, loaded : true } )
101+ set_contractor ( contractor )
106102 return
107103 }
108104
105+ // make sure update_contractors has finished before getting the contractor to avoid unnecessary requests
106+ while ( ! this . state . contractor_response ) {
107+ await sleep ( 50 )
108+ }
109+
109110 const contractor_summary = this . state . contractor_response . results . find ( c => c . id === contractor_id )
110111 let url
111112 if ( contractor_summary ) {
112- set_state ( { contractor : contractor_summary , loaded : true } )
113+ set_contractor ( contractor_summary )
113114 url = contractor_summary . url
114115 } else {
115116 url = `contractors/${ contractor_id } `
116117 }
117118
118119 let r = await this . props . root . requests . get ( url , null , { expected_statuses : [ 200 , 404 ] } )
119120 if ( r . status === 404 ) {
120- set_state ( { contractor : null , loaded : true } )
121- return
122- }
123- contractor = r . data
124- this . props . config . event_callback ( 'get_contractor_details' , contractor )
121+ set_contractor ( null )
122+ } else {
123+ contractor = r . data
124+ this . props . config . event_callback ( 'get_contractor_details' , contractor )
125125
126- this . setState ( { [ state_ref ] : contractor } )
127- set_state ( { contractor, loaded : true } )
126+ this . setState ( { [ state_ref ] : contractor } )
127+ set_contractor ( contractor )
128+ }
128129 }
129130
130131 render ( ) {
0 commit comments