Skip to content

Commit bcb5461

Browse files
committed
Convert time selection to Radio Button
1 parent 52169a8 commit bcb5461

File tree

1 file changed

+79
-23
lines changed

1 file changed

+79
-23
lines changed

src/components/TranslationLeaderboard.tsx

Lines changed: 79 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,72 @@ import { reverse, sortBy } from "lodash"
66
import Emoji from "./Emoji"
77
import { Option, OptionText } from "./SharedStyledComponents"
88
import Translation from "./Translation"
9-
import { Box, Flex, Img, Text, useColorModeValue } from "@chakra-ui/react"
9+
import {
10+
Box,
11+
Flex,
12+
Img,
13+
Text,
14+
useColorModeValue,
15+
useRadio,
16+
useRadioGroup,
17+
} from "@chakra-ui/react"
1018

1119
export interface IProps {
1220
monthData: any
1321
quarterData: any
1422
allTimeData: any
1523
}
1624

25+
const RadioCard = (props) => {
26+
const shadow = useColorModeValue("tableBox.light", "tableBox.dark")
27+
const { getInputProps, getCheckboxProps } = useRadio(props)
28+
29+
const input = getInputProps()
30+
const checkbox = getCheckboxProps()
31+
32+
return (
33+
<Flex
34+
as="label"
35+
{...checkbox}
36+
borderRadius="2rem"
37+
borderWidth="1px"
38+
borderStyle="solid"
39+
borderColor="text"
40+
color="text"
41+
alignItems="center"
42+
py={4}
43+
px={6}
44+
m={2}
45+
cursor="pointer"
46+
bg="transparent"
47+
w={{ base: "full", lg: "initial" }}
48+
justifyContent="center"
49+
ml={{ base: "0", lg: "2" }}
50+
mr={{ base: "0", lg: "2" }}
51+
_hover={{
52+
color: "primary",
53+
borderColor: "primary",
54+
}}
55+
_checked={{
56+
borderColor: "primary",
57+
color: "primary",
58+
boxShadow: shadow,
59+
}}
60+
>
61+
<input {...input} />
62+
<Text
63+
as="span"
64+
fontSize={{ base: "md", md: "lg" }}
65+
lineHeight="100%"
66+
textAlign="center"
67+
fontWeight={{ base: "semibold", md: "normal" }}
68+
>
69+
{props.children}
70+
</Text>
71+
</Flex>
72+
)
73+
}
74+
1775
const TranslationLeaderboard: React.FC<IProps> = ({
1876
monthData,
1977
quarterData,
@@ -44,6 +102,13 @@ const TranslationLeaderboard: React.FC<IProps> = ({
44102
updateFilterAmount(50)
45103
}
46104

105+
const { getRootProps, getRadioProps } = useRadioGroup({
106+
name: "framework",
107+
defaultValue: "monthData",
108+
onChange: updateDateRangeType,
109+
})
110+
const group = getRootProps()
111+
47112
return (
48113
<Box>
49114
<Flex
@@ -54,30 +119,21 @@ const TranslationLeaderboard: React.FC<IProps> = ({
54119
flexDirection={{ base: "column", lg: "inherit" }}
55120
w="full"
56121
>
57-
<Option
58-
onClick={() => updateDateRangeType("monthData")}
59-
isActive={dateRangeType === "monthData"}
60-
>
61-
<OptionText fontSize={"18px"}>
62-
<Translation id="page-contributing-translation-program-acknowledgements-translation-leaderboard-month-view" />
63-
</OptionText>
64-
</Option>
65-
<Option
66-
onClick={() => updateDateRangeType("quarterData")}
67-
isActive={dateRangeType === "quarterData"}
122+
<RadioCard key={"monthData"} {...getRadioProps({ value: "monthData" })}>
123+
<Translation id="page-contributing-translation-program-acknowledgements-translation-leaderboard-month-view" />
124+
</RadioCard>
125+
<RadioCard
126+
key={"quarterData"}
127+
{...getRadioProps({ value: "quarterData" })}
68128
>
69-
<OptionText fontSize={"18px"}>
70-
<Translation id="page-contributing-translation-program-acknowledgements-translation-leaderboard-quarter-view" />
71-
</OptionText>
72-
</Option>
73-
<Option
74-
onClick={() => updateDateRangeType("allTimeData")}
75-
isActive={dateRangeType === "allTimeData"}
129+
<Translation id="page-contributing-translation-program-acknowledgements-translation-leaderboard-quarter-view" />
130+
</RadioCard>
131+
<RadioCard
132+
key={"allTimeData"}
133+
{...getRadioProps({ value: "allTimeData" })}
76134
>
77-
<OptionText fontSize={"18px"}>
78-
<Translation id="page-contributing-translation-program-acknowledgements-translation-leaderboard-all-time-view" />
79-
</OptionText>
80-
</Option>
135+
<Translation id="page-contributing-translation-program-acknowledgements-translation-leaderboard-all-time-view" />
136+
</RadioCard>
81137
</Flex>
82138
<Box bg="background" boxShadow={tableBoxShadow} w="full" mb={8}>
83139
<Flex

0 commit comments

Comments
 (0)