1
1
import React from "react" ;
2
+
2
3
import clsx from "clsx" ;
4
+
3
5
import Translate , { translate } from "@docusaurus/Translate" ;
4
6
import Link from "@docusaurus/Link" ;
5
7
import Image from "@theme/IdealImage" ;
6
8
import Heading from "@theme/Heading" ;
7
9
import { Button , ButtonGroup , Grid , Stack , useMediaQuery , useTheme } from "@mui/material" ;
8
10
import SettingsIcon from "@mui/icons-material/Settings" ;
9
11
import TipsAndUpdatesIcon from "@mui/icons-material/TipsAndUpdates" ;
10
-
11
12
import useBaseUrl from "@docusaurus/useBaseUrl" ;
12
13
13
- const Editions = [
14
- {
15
- name : "Budgie" ,
16
- url : "budgie" ,
17
- urlConfig : "budgie/configuration" ,
18
- urlTips : "budgie/tips-and-tricks" ,
19
- description : (
20
- < Translate id = "edition.budgie.description" >
21
- A feature-rich, luxurious desktop using the most modern technologies.
22
- </ Translate >
23
- ) ,
24
- } ,
25
- {
26
- name : "Plasma" ,
27
- url : "plasma" ,
28
- urlConfig : "plasma/configuration" ,
29
- urlTips : "plasma/tips-and-tricks" ,
30
- description : (
31
- < Translate id = "edition.plasma.description" >
32
- A sophisticated desktop experience for the tinkerers. Simple by default, powerful when needed.
33
- </ Translate >
34
- ) ,
35
- } ,
36
- {
37
- name : "GNOME" ,
38
- url : "gnome" ,
39
- urlConfig : "gnome/configuration" ,
40
- urlTips : "gnome/tips-and-tricks" ,
41
- description : (
42
- < Translate id = "edition.gnome.description" > A simple, streamlined desktop for more modern hardware.</ Translate >
43
- ) ,
44
- } ,
45
- {
46
- name : "MATE" ,
47
- url : "mate" ,
48
- urlConfig : "mate/configuration" ,
49
- urlTips : "mate/tips-and-tricks" ,
50
- description : (
51
- < Translate id = "edition.mate.description" > A traditional desktop for advanced users and older hardware.</ Translate >
52
- ) ,
53
- } ,
54
- {
55
- name : "Xfce" ,
56
- url : "xfce" ,
57
- urlConfig : "xfce/configuration" ,
58
- urlTips : "xfce/tips-and-tricks" ,
59
- description : (
60
- < Translate id = "edition.xfce.description" >
61
- A lightweight desktop that aims to be fast while still being friendly.
62
- </ Translate >
63
- ) ,
64
- } ,
65
- ] ;
14
+ import FaSettingsIcon from "@mui/icons-material/Settings" ;
15
+ import FaTipsAndUpdatesIcon from "@mui/icons-material/TipsAndUpdates" ;
66
16
67
- type EditionCardProps = {
68
- name : string ;
69
- url : string ;
70
- urlConfig : string ;
71
- urlTips : string ;
72
- description : JSX . Element ;
73
- } ;
17
+ import Editions from "@site/src/data/editions" ;
18
+ import { Edition } from "@site/src/types" ;
19
+
20
+ type EditionCardProps = Edition ;
74
21
75
22
const EditionCard = ( { name, url, urlConfig, urlTips, description } : EditionCardProps ) => {
76
23
const theme = useTheme ( ) ;
77
24
const hideIcons = useMediaQuery ( theme . breakpoints . down ( "xl" ) ) ;
78
25
const image = useBaseUrl ( `/img/${ name } .jpg` ) ;
79
26
80
27
return (
81
- < Grid xs = { 6 } >
28
+ < Grid size = { { xs : 6 } } >
82
29
< Stack className = { clsx ( "card" ) } height = { 1 } >
83
30
< Stack className = { clsx ( "card__image" ) } >
84
31
< Link to = { url } >
@@ -107,14 +54,14 @@ const EditionCard = ({ name, url, urlConfig, urlTips, description }: EditionCard
107
54
>
108
55
< Button
109
56
href = { urlConfig }
110
- startIcon = { ! hideIcons ? < SettingsIcon /> : undefined }
57
+ startIcon = { ! hideIcons ? < FaSettingsIcon /> : undefined }
111
58
sx = { { borderRadius : "10px" , paddingInline : 2 } }
112
59
>
113
60
< Translate id = "edition.card.configuration" > Configuration</ Translate >
114
61
</ Button >
115
62
< Button
116
63
href = { urlTips }
117
- startIcon = { ! hideIcons ? < TipsAndUpdatesIcon /> : undefined }
64
+ startIcon = { ! hideIcons ? < FaTipsAndUpdatesIcon /> : undefined }
118
65
sx = { { borderRadius : "10px" , paddingInline : 2 } }
119
66
>
120
67
< Translate id = "edition.card.tipsntricks" > Tips & Tricks </ Translate >
@@ -129,7 +76,7 @@ const EditionCard = ({ name, url, urlConfig, urlTips, description }: EditionCard
129
76
export const EditionCardsRow = ( ) => {
130
77
return (
131
78
< Grid container columns = { { xs : 6 , sm : 6 , md : 6 , lg : 12 } } spacing = { 2 } >
132
- { Editions . map ( ( edition ) => (
79
+ { Editions . map ( ( edition : Edition ) => (
133
80
< EditionCard key = { edition . name } { ...edition } />
134
81
) ) }
135
82
</ Grid >
0 commit comments