@@ -62,6 +62,8 @@ export const FeeTargets = ({
6262 const [ options , setOptions ] = useState < TOptions [ ] | null > ( null ) ;
6363 const [ noFeeTargets , setNoFeeTargets ] = useState < boolean > ( false ) ;
6464
65+ const feeTargets = useLoad ( ( ) => accountApi . getFeeTargetList ( accountCode ) ) ;
66+
6567 const inputRef = useRef < HTMLInputElement & { autofocus : boolean } > ( null ) ;
6668
6769 const focusInput = useCallback ( ( ) => {
@@ -70,32 +72,30 @@ export const FeeTargets = ({
7072 }
7173 } , [ disabled ] ) ;
7274
75+
7376 useEffect ( ( ) => {
74- accountApi . getFeeTargetList ( accountCode )
75- . then ( ( { feeTargets, defaultFeeTarget } ) => {
76- if ( config ) {
77- const expert = config . frontend . expertFee || feeTargets . length === 0 ;
78- const options = feeTargets . map ( ( { code, feeRateInfo } ) => ( {
79- value : code ,
80- text : t ( `send.feeTarget.label.${ code } ` ) + ( expert && feeRateInfo ? ` (${ feeRateInfo } )` : '' ) ,
81- } ) ) ;
82- if ( expert ) {
83- options . push ( {
84- value : 'custom' ,
85- text : t ( 'send.feeTarget.label.custom' ) ,
86- } ) ;
87- }
88- setOptions ( options ) ;
89- setFeeTarget ( defaultFeeTarget ) ;
90- onFeeTargetChange ( defaultFeeTarget ) ;
91- if ( feeTargets . length === 0 ) {
92- setNoFeeTargets ( true ) ;
93- }
94- }
95- } )
96- . catch ( console . error ) ;
77+ if ( ! config || ! feeTargets ) {
78+ return ;
79+ }
80+ const expert = config . frontend . expertFee || feeTargets . feeTargets . length === 0 ;
81+ const options = feeTargets . feeTargets . map ( ( { code, feeRateInfo } ) => ( {
82+ value : code ,
83+ text : t ( `send.feeTarget.label.${ code } ` ) + ( expert && feeRateInfo ? ` (${ feeRateInfo } )` : '' ) ,
84+ } ) ) ;
85+ if ( expert ) {
86+ options . push ( {
87+ value : 'custom' ,
88+ text : t ( 'send.feeTarget.label.custom' ) ,
89+ } ) ;
90+ }
91+ setOptions ( options ) ;
92+ setFeeTarget ( feeTargets . defaultFeeTarget ) ;
93+ onFeeTargetChange ( feeTargets . defaultFeeTarget ) ;
94+ if ( feeTargets . feeTargets . length === 0 ) {
95+ setNoFeeTargets ( true ) ;
96+ }
9797 focusInput ( ) ;
98- } , [ t , focusInput , accountCode , config , onFeeTargetChange ] ) ;
98+ } , [ t , feeTargets , focusInput , accountCode , config , onFeeTargetChange ] ) ;
9999
100100 const handleFeeTargetChange = ( event : React . SyntheticEvent ) => {
101101 const target = event . target as HTMLSelectElement ;
@@ -232,4 +232,3 @@ export const FeeTargets = ({
232232 )
233233 ) ;
234234} ;
235-
0 commit comments