From 72a827008426c5f37dfd472171840f1d792aa87c Mon Sep 17 00:00:00 2001 From: Mike Grabowski Date: Tue, 15 Nov 2022 02:45:16 +0100 Subject: [PATCH] fix: do not show floor/volume change on all (#5214) * fix: do not show floor/volume change on all * chore: nit * chore: add new type of cell and fix lint * chore: one more place --- src/nft/components/explore/Cells/Cells.tsx | 2 ++ .../components/explore/CollectionTable.tsx | 22 ++++++++++++++----- src/nft/components/explore/Table.tsx | 12 +++++----- .../explore/TrendingCollections.tsx | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/nft/components/explore/Cells/Cells.tsx b/src/nft/components/explore/Cells/Cells.tsx index 6815be93903..9e77431b6f3 100644 --- a/src/nft/components/explore/Cells/Cells.tsx +++ b/src/nft/components/explore/Cells/Cells.tsx @@ -129,6 +129,8 @@ export const EthCell = ({ ) } +export const TextCell = ({ value }: { value: string }) => {value} + export const VolumeCell = ({ value, denomination, diff --git a/src/nft/components/explore/CollectionTable.tsx b/src/nft/components/explore/CollectionTable.tsx index 1576dcc8106..41eedbf2c10 100644 --- a/src/nft/components/explore/CollectionTable.tsx +++ b/src/nft/components/explore/CollectionTable.tsx @@ -1,9 +1,9 @@ import { BigNumber } from '@ethersproject/bignumber' +import { CollectionTableColumn, TimePeriod } from 'nft/types' import { useMemo } from 'react' import { CellProps, Column, Row } from 'react-table' -import { CollectionTableColumn } from '../../types' -import { ChangeCell, CollectionTitleCell, DiscreteNumberCell, EthCell, VolumeCell } from './Cells/Cells' +import { ChangeCell, CollectionTitleCell, DiscreteNumberCell, EthCell, TextCell, VolumeCell } from './Cells/Cells' import { Table } from './Table' export enum ColumnHeaders { @@ -20,7 +20,7 @@ const compareFloats = (a: number, b: number): 1 | -1 => { return Math.round(a * 100000) >= Math.round(b * 100000) ? 1 : -1 } -const CollectionTable = ({ data }: { data: CollectionTableColumn[] }) => { +const CollectionTable = ({ data, timePeriod }: { data: CollectionTableColumn[]; timePeriod: TimePeriod }) => { const floorSort = useMemo(() => { return (rowA: Row, rowB: Row) => { const aFloor = BigNumber.from(rowA.original.floor.value ?? 0) @@ -76,9 +76,14 @@ const CollectionTable = ({ data }: { data: CollectionTableColumn[] }) => { Header: ColumnHeaders.FloorChange, accessor: ({ floor }) => floor.value, sortDescFirst: true, + disableSortBy: timePeriod === TimePeriod.AllTime, sortType: floorChangeSort, Cell: function changeCell(cell: CellProps) { - return + return timePeriod === TimePeriod.AllTime ? ( + + ) : ( + + ) }, }, { @@ -102,9 +107,14 @@ const CollectionTable = ({ data }: { data: CollectionTableColumn[] }) => { Header: ColumnHeaders.VolumeChange, accessor: ({ volume }) => volume.value, sortDescFirst: true, + disableSortBy: timePeriod === TimePeriod.AllTime, sortType: volumeChangeSort, Cell: function changeCell(cell: CellProps) { - return + return timePeriod === TimePeriod.AllTime ? ( + + ) : ( + + ) }, }, { @@ -125,7 +135,7 @@ const CollectionTable = ({ data }: { data: CollectionTableColumn[] }) => { }, }, ], - [floorChangeSort, floorSort, volumeChangeSort, volumeSort] + [floorChangeSort, floorSort, volumeChangeSort, volumeSort, timePeriod] ) return ( <> diff --git a/src/nft/components/explore/Table.tsx b/src/nft/components/explore/Table.tsx index 36b87d7e836..b4c56496601 100644 --- a/src/nft/components/explore/Table.tsx +++ b/src/nft/components/explore/Table.tsx @@ -43,15 +43,15 @@ const StyledLoadingRow = styled.tr` height: 80px; ` -const StyledHeader = styled.th<{ isFirstHeader: boolean }>` - ${({ isFirstHeader }) => !isFirstHeader && `cursor: pointer;`} +const StyledHeader = styled.th<{ disabled?: boolean }>` + ${({ disabled }) => !disabled && `cursor: pointer;`} :hover { - ${({ theme, isFirstHeader }) => !isFirstHeader && `opacity: ${theme.opacity.hover};`} + ${({ theme, disabled }) => !disabled && `opacity: ${theme.opacity.hover};`} } :active { - ${({ theme, isFirstHeader }) => !isFirstHeader && `opacity: ${theme.opacity.click};`} + ${({ theme, disabled }) => !disabled && `opacity: ${theme.opacity.click};`} } ` @@ -154,7 +154,7 @@ export function Table>({ textAlign: index === 0 ? 'left' : 'right', paddingLeft: index === 0 ? (isMobile ? '16px' : '52px') : 0, }} - isFirstHeader={index === 0} + disabled={column.disableSortBy} key={index} > @@ -240,7 +240,7 @@ function LoadingTable({ headerGroups, visibleColumns, ...props }: LoadingTablePr textAlign: index === 0 ? 'left' : 'right', paddingLeft: index === 0 ? '52px' : 0, }} - isFirstHeader={index === 0} + disabled={index === 0} key={index} > diff --git a/src/nft/components/explore/TrendingCollections.tsx b/src/nft/components/explore/TrendingCollections.tsx index ad1cccaa078..f1a701422f7 100644 --- a/src/nft/components/explore/TrendingCollections.tsx +++ b/src/nft/components/explore/TrendingCollections.tsx @@ -155,7 +155,7 @@ const TrendingCollections = () => { - + ) }