diff --git a/libs/orders/src/lib/components/stop-orders-manager/stop-orders-manager.tsx b/libs/orders/src/lib/components/stop-orders-manager/stop-orders-manager.tsx index 37614b016..e88c0e3b8 100644 --- a/libs/orders/src/lib/components/stop-orders-manager/stop-orders-manager.tsx +++ b/libs/orders/src/lib/components/stop-orders-manager/stop-orders-manager.tsx @@ -1,5 +1,5 @@ import { t } from '@vegaprotocol/i18n'; -import { useCallback, useRef } from 'react'; +import { useCallback, useRef, useEffect } from 'react'; import type { AgGridReact } from 'ag-grid-react'; import { StopOrdersTable } from '../stop-orders-table/stop-orders-table'; import type { useDataGridEvents } from '@vegaprotocol/datagrid'; @@ -15,6 +15,8 @@ export interface StopOrdersManagerProps { gridProps?: ReturnType; } +const POLLING_TIME = 2000; + export const StopOrdersManager = ({ partyId, onMarketClick, @@ -25,7 +27,7 @@ export const StopOrdersManager = ({ const create = useVegaTransactionStore((state) => state.create); const variables = { partyId }; - const { data, error } = useDataProvider({ + const { data, error, reload } = useDataProvider({ dataProvider: stopOrdersWithMarketProvider, variables, update: ({ data }) => { @@ -37,13 +39,22 @@ export const StopOrdersManager = ({ }, }); + useEffect(() => { + const interval = setInterval(() => { + reload(); + }, POLLING_TIME); + return () => { + clearInterval(interval); + }; + }, [reload]); + const cancel = useCallback( (order: StopOrder) => { - if (!order.market) return; + if (!order.submission.marketId) return; create({ stopOrdersCancellation: { stopOrderId: order.id, - marketId: order.market.id, + marketId: order.submission.marketId, }, }); },