feat(orders): use default filters in orders list (#3143)

This commit is contained in:
Bartłomiej Głownia 2023-03-14 13:53:51 +01:00 committed by GitHub
parent 41fa18ed45
commit 613cce3683
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 10 deletions

View File

@ -30,9 +30,6 @@ describe('orders list', { tags: '@smoke' }, () => {
cy.setVegaWallet(); cy.setVegaWallet();
cy.visit('/#/markets/market-0'); cy.visit('/#/markets/market-0');
cy.getByTestId('Orders').click(); cy.getByTestId('Orders').click();
cy.wait('@Orders').then(() => {
expect(subscriptionMocks.OrdersUpdate).to.be.calledThrice;
});
cy.wait('@Markets'); cy.wait('@Markets');
}); });
@ -135,14 +132,19 @@ describe('subscribe orders', { tags: '@smoke' }, () => {
cy.setVegaWallet(); cy.setVegaWallet();
cy.visit('/#/markets/market-0'); cy.visit('/#/markets/market-0');
cy.getByTestId('Orders').click(); cy.getByTestId('Orders').click();
cy.wait('@Orders').then(() => { cy.getByTestId('tab-orders').within(() => {
expect(subscriptionMocks.OrdersUpdate).to.be.calledThrice; cy.get('[col-id="status"][role="columnheader"]')
.focus()
.find('.ag-header-cell-menu-button')
.click();
cy.get('.ag-filter-apply-panel-button').click();
}); });
}); });
const orderId = '1234567890'; const orderId = '1234567890';
// 7002-SORD-053 // 7002-SORD-053
// 7002-SORD-040 // 7002-SORD-040
// 7003-MORD-001 // 7003-MORD-001
it('must see an active order', () => { it('must see an active order', () => {
// 7002-SORD-041 // 7002-SORD-041
updateOrder({ updateOrder({
@ -151,6 +153,7 @@ describe('subscribe orders', { tags: '@smoke' }, () => {
}); });
cy.getByTestId(`order-status-${orderId}`).should('have.text', 'Active'); cy.getByTestId(`order-status-${orderId}`).should('have.text', 'Active');
}); });
it('must see an expired order', () => { it('must see an expired order', () => {
// 7002-SORD-042 // 7002-SORD-042
updateOrder({ updateOrder({
@ -353,8 +356,12 @@ describe('amend and cancel order', { tags: '@smoke' }, () => {
cy.setVegaWallet(); cy.setVegaWallet();
cy.visit('/#/markets/market-0'); cy.visit('/#/markets/market-0');
cy.getByTestId('Orders').click(); cy.getByTestId('Orders').click();
cy.wait('@Orders').then(() => { cy.getByTestId('tab-orders').within(() => {
expect(subscriptionMocks.OrdersUpdate).to.be.calledThrice; cy.get('[col-id="status"][role="columnheader"]')
.focus()
.find('.ag-header-cell-menu-button')
.click();
cy.get('.ag-filter-apply-panel-button').click();
}); });
cy.mockVegaWalletTransaction(); cy.mockVegaWalletTransaction();
}); });

View File

@ -16,6 +16,7 @@ import { useOrderListData } from './use-order-list-data';
import { useHasActiveOrder } from '../../order-hooks/use-has-active-order'; import { useHasActiveOrder } from '../../order-hooks/use-has-active-order';
import type { Filter, Sort } from './use-order-list-data'; import type { Filter, Sort } from './use-order-list-data';
import { useBottomPlaceholder } from '@vegaprotocol/react-helpers'; import { useBottomPlaceholder } from '@vegaprotocol/react-helpers';
import { OrderStatus } from '@vegaprotocol/types';
import { import {
normalizeOrderAmendment, normalizeOrderAmendment,
useVegaTransactionStore, useVegaTransactionStore,
@ -53,6 +54,12 @@ const CancelAllOrdersButton = ({
) : null; ) : null;
}; };
const initialFilter: Filter = {
status: {
value: [OrderStatus.STATUS_ACTIVE, OrderStatus.STATUS_PARKED],
},
};
export const OrderListManager = ({ export const OrderListManager = ({
partyId, partyId,
marketId, marketId,
@ -62,7 +69,7 @@ export const OrderListManager = ({
const gridRef = useRef<AgGridReact | null>(null); const gridRef = useRef<AgGridReact | null>(null);
const scrolledToTop = useRef(true); const scrolledToTop = useRef(true);
const [sort, setSort] = useState<Sort[] | undefined>(); const [sort, setSort] = useState<Sort[] | undefined>();
const [filter, setFilter] = useState<Filter | undefined>(); const [filter, setFilter] = useState<Filter | undefined>(initialFilter);
const [editOrder, setEditOrder] = useState<Order | null>(null); const [editOrder, setEditOrder] = useState<Order | null>(null);
const create = useVegaTransactionStore((state) => state.create); const create = useVegaTransactionStore((state) => state.create);
const hasActiveOrder = useHasActiveOrder(marketId); const hasActiveOrder = useHasActiveOrder(marketId);
@ -160,10 +167,11 @@ export const OrderListManager = ({
); );
const onGridReady = useCallback( const onGridReady = useCallback(
(event: GridReadyEvent) => { ({ api }: GridReadyEvent) => {
event.api.setDatasource({ api.setDatasource({
getRows, getRows,
}); });
api.setFilterModel(initialFilter);
}, },
[getRows] [getRows]
); );