Skip to content

Commit 377ec42

Browse files
authored
feat: add good first engine issues list (#202)
1 parent fdedd4d commit 377ec42

1 file changed

Lines changed: 114 additions & 0 deletions

File tree

src/pages/contribute.jsx

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,18 @@ function GettingStarted({ data }) {
3333
toCardData(project, defaultCover)
3434
);
3535

36+
const engine = data.engineIssues.nodes[0];
37+
const engineIssues = engine.issues.nodes
38+
.map((issue) => {
39+
const { title, author, labels, updatedAt, url } = issue;
40+
const { login } = author;
41+
const { nodes } = labels;
42+
const tags = nodes.flatMap((node) => node.name);
43+
return { title, author: login, tags, date: updatedAt, url };
44+
})
45+
.sort((a, b) =>
46+
new Date(a.date).getTime() <= new Date(b.date).getTime() ? 1 : 0
47+
);
3648
const moduleIssues = data.moduleIssues.nodes
3749
.filter((module) => module.issues.nodes.length !== 0)
3850
.flatMap((module) => {
@@ -336,6 +348,13 @@ function GettingStarted({ data }) {
336348
</a>
337349
</li>
338350
</ul>
351+
<p>
352+
Jump below to our{" "}
353+
<Link to="#good-first-engine-issues" className="text-success">
354+
<b>Good First Issues in Engine</b>
355+
</Link>
356+
.
357+
</p>
339358
</Col>
340359
</Row>
341360
</Section>
@@ -459,6 +478,81 @@ function GettingStarted({ data }) {
459478
))}
460479
</Col>
461480
</Section>
481+
<Section tag="h4" title="Good First Engine Issues">
482+
<Row className="justify-content-center align-items-start">
483+
<Col md="8" className="text-justify justify-content-center">
484+
<p>
485+
Find some of our engine issues below. If you would like to work
486+
on one of them, start a draft PR for it. You can also view the
487+
full list on{" "}
488+
<a
489+
className="text-success font-weight-bold"
490+
href="https://github.com/MovingBlocks/Terasology/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+First+Issue%22"
491+
>
492+
GitHub
493+
</a>
494+
.
495+
</p>
496+
</Col>
497+
</Row>
498+
<Col lg="12" className="card-spacing">
499+
{engineIssues.map(({ title, tags, author, url, date }) => (
500+
<Row className="justify-content-start align-items-start">
501+
<Card
502+
className="row_shadow h-100 md-12 my-3"
503+
style={{ width: "100%" }}
504+
>
505+
<CardHeader className="bg-success" />
506+
<a
507+
href={url}
508+
className="btn-light"
509+
target="_blank"
510+
rel="noreferrer"
511+
>
512+
<Row className="justify-content-start align-items-center">
513+
<Col md="1" className="ml-5 pt-0 pb-2">
514+
<div>
515+
<IconContext.Provider value={githubIconSize}>
516+
<FaGithub />
517+
</IconContext.Provider>
518+
</div>
519+
</Col>
520+
<Col md="10" className="pt-0 pb-2">
521+
<CardBody>
522+
{tags ? (
523+
<CardSubtitle tag="h7">
524+
<Tags tags={tags} />
525+
</CardSubtitle>
526+
) : (
527+
""
528+
)}
529+
<CardTitle tag="h5" className="mt-3">
530+
{title}
531+
</CardTitle>
532+
{author ? (
533+
<CardSubtitle className="text-muted">
534+
<b>Author:</b> {author}
535+
</CardSubtitle>
536+
) : (
537+
""
538+
)}
539+
{date ? (
540+
<CardSubtitle className="text-muted">
541+
<b>Last updated on: </b>
542+
{moment(date).format("MMMM DD, YYYY")}
543+
</CardSubtitle>
544+
) : (
545+
""
546+
)}
547+
</CardBody>
548+
</Col>
549+
</Row>
550+
</a>
551+
</Card>
552+
</Row>
553+
))}
554+
</Col>
555+
</Section>
462556
</Section>
463557
</Layout>
464558
);
@@ -505,6 +599,26 @@ export const pageQuery = graphql`
505599
}
506600
}
507601
}
602+
engineIssues: allTerasologyEngine {
603+
nodes {
604+
issues {
605+
nodes {
606+
id
607+
title
608+
author {
609+
login
610+
}
611+
labels {
612+
nodes {
613+
name
614+
}
615+
}
616+
updatedAt
617+
url
618+
}
619+
}
620+
}
621+
}
508622
projectCover: file(name: { eq: "defaultCardcover" }, ext: { eq: ".jpg" }) {
509623
childImageSharp {
510624
gatsbyImageData

0 commit comments

Comments
 (0)