@@ -227,6 +227,38 @@ const PerpsClosePositionView: React.FC = () => {
227227 orderAmount : closingValueString ,
228228 } ) ;
229229
230+ // Determine reward animation state
231+ const rewardAnimationState = useMemo ( ( ) => {
232+ if ( rewardsState . isLoading ) {
233+ return RewardAnimationState . Loading ;
234+ }
235+ if ( rewardsState . hasError ) {
236+ return RewardAnimationState . ErrorState ;
237+ }
238+ return RewardAnimationState . Idle ;
239+ } , [ rewardsState . isLoading , rewardsState . hasError ] ) ;
240+
241+ // Prepare tooltip data props conditionally
242+ const tooltipDataProps = useMemo ( ( ) => {
243+ if ( selectedTooltip === 'closing_fees' ) {
244+ return {
245+ data : {
246+ metamaskFeeRate : feeResults . metamaskFeeRate ,
247+ protocolFeeRate : feeResults . protocolFeeRate ,
248+ originalMetamaskFeeRate : feeResults . originalMetamaskFeeRate ,
249+ feeDiscountPercentage : feeResults . feeDiscountPercentage ,
250+ } ,
251+ } ;
252+ }
253+ return { } ;
254+ } , [
255+ selectedTooltip ,
256+ feeResults . metamaskFeeRate ,
257+ feeResults . protocolFeeRate ,
258+ feeResults . originalMetamaskFeeRate ,
259+ feeResults . feeDiscountPercentage ,
260+ ] ) ;
261+
230262 // Calculate what user will receive (initial margin + P&L - fees)
231263 // P&L is already shown separately in the margin section as "includes P&L"
232264 const receiveAmount = useMemo ( ( ) => {
@@ -599,13 +631,7 @@ const PerpsClosePositionView: React.FC = () => {
599631 strings ( 'perps.points_error_content' ) ,
600632 )
601633 }
602- state = {
603- rewardsState . isLoading
604- ? RewardAnimationState . Loading
605- : rewardsState . hasError
606- ? RewardAnimationState . ErrorState
607- : RewardAnimationState . Idle
608- }
634+ state = { rewardAnimationState }
609635 />
610636 </ View >
611637 </ View >
@@ -723,7 +749,7 @@ const PerpsClosePositionView: React.FC = () => {
723749 { filteredErrors . length > 0 && (
724750 < View style = { styles . validationSection } >
725751 { filteredErrors . map ( ( error , index ) => (
726- < View key = { index } style = { styles . errorMessage } >
752+ < View key = { `error- ${ index } ` } style = { styles . errorMessage } >
727753 < Icon
728754 name = { IconName . Danger }
729755 size = { IconSize . Sm }
@@ -847,16 +873,7 @@ const PerpsClosePositionView: React.FC = () => {
847873 onClose = { handleTooltipClose }
848874 contentKey = { selectedTooltip as PerpsTooltipContentKey }
849875 key = { selectedTooltip }
850- { ...( selectedTooltip === 'closing_fees'
851- ? {
852- data : {
853- metamaskFeeRate : feeResults . metamaskFeeRate ,
854- protocolFeeRate : feeResults . protocolFeeRate ,
855- originalMetamaskFeeRate : feeResults . originalMetamaskFeeRate ,
856- feeDiscountPercentage : feeResults . feeDiscountPercentage ,
857- } ,
858- }
859- : { } ) }
876+ { ...tooltipDataProps }
860877 />
861878 ) : null }
862879 </ SafeAreaView >
0 commit comments