Skip to content

Commit f6e6f45

Browse files
committed
editions: Split edition definitions to own file
Right now, the data for our website is a bit spread out. People and teams live in `src/data`, but others like our editions and top-level categories live in the component and page files. Let's make everything easier to find. This moves the edition definitions to a file under `src/data`, making the component responsible only for the actual UI of the site. I did this all jumbled up with #641, so it might be a good idea to merge this PR *after* that one, just in case I missed something when trying to separate all of my changes. Signed-off-by: Evan Maddock <maddock.evan@vivaldi.net>
1 parent a079ac2 commit f6e6f45

File tree

3 files changed

+82
-69
lines changed

3 files changed

+82
-69
lines changed

src/components/editions/index.tsx

Lines changed: 14 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,23 @@
11
import React from "react";
2+
23
import clsx from "clsx";
4+
35
import Translate, { translate } from "@docusaurus/Translate";
46
import Link from "@docusaurus/Link";
5-
import Image from "@theme/IdealImage";
7+
import useBaseUrl from "@docusaurus/useBaseUrl";
8+
69
import Heading from "@theme/Heading";
10+
import Image from "@theme/IdealImage";
11+
712
import { Button, ButtonGroup, Stack, useMediaQuery, useTheme } from "@mui/material";
813
import Grid2 from "@mui/material/Unstable_Grid2";
9-
import SettingsIcon from "@mui/icons-material/Settings";
10-
import TipsAndUpdatesIcon from "@mui/icons-material/TipsAndUpdates";
14+
import FaSettingsIcon from "@mui/icons-material/Settings";
15+
import FaTipsAndUpdatesIcon from "@mui/icons-material/TipsAndUpdates";
1116

12-
import useBaseUrl from "@docusaurus/useBaseUrl";
17+
import Editions from "@site/src/data/editions";
18+
import { Edition } from "@site/src/types";
1319

14-
const Editions = [
15-
{
16-
name: "Budgie",
17-
url: "budgie",
18-
urlConfig: "budgie/configuration",
19-
urlTips: "budgie/tips-and-tricks",
20-
description: (
21-
<Translate id="edition.budgie.description">
22-
A feature-rich, luxurious desktop using the most modern technologies.
23-
</Translate>
24-
),
25-
},
26-
{
27-
name: "Plasma",
28-
url: "plasma",
29-
urlConfig: "plasma/configuration",
30-
urlTips: "plasma/tips-and-tricks",
31-
description: (
32-
<Translate id="edition.plasma.description">
33-
A sophisticated desktop experience for the tinkerers. Simple by default, powerful when needed.
34-
</Translate>
35-
),
36-
},
37-
{
38-
name: "GNOME",
39-
url: "gnome",
40-
urlConfig: "gnome/configuration",
41-
urlTips: "gnome/tips-and-tricks",
42-
description: (
43-
<Translate id="edition.gnome.description">A simple, streamlined desktop for more modern hardware.</Translate>
44-
),
45-
},
46-
{
47-
name: "MATE",
48-
url: "mate",
49-
urlConfig: "mate/configuration",
50-
urlTips: "mate/tips-and-tricks",
51-
description: (
52-
<Translate id="edition.mate.description">A traditional desktop for advanced users and older hardware.</Translate>
53-
),
54-
},
55-
{
56-
name: "Xfce",
57-
url: "xfce",
58-
urlConfig: "xfce/configuration",
59-
urlTips: "xfce/tips-and-tricks",
60-
description: (
61-
<Translate id="edition.xfce.description">
62-
A lightweight desktop that aims to be fast while still being friendly.
63-
</Translate>
64-
),
65-
},
66-
];
67-
68-
type EditionCardProps = {
69-
name: string;
70-
url: string;
71-
urlConfig: string;
72-
urlTips: string;
73-
description: JSX.Element;
74-
};
20+
type EditionCardProps = Edition;
7521

7622
const EditionCard = ({ name, url, urlConfig, urlTips, description }: EditionCardProps) => {
7723
const theme = useTheme();
@@ -84,7 +30,7 @@ const EditionCard = ({ name, url, urlConfig, urlTips, description }: EditionCard
8430
<Stack className={clsx("card__image")}>
8531
<Link to={url}>
8632
<Image
87-
img={image}
33+
img={require(image)}
8834
alt={translate({
8935
message: "Screenshot of {name} edition",
9036
id: "edition.card.image",
@@ -108,14 +54,14 @@ const EditionCard = ({ name, url, urlConfig, urlTips, description }: EditionCard
10854
>
10955
<Button
11056
href={urlConfig}
111-
startIcon={!hideIcons ? <SettingsIcon /> : undefined}
57+
startIcon={!hideIcons ? <FaSettingsIcon /> : undefined}
11258
sx={{ borderRadius: "10px", paddingInline: 2 }}
11359
>
11460
<Translate id="edition.card.configuration">Configuration</Translate>
11561
</Button>
11662
<Button
11763
href={urlTips}
118-
startIcon={!hideIcons ? <TipsAndUpdatesIcon /> : undefined}
64+
startIcon={!hideIcons ? <FaTipsAndUpdatesIcon /> : undefined}
11965
sx={{ borderRadius: "10px", paddingInline: 2 }}
12066
>
12167
<Translate id="edition.card.tipsntricks">Tips & Tricks</Translate>

src/data/editions.tsx

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { Edition } from "../types";
2+
3+
import Translate from "@docusaurus/Translate";
4+
5+
const Editions: Edition[] = [
6+
{
7+
name: "Budgie",
8+
url: "budgie",
9+
urlConfig: "budgie/configuration",
10+
urlTips: "budgie/tips-and-tricks",
11+
description: (
12+
<Translate id="edition.budgie.description">
13+
A feature-rich, luxurious desktop using the most modern technologies.
14+
</Translate>
15+
),
16+
},
17+
{
18+
name: "Plasma",
19+
url: "plasma",
20+
urlConfig: "plasma/configuration",
21+
urlTips: "plasma/tips-and-tricks",
22+
description: (
23+
<Translate id="edition.plasma.description">
24+
A sophisticated desktop experience for the tinkerers. Simple by default, powerful when needed.
25+
</Translate>
26+
),
27+
},
28+
{
29+
name: "GNOME",
30+
url: "gnome",
31+
urlConfig: "gnome/configuration",
32+
urlTips: "gnome/tips-and-tricks",
33+
description: (
34+
<Translate id="edition.gnome.description">A simple, streamlined desktop for more modern hardware.</Translate>
35+
),
36+
},
37+
{
38+
name: "MATE",
39+
url: "mate",
40+
urlConfig: "mate/configuration",
41+
urlTips: "mate/tips-and-tricks",
42+
description: (
43+
<Translate id="edition.mate.description">A traditional desktop for advanced users and older hardware.</Translate>
44+
),
45+
},
46+
{
47+
name: "Xfce",
48+
url: "xfce",
49+
urlConfig: "xfce/configuration",
50+
urlTips: "xfce/tips-and-tricks",
51+
description: (
52+
<Translate id="edition.xfce.description">
53+
A lightweight desktop that aims to be fast while still being friendly.
54+
</Translate>
55+
),
56+
},
57+
];
58+
59+
export default Editions;

src/types.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { SvgIconTypeMap } from "@mui/material";
22
import { OverridableComponent } from "@mui/material/OverridableComponent";
3-
import { ComponentType, JSXElementConstructor, SVGProps } from "react";
3+
import { ComponentType, JSX, JSXElementConstructor, SVGProps } from "react";
44
import { PropSidebarItemLink } from "@docusaurus/plugin-content-docs";
55

66
export enum WebsiteType {
@@ -15,6 +15,14 @@ type DocImg = {
1515

1616
export type DocSection = PropSidebarItemLink & DocImg;
1717

18+
export type Edition = {
19+
name: string;
20+
url: string;
21+
urlConfig: string;
22+
urlTips: string;
23+
description: JSX.Element;
24+
};
25+
1826
export type Person = {
1927
description: string;
2028
matrix?: string;

0 commit comments

Comments
 (0)