feat: amend stop order cancellation, add pooling
This commit is contained in:
@@ -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,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user