Skip to content

Commit e12c00e

Browse files
authored
fix: time selector updated to align with price chart (Uniswap#4425)
* fix time * displays
1 parent c25971e commit e12c00e

File tree

3 files changed

+25
-24
lines changed

3 files changed

+25
-24
lines changed

src/components/Tokens/TokenDetails/PriceChart.tsx

+4-11
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,9 @@ import {
2525
} from 'utils/formatChartTimes'
2626

2727
import LineChart from '../../Charts/LineChart'
28+
import { DISPLAYS, ORDERED_TIMES } from '../TokenTable/TimeSelector'
2829

2930
// TODO: This should be combined with the logic in TimeSelector.
30-
const TIME_DISPLAYS: [TimePeriod, string][] = [
31-
[TimePeriod.HOUR, '1H'],
32-
[TimePeriod.DAY, '1D'],
33-
[TimePeriod.WEEK, '1W'],
34-
[TimePeriod.MONTH, '1M'],
35-
[TimePeriod.YEAR, '1Y'],
36-
[TimePeriod.ALL, 'All'],
37-
]
3831

3932
type PricePoint = { value: number; timestamp: number }
4033

@@ -307,9 +300,9 @@ export function PriceChart({ width, height, token }: PriceChartProps) {
307300
</LineChart>
308301
<TimeOptionsWrapper>
309302
<TimeOptionsContainer>
310-
{TIME_DISPLAYS.map(([value, display]) => (
311-
<TimeButton key={display} active={timePeriod === value} onClick={() => setTimePeriod(value)}>
312-
{display}
303+
{ORDERED_TIMES.map((time) => (
304+
<TimeButton key={DISPLAYS[time]} active={timePeriod === time} onClick={() => setTimePeriod(time)}>
305+
{DISPLAYS[time]}
313306
</TimeButton>
314307
))}
315308
</TimeOptionsContainer>

src/components/Tokens/TokenTable/TimeSelector.tsx

+19-11
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,23 @@ import styled, { useTheme } from 'styled-components/macro'
1010
import { MOBILE_MEDIA_BREAKPOINT, SMALL_MEDIA_BREAKPOINT } from '../constants'
1111
import { filterTimeAtom } from '../state'
1212

13-
export const TIME_DISPLAYS: { [key: string]: string } = {
14-
hour: '1H',
15-
day: '1D',
16-
week: '1W',
17-
month: '1M',
18-
year: '1Y',
13+
export const DISPLAYS: Record<TimePeriod, string> = {
14+
[TimePeriod.HOUR]: '1H',
15+
[TimePeriod.DAY]: '1D',
16+
[TimePeriod.WEEK]: '1W',
17+
[TimePeriod.MONTH]: '1M',
18+
[TimePeriod.YEAR]: '1Y',
19+
[TimePeriod.ALL]: 'All',
1920
}
2021

21-
const TIMES = [TimePeriod.HOUR, TimePeriod.DAY, TimePeriod.WEEK, TimePeriod.MONTH, TimePeriod.YEAR]
22+
export const ORDERED_TIMES = [
23+
TimePeriod.HOUR,
24+
TimePeriod.DAY,
25+
TimePeriod.WEEK,
26+
TimePeriod.MONTH,
27+
TimePeriod.YEAR,
28+
TimePeriod.ALL,
29+
]
2230

2331
const InternalMenuItem = styled.div`
2432
flex: 1;
@@ -136,23 +144,23 @@ export default function TimeSelector() {
136144
<StyledMenu ref={node}>
137145
<StyledMenuButton onClick={toggleMenu} aria-label={`timeSelector`} open={open}>
138146
<StyledMenuContent>
139-
{TIME_DISPLAYS[activeTime]}
147+
{DISPLAYS[activeTime]}
140148
<Chevron open={open}>
141149
{open ? <ChevronUp size={15} viewBox="0 0 24 20" /> : <ChevronDown size={15} viewBox="0 0 24 20" />}
142150
</Chevron>
143151
</StyledMenuContent>
144152
</StyledMenuButton>
145153
{open && (
146154
<MenuTimeFlyout>
147-
{TIMES.map((time) => (
155+
{ORDERED_TIMES.map((time) => (
148156
<InternalLinkMenuItem
149-
key={time}
157+
key={DISPLAYS[time]}
150158
onClick={() => {
151159
setTime(time)
152160
toggleMenu()
153161
}}
154162
>
155-
<div>{TIME_DISPLAYS[time]}</div>
163+
<div>{DISPLAYS[time]}</div>
156164
{time === activeTime && <Check color={theme.accentAction} size={16} />}
157165
</InternalLinkMenuItem>
158166
))}

src/components/Tokens/TokenTable/TokenRow.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import {
3333
useToggleFavorite,
3434
} from '../state'
3535
import { Category, SortDirection } from '../types'
36-
import { TIME_DISPLAYS } from './TimeSelector'
36+
import { DISPLAYS } from './TimeSelector'
3737

3838
const ArrowCell = styled.div`
3939
padding-left: 2px;
@@ -294,7 +294,7 @@ const LogoContainer = styled.div`
294294

295295
/* formatting for volume with timeframe header display */
296296
function getHeaderDisplay(category: string, timeframe: TimePeriod): string {
297-
if (category === Category.volume) return `${TIME_DISPLAYS[timeframe]} ${category}`
297+
if (category === Category.volume) return `${DISPLAYS[timeframe]} ${category}`
298298
return category
299299
}
300300

0 commit comments

Comments
 (0)