Skip to content

Commit 3795237

Browse files
committed
Migrate BoxGrid to Shadcn
1 parent cf0fbfc commit 3795237

File tree

1 file changed

+30
-50
lines changed

1 file changed

+30
-50
lines changed

src/components/BoxGrid.tsx

Lines changed: 30 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import React, { useState } from "react"
2-
import { Box, Flex, GridItem, SimpleGrid } from "@chakra-ui/react"
32

43
import { cn } from "@/lib/utils/cn"
54
import { MatomoEventOptions, trackCustomEvent } from "@/lib/utils/matomo"
65

6+
import { Flex } from "./ui/flex"
77
import Emoji from "./Emoji"
8-
import OldHeading from "./OldHeading"
9-
import Text from "./OldText"
108

119
export interface BoxItem {
1210
emoji: string
@@ -32,20 +30,20 @@ const hashCode = (stringPhrase: string): number => {
3230

3331
// Theme variables from Theme.js
3432
const colors = [
35-
"gridYellow",
36-
"gridRed",
37-
"gridBlue",
38-
"gridGreen",
39-
"warning",
40-
"gridPink",
41-
"gridPurple",
33+
"#ffe78e",
34+
"#ef7d7d",
35+
"#a7d0f4",
36+
"#6fc4a0",
37+
"#ffe3d3",
38+
"#ffa1c3",
39+
"#a4a4ff",
4240
]
4341

4442
const BoxGrid = ({ items }: BoxGridProps) => {
4543
const [indexOpen, setOpenIndex] = useState(0)
4644

4745
return (
48-
<SimpleGrid columns={{ base: 1, lg: 4 }} my={16} borderRadius="sm">
46+
<div className="my-16 grid grid-cols-1 rounded-sm lg:grid-cols-4">
4947
{items.map((item, idx: number) => {
5048
let columnNumber = idx + 1
5149
if (columnNumber > 4) {
@@ -56,30 +54,20 @@ const BoxGrid = ({ items }: BoxGridProps) => {
5654
const isOpen = idx === indexOpen
5755

5856
return (
59-
<GridItem
60-
as={Flex}
61-
rowStart={{ ...(isOpen && { lg: 1 }) }}
62-
rowEnd={{ ...(isOpen && { lg: 3 }) }}
63-
colStart={{ ...(isOpen && { lg: columnNumber }) }}
64-
color={isOpen ? "black300" : "text"}
65-
cursor="pointer"
66-
bg={isOpen ? color : "background.base"}
67-
direction={{
68-
base: isOpen ? "column" : "column-reverse",
69-
sm: isOpen ? "column" : "row-reverse",
70-
lg: isOpen ? "column" : "column-reverse",
71-
}}
72-
align={{ base: "center", lg: "stretch" }}
73-
justify="space-between"
74-
border="1px solid"
75-
borderColor="text"
76-
p={6}
77-
_hover={{
78-
bg: isOpen ? color : "ednBackground",
79-
transition: "transform 0.5s",
80-
transform: "skewX(-5deg)",
81-
boxShadow: "tableBoxShadow",
82-
}}
57+
<Flex
58+
className={cn(
59+
"cursor-pointer items-center justify-between border border-body p-6 transition-transform duration-500 hover:-skew-x-6 hover:shadow-table-box-hover lg:items-stretch",
60+
isOpen
61+
? [
62+
"flex-col text-gray-600 sm:flex-col lg:row-start-1 lg:row-end-3 lg:flex-col",
63+
columnNumber === 1 && "lg:col-start-1",
64+
columnNumber === 2 && "lg:col-start-2",
65+
columnNumber === 3 && "lg:col-start-3",
66+
columnNumber === 4 && "lg:col-start-4",
67+
]
68+
: "flex-col-reverse bg-background text-body hover:bg-background-highlight sm:flex-row-reverse lg:flex-col-reverse"
69+
)}
70+
style={{ backgroundColor: isOpen ? color : "" }}
8371
onClick={() => {
8472
setOpenIndex(idx)
8573
trackCustomEvent({
@@ -99,26 +87,18 @@ const BoxGrid = ({ items }: BoxGridProps) => {
9987
)}
10088
text={item.emoji}
10189
/>
102-
<Box>
103-
<OldHeading
104-
as="h3"
105-
fontSize="2.5rem"
106-
fontWeight="normal"
107-
mt={0}
108-
lineHeight={1.4}
109-
>
110-
{item.title}
111-
</OldHeading>
90+
<div>
91+
<h3 className="mb-8 mt-0 leading-xs">{item.title}</h3>
11292
{isOpen && (
113-
<Text fontSize="xl" lineHeight={1.4} color="black300">
93+
<p className="mb-6 leading-xs text-gray-600">
11494
{item.description}
115-
</Text>
95+
</p>
11696
)}
117-
</Box>
118-
</GridItem>
97+
</div>
98+
</Flex>
11999
)
120100
})}
121-
</SimpleGrid>
101+
</div>
122102
)
123103
}
124104

0 commit comments

Comments
 (0)