diff --git a/libs/datagrid/src/lib/cells/market-name-cell.tsx b/libs/datagrid/src/lib/cells/market-name-cell.tsx index 3ccc37167..ad6ca5ccb 100644 --- a/libs/datagrid/src/lib/cells/market-name-cell.tsx +++ b/libs/datagrid/src/lib/cells/market-name-cell.tsx @@ -2,28 +2,22 @@ import type { MouseEvent } from 'react'; import { useCallback } from 'react'; import get from 'lodash/get'; import { Pill } from '@vegaprotocol/ui-toolkit'; -import type { Market } from '@vegaprotocol/types'; - -const productTypeMap = { - Future: 'Futr', - FutureProduct: 'Futr', - Spot: 'Spot', - SpotProduct: 'Spot', - Perpetual: 'Perp', - PerpetualProduct: 'Perp', -} as const; -export type ProductType = keyof typeof productTypeMap | undefined; +import { + ProductTypeShortName, + type Market, + type ProductType, +} from '@vegaprotocol/types'; export const MarketProductPill = ({ productType, }: { - productType?: ProductType; + productType: ProductType; }) => { - return productType ? ( + return ( - {productTypeMap[productType] || productType} + {ProductTypeShortName[productType]} - ) : null; + ); }; interface MarketNameCellProps { @@ -66,7 +60,7 @@ export const MarketNameCell = ({ {value} - + {productType && } ); return onMarketClick && id ? ( diff --git a/libs/positions/src/lib/positions-data-providers.ts b/libs/positions/src/lib/positions-data-providers.ts index 85b7ac6be..1e90d94b8 100644 --- a/libs/positions/src/lib/positions-data-providers.ts +++ b/libs/positions/src/lib/positions-data-providers.ts @@ -26,7 +26,7 @@ import { PositionsDocument, PositionsSubscriptionDocument, } from './__generated__/Positions'; -import type { PositionStatus } from '@vegaprotocol/types'; +import type { PositionStatus, ProductType } from '@vegaprotocol/types'; export interface Position { assetId: string; @@ -51,7 +51,7 @@ export interface Position { totalBalance: string; unrealisedPNL: string; updatedAt: string | null; - productType?: string; + productType: ProductType; } export const getMetrics = ( diff --git a/libs/positions/src/lib/positions-table.spec.tsx b/libs/positions/src/lib/positions-table.spec.tsx index 870e2c850..be4532bfe 100644 --- a/libs/positions/src/lib/positions-table.spec.tsx +++ b/libs/positions/src/lib/positions-table.spec.tsx @@ -189,13 +189,8 @@ describe('Positions', () => { /> ); }); -<<<<<<< HEAD - const cells = screen.getAllByRole('gridcell'); - expect(cells[11].textContent).toEqual(''); -======= - expect(screen.getByRole('button', { name: 'Close' })).toBeInTheDocument(); ->>>>>>> 997dc6380 (test: update tests after tooltip changes) + expect(screen.getByTestId('close-position')).toBeInTheDocument(); }); it('do not display close button if openVolume is zero', async () => { diff --git a/libs/positions/src/lib/positions-table.tsx b/libs/positions/src/lib/positions-table.tsx index 80975d5d4..02c7331cd 100644 --- a/libs/positions/src/lib/positions-table.tsx +++ b/libs/positions/src/lib/positions-table.tsx @@ -21,6 +21,7 @@ import { ExternalLink, VegaIcon, VegaIconNames, + Pill, } from '@vegaprotocol/ui-toolkit'; import { volumePrefix, @@ -122,7 +123,21 @@ export const PositionsTable = ({ }: VegaICellRendererParams) => { if (!data || !value) return '-'; return ( - + + {data?.assetSymbol} + + {productTypeMap[productType] || productType} + + + } + /> ); }, }, diff --git a/libs/types/src/global-types-mappings.ts b/libs/types/src/global-types-mappings.ts index 4458530e2..e2096be2c 100644 --- a/libs/types/src/global-types-mappings.ts +++ b/libs/types/src/global-types-mappings.ts @@ -25,6 +25,7 @@ import type { DispatchMetric, StopOrderStatus, } from './__generated__/types'; +import type { ProductType } from './product'; export const AccountTypeMapping: { [T in AccountType]: string; @@ -513,3 +514,11 @@ export const PeggedReferenceMapping: { [R in PeggedReference]: string } = { PEGGED_REFERENCE_BEST_BID: 'Bid', PEGGED_REFERENCE_MID: 'Mid', }; + +export const ProductTypeMapping: Record = { + Future: 'Future', +}; + +export const ProductTypeShortName: Record = { + Future: 'FUTR', +}; diff --git a/libs/types/src/index.ts b/libs/types/src/index.ts index 763376bbb..620b07f56 100644 --- a/libs/types/src/index.ts +++ b/libs/types/src/index.ts @@ -1,3 +1,4 @@ export * from './__generated__/types'; export * from './candle'; export * from './global-types-mappings'; +export * from './product'; diff --git a/libs/types/src/product.ts b/libs/types/src/product.ts new file mode 100644 index 000000000..4811f83a3 --- /dev/null +++ b/libs/types/src/product.ts @@ -0,0 +1,3 @@ +import type { Product } from './__generated__/types'; + +export type ProductType = NonNullable;