1
1
import React , { useState } from "react"
2
- import { Box , Flex , GridItem , SimpleGrid } from "@chakra-ui/react"
3
2
4
3
import { cn } from "@/lib/utils/cn"
5
4
import { MatomoEventOptions , trackCustomEvent } from "@/lib/utils/matomo"
6
5
6
+ import { Flex } from "./ui/flex"
7
7
import Emoji from "./Emoji"
8
- import OldHeading from "./OldHeading"
9
- import Text from "./OldText"
10
8
11
9
export interface BoxItem {
12
10
emoji : string
@@ -32,20 +30,20 @@ const hashCode = (stringPhrase: string): number => {
32
30
33
31
// Theme variables from Theme.js
34
32
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 " ,
42
40
]
43
41
44
42
const BoxGrid = ( { items } : BoxGridProps ) => {
45
43
const [ indexOpen , setOpenIndex ] = useState ( 0 )
46
44
47
45
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 ">
49
47
{ items . map ( ( item , idx : number ) => {
50
48
let columnNumber = idx + 1
51
49
if ( columnNumber > 4 ) {
@@ -56,30 +54,20 @@ const BoxGrid = ({ items }: BoxGridProps) => {
56
54
const isOpen = idx === indexOpen
57
55
58
56
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 : "" } }
83
71
onClick = { ( ) => {
84
72
setOpenIndex ( idx )
85
73
trackCustomEvent ( {
@@ -99,26 +87,18 @@ const BoxGrid = ({ items }: BoxGridProps) => {
99
87
) }
100
88
text = { item . emoji }
101
89
/>
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 >
112
92
{ isOpen && (
113
- < Text fontSize = "xl" lineHeight = { 1.4 } color = "black300 ">
93
+ < p className = "mb-6 leading-xs text-gray-600 ">
114
94
{ item . description }
115
- </ Text >
95
+ </ p >
116
96
) }
117
- </ Box >
118
- </ GridItem >
97
+ </ div >
98
+ </ Flex >
119
99
)
120
100
} ) }
121
- </ SimpleGrid >
101
+ </ div >
122
102
)
123
103
}
124
104
0 commit comments