@@ -15,14 +15,14 @@ import {
15
15
useSimulatePnkIncreaseAllowance ,
16
16
useWritePnkIncreaseAllowance ,
17
17
} from "hooks/contracts/generated" ;
18
- import { useCourtDetails } from "hooks/queries/useCourtDetails" ;
19
18
import { useLockOverlayScroll } from "hooks/useLockOverlayScroll" ;
20
19
import { usePnkData } from "hooks/usePNKData" ;
21
- import { formatETH } from "utils/format" ;
22
20
import { isUndefined } from "utils/index" ;
23
21
import { parseWagmiError } from "utils/parseWagmiError" ;
24
22
import { refetchWithRetry } from "utils/refecthWithRetry" ;
25
23
24
+ import { useCourtDetails } from "queries/useCourtDetails" ;
25
+
26
26
import { EnsureChain } from "components/EnsureChain" ;
27
27
28
28
import StakeWithdrawPopup from "./StakeWithdrawPopup" ;
@@ -67,9 +67,8 @@ const StakeWithdrawButton: React.FC<IActionButton> = ({
67
67
const controllerRef = useRef < AbortController | null > ( null ) ;
68
68
useLockOverlayScroll ( isPopupOpen ) ;
69
69
70
- const { data : courtDetails } = useCourtDetails ( id ) ;
71
70
const { balance, jurorBalance, allowance, refetchAllowance } = usePnkData ( { courtId : id } ) ;
72
-
71
+ const { data : courtDetails } = useCourtDetails ( id ) ;
73
72
const publicClient = usePublicClient ( ) ;
74
73
75
74
const isStaking = action === ActionType . stake ;
@@ -181,6 +180,16 @@ const StakeWithdrawButton: React.FC<IActionButton> = ({
181
180
)
182
181
) ;
183
182
} ) ;
183
+ } else {
184
+ updatePopupState (
185
+ signal ,
186
+ getStakeSteps (
187
+ StakeSteps . StakeFailed ,
188
+ ...commonArgs ,
189
+ undefined ,
190
+ new Error ( "Simulation Failed. Please restart the process." )
191
+ )
192
+ ) ;
184
193
}
185
194
} ,
186
195
[ setStake , setStakeConfig , publicClient , amount , theme , action ]
@@ -248,20 +257,20 @@ const StakeWithdrawButton: React.FC<IActionButton> = ({
248
257
249
258
useEffect ( ( ) => {
250
259
if ( isPopupOpen ) return ;
251
- if (
252
- action === ActionType . stake &&
253
- targetStake !== 0n &&
254
- courtDetails &&
255
- targetStake < BigInt ( courtDetails . court ?. minStake )
256
- ) {
257
- setErrorMsg ( `Min Stake in court is: ${ formatETH ( courtDetails ?. court ?. minStake ) } ` ) ;
258
- } else if ( setStakeError || allowanceError ) {
260
+ if ( setStakeError || allowanceError ) {
259
261
setErrorMsg ( parseWagmiError ( setStakeError || allowanceError ) ) ;
260
262
}
261
- } , [ setStakeError , setErrorMsg , targetStake , courtDetails , allowanceError , isPopupOpen , action ] ) ;
263
+ } , [ setStakeError , setErrorMsg , targetStake , allowanceError , isPopupOpen ] ) ;
262
264
263
265
const isDisabled = useMemo ( ( ) => {
264
- if ( parsedAmount == 0n ) return true ;
266
+ if (
267
+ parsedAmount == 0n ||
268
+ ( action === ActionType . stake &&
269
+ targetStake !== 0n &&
270
+ courtDetails &&
271
+ targetStake < BigInt ( courtDetails ?. court ?. minStake ) )
272
+ )
273
+ return true ;
265
274
if ( isAllowance ) {
266
275
return isUndefined ( increaseAllowanceConfig ) || isSimulatingAllowance || ! isUndefined ( allowanceError ) ;
267
276
}
@@ -275,6 +284,9 @@ const StakeWithdrawButton: React.FC<IActionButton> = ({
275
284
setStakeError ,
276
285
allowanceError ,
277
286
isAllowance ,
287
+ targetStake ,
288
+ action ,
289
+ courtDetails ,
278
290
] ) ;
279
291
280
292
const closePopup = ( ) => {
0 commit comments