11import { useDispatch , useSelector } from "react-redux" ;
22import { ReactNode , useContext , useEffect , useState } from "react" ;
33import { CustomizeContext } from "../../providers/CustomizeProvider" ;
4- import { BRIDGE_DISPLAY_NAMES } from "../../consts/" ;
4+ import { BRIDGE_DISPLAY_NAMES , UserTxType } from "../../consts/" ;
55
66// components
77import { Button } from "../common/Button" ;
@@ -35,6 +35,7 @@ export const ReviewModal = ({
3535 const selectedRoute = useSelector ( ( state : any ) => state . routes . selectedRoute ) ;
3636 const [ showTxDetails , setShowTxDetails ] = useState < boolean > ( false ) ;
3737 const [ quoteUpdated , setQuoteUpdated ] = useState < boolean > ( false ) ;
38+ const [ isSameChainSwap , setIsSameChainSwap ] = useState < boolean > ( false ) ;
3839
3940 const customSettings = useContext ( CustomizeContext ) ;
4041 const { borderRadius } = customSettings . customization ;
@@ -96,12 +97,17 @@ export const ReviewModal = ({
9697
9798 // Extracting Bridge Step from fundMove userTx
9899 const fundMovrData = selectedRoute ?. route ?. userTxs . filter (
99- ( item ) => item . userTxType === "fund-movr"
100+ ( item ) => item . userTxType === UserTxType . FUND_MOVR
100101 ) [ 0 ] ;
101102 const bridgeData =
102103 fundMovrData ?. steps &&
103104 fundMovrData ?. steps . filter ( ( step ) => step . type === "bridge" ) [ 0 ] ;
104105
106+ // Extracting the Swap step from userTxs
107+ const swapData = selectedRoute ?. route ?. userTxs . filter (
108+ ( item ) => item . userTxType === UserTxType . DEX_SWAP
109+ ) ?. [ 0 ] ;
110+
105111 // Bridge Fee
106112 const bridgeFee = bridgeData ?. protocolFees . feesInUsd ;
107113 const bridgeFeeInToken = formatCurrencyAmount (
@@ -111,6 +117,13 @@ export const ReviewModal = ({
111117 ) ;
112118 const bridgeFeeTokenSymbol = bridgeData ?. protocolFees . asset . symbol ;
113119
120+ useEffect ( ( ) => {
121+ setIsSameChainSwap (
122+ selectedRoute ?. path ?. fromToken ?. chainId ===
123+ selectedRoute ?. path ?. toToken ?. chainId
124+ ) ;
125+ } , [ selectedRoute ] ) ;
126+
114127 return (
115128 < Modal
116129 title = "Review Quote"
@@ -135,45 +148,56 @@ export const ReviewModal = ({
135148 />
136149
137150 < div className = "skt-w p-3 flex flex-col gap-3 mt-1" >
138- < RouteDetailRow
139- label = "Bridge Name"
140- value = {
141- BRIDGE_DISPLAY_NAMES [
142- selectedRoute ?. route ?. usedBridgeNames ?. [ 0 ]
143- ] || selectedRoute ?. route ?. usedBridgeNames ?. [ 0 ]
144- }
145- />
146- < RouteDetailRow
147- label = "Estimated Bridging Time"
148- value = { timeInMinutes ( selectedRoute ?. route ?. serviceTime ) }
149- />
151+ { ! isSameChainSwap ? (
152+ < >
153+ < RouteDetailRow
154+ label = "Bridge Name"
155+ value = {
156+ BRIDGE_DISPLAY_NAMES [
157+ selectedRoute ?. route ?. usedBridgeNames ?. [ 0 ]
158+ ] || selectedRoute ?. route ?. usedBridgeNames ?. [ 0 ]
159+ }
160+ />
161+ < RouteDetailRow
162+ label = "Estimated Bridging Time"
163+ value = { timeInMinutes ( selectedRoute ?. route ?. serviceTime ) }
164+ />
165+ < RouteDetailRow label = "Bridge Fee" >
166+ < FeeDisplay
167+ feeInToken = { bridgeFeeInToken }
168+ feeInUsd = { bridgeFee }
169+ tokenSymbol = { bridgeFeeTokenSymbol }
170+ />
171+ </ RouteDetailRow >
172+ </ >
173+ ) : (
174+ < RouteDetailRow
175+ label = "Dex Name"
176+ value = { swapData ?. protocol ?. displayName }
177+ />
178+ ) }
150179 < RouteDetailRow label = "Source Gas Fee" >
151180 < FeeDisplay
152181 feeInToken = { sourceFeesInToken }
153182 feeInUsd = { sourceFeesInUSD }
154183 tokenSymbol = { sourceNativeToken ?. symbol }
155184 />
156185 </ RouteDetailRow >
157- { ! ! destFeesInToken && (
158- < RouteDetailRow label = "Dest Gas Fee" >
159- < FeeDisplay
160- feeInToken = { destFeesInToken }
161- feeInUsd = { destFeesInUSD }
162- tokenSymbol = { destNativeToken ?. symbol }
186+ { ! ! destFeesInToken && ! isSameChainSwap && (
187+ < >
188+ < RouteDetailRow label = "Dest Gas Fee" >
189+ < FeeDisplay
190+ feeInToken = { destFeesInToken }
191+ feeInUsd = { destFeesInUSD }
192+ tokenSymbol = { destNativeToken ?. symbol }
193+ />
194+ </ RouteDetailRow >
195+ < RouteDetailRow
196+ label = "Number of transactions"
197+ value = { selectedRoute ?. route ?. totalUserTx }
163198 />
164- </ RouteDetailRow >
199+ </ >
165200 ) }
166- < RouteDetailRow label = "Bridge Fee" >
167- < FeeDisplay
168- feeInToken = { bridgeFeeInToken }
169- feeInUsd = { bridgeFee }
170- tokenSymbol = { bridgeFeeTokenSymbol }
171- />
172- </ RouteDetailRow >
173- < RouteDetailRow
174- label = "Number of transactions"
175- value = { selectedRoute ?. route ?. totalUserTx }
176- />
177201 </ div >
178202 </ div >
179203
@@ -224,7 +248,9 @@ export const ReviewModal = ({
224248 onClick = { quoteUpdated ? updateSelectedRoute : openTxModal }
225249 classNames = { `${ quoteUpdated ? "h-12" : "" } ` }
226250 >
227- { quoteUpdated ? "Accept" : "Confirm Bridge" }
251+ { quoteUpdated
252+ ? "Accept"
253+ : `Confirm ${ isSameChainSwap ? "Swap" : "Bridge" } ` }
228254 </ Button >
229255 </ div >
230256 </ InnerCard >
@@ -272,7 +298,7 @@ const FeeDisplay = (props: FeeDisplayProps) => {
272298 ) }
273299 { feeInUsd !== 0 && (
274300 < span className = "opacity-80 font-normal" >
275- (${ feeInUsd . toFixed ( 4 ) } )
301+ (${ feeInUsd ? .toFixed ( 4 ) } )
276302 </ span >
277303 ) }
278304 </ span >
0 commit comments