feat: amend stop order cancellation, add pooling

This commit is contained in:
Bartłomiej Głownia
2023-07-07 16:23:53 +02:00
parent bb0038cc81
commit 1a94cb1a8a
@@ -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<typeof useDataGridEvents>;
}
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,
},
});
},