diff --git a/.changeset/nice-ads-live.md b/.changeset/nice-ads-live.md new file mode 100644 index 000000000..d458fafa5 --- /dev/null +++ b/.changeset/nice-ads-live.md @@ -0,0 +1,5 @@ +--- +"@skip-go/widget": patch +--- + +Always show spinner on dest if source has completed in simple view diff --git a/packages/widget/src/pages/SwapExecutionPage/SwapExecutionPageRouteSimple.tsx b/packages/widget/src/pages/SwapExecutionPage/SwapExecutionPageRouteSimple.tsx index 1a2f29b8d..3db44c2a9 100644 --- a/packages/widget/src/pages/SwapExecutionPage/SwapExecutionPageRouteSimple.tsx +++ b/packages/widget/src/pages/SwapExecutionPage/SwapExecutionPageRouteSimple.tsx @@ -8,6 +8,7 @@ import { ClientOperation, SimpleStatus } from "@/utils/clientType"; import { swapExecutionStateAtom } from "@/state/swapExecutionPage"; import { TxsStatus } from "./useBroadcastedTxs"; import { SwapExecutionState } from "./SwapExecutionPage"; +import { useMemo } from "react"; export type SwapExecutionPageRouteProps = { operations: ClientOperation[]; @@ -31,10 +32,15 @@ export const SwapExecutionPageRouteSimple = ({ const lastOperation = operations[operations.length - 1]; const status = statusData?.transferEvents; - const destinationStatus = - swapExecutionState === SwapExecutionState.confirmed - ? "completed" - : status?.[lastOperation.transferIndex]?.status; + const destinationStatus = useMemo(() => { + if (swapExecutionState === SwapExecutionState.confirmed) { + return "completed"; + } + if (firstOperationStatus === "completed") { + return "pending"; + } + return status?.[lastOperation.transferIndex]?.status; + }, [firstOperationStatus, lastOperation.transferIndex, status, swapExecutionState]); const source = { denom: firstOperation.denomIn,