Skip to content

Commit

Permalink
fix cancel newly created orders button
Browse files Browse the repository at this point in the history
  • Loading branch information
onemicky committed May 13, 2024
1 parent d79a350 commit ec54c99
Showing 1 changed file with 12 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -337,20 +337,20 @@ export function OrdersStatusNotificiation({
});
}, [matchedOrderStatuses, pendingOrders]);

const isMarketOrLimitOrderFailed = useMemo(() => {
const isMainOrderFailed = useMemo(() => {
return pendingOrders.some((pendingOrder) => {
if (isMarketOrderType(pendingOrder.orderType) || isLimitOrderType(pendingOrder.orderType)) {
const orderStatus = findMatchedOrderStatus(matchedOrderStatuses, pendingOrder);

return pendingOrder.txnType !== "cancel" && orderStatus?.cancelledTxnHash !== undefined;
return pendingOrder.txnType === "create" && orderStatus?.cancelledTxnHash !== undefined;
}
return false;
});
}, [matchedOrderStatuses, pendingOrders]);

const triggerOrderKeys = useMemo(() => {
const newlyCreatedTriggerOrderKeys = useMemo(() => {
return pendingOrders.reduce((result, order) => {
if (isTriggerDecreaseOrderType(order.orderType)) {
if (isTriggerDecreaseOrderType(order.orderType) && order.txnType === "create") {
const orderStatus = findMatchedOrderStatus(matchedOrderStatuses, order);

if (orderStatus?.createdTxnHash && orderStatus?.key) {
Expand All @@ -361,15 +361,18 @@ export function OrdersStatusNotificiation({
}, [] as string[]);
}, [matchedOrderStatuses, pendingOrders]);

const subaccount = useSubaccount(null, triggerOrderKeys.length);
const cancelOrdersDetailsMessage = useSubaccountCancelOrdersDetailsMessage(undefined, triggerOrderKeys.length);
const subaccount = useSubaccount(null, newlyCreatedTriggerOrderKeys.length);
const cancelOrdersDetailsMessage = useSubaccountCancelOrdersDetailsMessage(
undefined,
newlyCreatedTriggerOrderKeys.length
);

function onCancelOrdersClick() {
if (!signer || !triggerOrderKeys.length || !setPendingTxns) return;
if (!signer || !newlyCreatedTriggerOrderKeys.length || !setPendingTxns) return;

setIsCancelOrderProcessing(true);
cancelOrdersTxn(chainId, signer, subaccount, {
orderKeys: triggerOrderKeys,
orderKeys: newlyCreatedTriggerOrderKeys,
setPendingTxns,
detailsMsg: cancelOrdersDetailsMessage,
}).finally(() => setIsCancelOrderProcessing(false));
Expand Down Expand Up @@ -413,7 +416,7 @@ export function OrdersStatusNotificiation({
{pendingOrders.length > 1 && (
<div className="StatusNotification-actions">
<div>
{isMarketOrLimitOrderFailed && triggerOrderKeys.length > 0 && (
{isMainOrderFailed && newlyCreatedTriggerOrderKeys.length > 0 && (
<button
disabled={isCancelOrderProcessing}
onClick={onCancelOrdersClick}
Expand Down

0 comments on commit ec54c99

Please sign in to comment.