@@ -18,63 +18,63 @@ type Props = {
18
18
* Theme card component to hold the details of each theme in the themes page.
19
19
*/
20
20
const ThemeCard : React . FC < Props > = ( { theme, isPreviewed, onPreview, isLoading } ) => {
21
- const [ viewDetails , setViewDetails ] = useState ( false ) ;
21
+ const [ viewDetails , setViewDetails ] = useState ( false ) ;
22
22
23
- const onViewDetails = ( ) => {
24
- setViewDetails ( true ) ;
25
- } ;
23
+ const onViewDetails = ( ) => {
24
+ setViewDetails ( true ) ;
25
+ } ;
26
26
27
- const onClickPreview = ( ) => {
28
- onPreview ( theme . name ) ;
29
- } ;
27
+ const onClickPreview = ( ) => {
28
+ onPreview ( theme . name ) ;
29
+ } ;
30
30
31
- const handleCheckboxChange = ( ) => {
32
- onClickPreview ( ) ;
33
- } ;
31
+ const handleCheckboxChange = ( ) => {
32
+ onClickPreview ( ) ;
33
+ } ;
34
34
35
- if ( isLoading ) {
36
- return (
37
- < div >
38
- < div className = "my-4 mx-2 hidden md:block" >
39
- < Skeleton height = { 452 } />
40
- </ div >
41
- < div className = "my-4 mx-2 block md:hidden" >
42
- < Skeleton height = { 148 } />
43
- </ div >
44
- </ div >
45
- ) ;
46
- }
35
+ if ( isLoading ) {
36
+ return (
37
+ < div >
38
+ < div className = "my-4 mx-2 hidden md:block" >
39
+ < Skeleton height = { 452 } />
40
+ </ div >
41
+ < div className = "my-4 mx-2 block md:hidden" >
42
+ < Skeleton height = { 148 } />
43
+ </ div >
44
+ </ div >
45
+ ) ;
46
+ }
47
47
48
- return (
49
- < >
50
- < div
51
- className = { `flex flex-row items-center md:items-start md:flex-col
48
+ return (
49
+ < >
50
+ < div
51
+ className = { `flex flex-row items-center md:items-start md:flex-col
52
52
md:w-64 p-4 my-4 mx-2 border-2 border-solid rounded-xl
53
53
${ isPreviewed ? "border-blue-700" : "border-accent-600" } ` }
54
- >
55
- < div
56
- className = "flex-1 basis-1/3 md:basis-1/2 mr-3 flex flex-row
54
+ >
55
+ < div
56
+ className = "flex-1 basis-1/3 md:basis-1/2 mr-3 flex flex-row
57
57
overflow-hidden w-32 h-20 md:w-56 md:h-56 rounded-xl"
58
- >
59
- < img src = { theme . themeImg } alt = { theme . name } className = "w-60 h-60 object-cover object-left-top" />
60
- </ div >
61
- < div className = "flex-1 mr-4 basis-1/2 md:basis-1/3 flex flex-col md:pt-4" >
62
- < h2 className = "text-accent-50 text-lg font-medium mt-[-4px]" > { theme . name } </ h2 >
63
- < span className = "text-accent-300 text-sm" > { theme . description } </ span >
64
- </ div >
65
- < div className = "flex-1 basis-1/6 md:basis-1/6 flex flex-col" >
66
- < button onClick = { onViewDetails } className = "text-blue-500 text-sm my-4 w-20" >
67
- More Info (i)
68
- </ button >
69
- < label className = " ml-[2px] text-accent-50 text-sm md:text-base" >
70
- Select
71
- < input type = "checkbox" checked = { isPreviewed } onChange = { handleCheckboxChange } className = "ml-2" />
72
- </ label >
73
- </ div >
74
- </ div >
75
- < ThemeModal isOpen = { viewDetails } theme = { theme } onClose = { ( ) => setViewDetails ( false ) } />
76
- </ >
77
- ) ;
58
+ >
59
+ < img src = { theme . themeImg } alt = { theme . name } className = "w-60 h-60 object-cover object-left-top" />
60
+ </ div >
61
+ < div className = "flex-1 mr-4 basis-1/2 md:basis-1/3 flex flex-col md:pt-4" >
62
+ < h2 className = "text-accent-50 text-lg font-medium mt-[-4px]" > { theme . name } </ h2 >
63
+ < span className = "text-accent-300 text-sm" > { theme . description } </ span >
64
+ </ div >
65
+ < div className = "flex-1 basis-1/6 md:basis-1/6 flex flex-col" >
66
+ < button onClick = { onViewDetails } className = "text-blue-500 text-sm my-4 w-20" >
67
+ More Info (i)
68
+ </ button >
69
+ < label className = " ml-[2px] text-accent-50 text-sm md:text-base" >
70
+ Select
71
+ < input type = "checkbox" checked = { isPreviewed } onChange = { handleCheckboxChange } className = "ml-2" />
72
+ </ label >
73
+ </ div >
74
+ </ div >
75
+ < ThemeModal isOpen = { viewDetails } theme = { theme } onClose = { ( ) => setViewDetails ( false ) } />
76
+ </ >
77
+ ) ;
78
78
} ;
79
79
80
80
export default ThemeCard ;
0 commit comments