Skip to content

Commit f57b6a2

Browse files
authored
Revamped Roadmap (#1024)
* add types to default static props function * parses markdown files and outputs it * adds new RoadMapStatus component + icons * uses React Markdown to render contents * format for mobile and change out illustrations * remove old Linear code * update strings and fix duped i18n key * swap back to old background images * add automated linting for roadmap markdown files * remove ellipsis and style links in roadmap
1 parent 419dbe2 commit f57b6a2

File tree

20 files changed

+1443
-1309
lines changed

20 files changed

+1443
-1309
lines changed

components/Issue.tsx

Lines changed: 0 additions & 99 deletions
This file was deleted.

components/IssueTimeline.tsx

Lines changed: 0 additions & 78 deletions
This file was deleted.

components/RoadmapStatus.tsx

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { defineMessages, useIntl } from "react-intl"
2+
3+
import CheckIcon from "../public/icons/check.svg?inline"
4+
import ExploringIcon from "../public/icons/exploring.svg?inline"
5+
import NextIcon from "../public/icons/next-release.svg?inline"
6+
import WorkingIcon from "../public/icons/working.svg?inline"
7+
import classNames from "classnames"
8+
9+
interface RoadmapStatusProps {
10+
status: "exploring" | "working" | "next" | "released"
11+
}
12+
13+
const messages = defineMessages({
14+
exploring: {
15+
id: "roadmap.status.exploring",
16+
defaultMessage: "Exploring",
17+
icon: ExploringIcon,
18+
},
19+
working: {
20+
id: "roadmap.status.working",
21+
defaultMessage: "Working",
22+
icon: WorkingIcon,
23+
},
24+
next: {
25+
id: "roadmap.status.next",
26+
defaultMessage: "Next release",
27+
icon: NextIcon,
28+
},
29+
released: {
30+
id: "roadmap.status.released",
31+
defaultMessage: "Released",
32+
icon: CheckIcon,
33+
},
34+
})
35+
36+
export function RoadmapStatus({ status }: RoadmapStatusProps) {
37+
const intl = useIntl()
38+
const Icon = messages[status].icon
39+
return (
40+
<span
41+
className={classNames(
42+
"px-3 py-1 text-b4 inline-flex gap-1 items-center rounded-md whitespace-nowrap",
43+
{
44+
"bg-[hsl(234,100%,94%)] text-blurple-600": status === "released",
45+
"bg-[hsl(141,84%,93%)] text-[hsl(141,100%,19%)]": status === "next",
46+
"bg-[hsl(48,97%,89%)] text-[hsl(23,91%,25%)]": status === "working",
47+
"bg-[hsl(0,100%,91%)] text-[hsl(0,100%,25%)]": status === "exploring",
48+
}
49+
)}
50+
>
51+
{Icon && <Icon className="size-4" />}
52+
{intl.formatMessage(messages[status])}
53+
</span>
54+
)
55+
}

components/donate/DonateCheckout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ function DonateCheckoutButtonText({ isLoading }: { isLoading: boolean }) {
211211
if (checkout.recurring) {
212212
return (
213213
<FormattedMessage
214-
id="donate_widget.checkout.pay_button"
214+
id="donate_widget.checkout.subscribe_button"
215215
defaultMessage="Subscribe for {total} every {frequency}"
216216
values={{
217217
total: checkout.total.total.amount,

0 commit comments

Comments
 (0)