Skip to content

Commit 36116c3

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent e8827f0 commit 36116c3

File tree

4 files changed

+72
-53
lines changed

4 files changed

+72
-53
lines changed

src/components/Dashboard/Announcements.tsx

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
11
import * as React from 'react';
22
import { AnnouncementInfo } from '../../models/announcement';
3-
import Markdown from '../markdown/Markdown';
43
import { cn } from '../../utils/utils';
4+
import Markdown from '../markdown/Markdown';
55

66
/**
7-
*
7+
*
88
* @param announcements List of information given to render
99
* @param className For overriding the default announcement container's styles
1010
* @param filterFn To be used in case you don't want to display all announcements
11-
* @returns
11+
* @returns
1212
*/
1313
export default function Announcements({
1414
announcements,
1515
className,
16-
filterFn
16+
filterFn,
1717
}: {
1818
announcements: AnnouncementInfo[];
1919
className?: string;
2020
filterFn?: (announcement: AnnouncementInfo) => boolean;
2121
}) {
2222
return (
23-
<div className={cn("flex overflow-x-auto sm:px-6 lg:px-8 py-4 grid lg:grid-cols-2 gap-8", className)}>
23+
<div
24+
className={cn(
25+
'flex overflow-x-auto sm:px-6 lg:px-8 py-4 grid lg:grid-cols-2 gap-8',
26+
className
27+
)}
28+
>
2429
{announcements.filter(filterFn ?? (() => true)).map(announcement => (
2530
<div
2631
className="bg-white dark:bg-gray-800 shadow transition sm:rounded-lg"

src/pages/announcements.tsx

+49-43
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,57 @@
1-
import { PageProps, graphql } from "gatsby";
2-
import { AnnouncementInfo, graphqlToAnnouncementInfo } from "../models/announcement";
3-
import * as React from "react";
4-
import Layout from "../components/layout";
5-
import SEO from "../components/seo";
6-
import TopNavigationBar from "../components/TopNavigationBar/TopNavigationBar";
7-
import Announcements from "../components/Dashboard/Announcements";
1+
import { PageProps, graphql } from 'gatsby';
2+
import * as React from 'react';
3+
import Announcements from '../components/Dashboard/Announcements';
4+
import TopNavigationBar from '../components/TopNavigationBar/TopNavigationBar';
5+
import Layout from '../components/layout';
6+
import SEO from '../components/seo';
7+
import {
8+
AnnouncementInfo,
9+
graphqlToAnnouncementInfo,
10+
} from '../models/announcement';
811

912
export default function AnnouncementsPage(props: PageProps) {
10-
const { announcements } = props.data as any;
11-
const parsedAnnouncements: AnnouncementInfo[] = React.useMemo(() => {
12-
return announcements.edges.map(node =>
13-
graphqlToAnnouncementInfo(node.node)
14-
);
15-
}, []);
16-
17-
return (
18-
<Layout>
19-
<SEO title="Announcements" />
20-
<div className="min-h-screen bg-gray-100 dark:bg-dark-surface">
21-
<TopNavigationBar linkLogoToIndex={true} redirectToDashboard={true} />
22-
<h1 className="text-3xl font-bold leading-tight text-gray-900 dark:text-dark-high-emphasis text-center mx-auto mt-6">
23-
Announcements
24-
</h1>
25-
<main className="pb-12">
26-
<Announcements className="lg:grid-cols-1 max-w-xl px-12 mx-6 sm:mx-auto" announcements={parsedAnnouncements} />
27-
</main>
28-
</div>
29-
</Layout>
13+
const { announcements } = props.data as any;
14+
const parsedAnnouncements: AnnouncementInfo[] = React.useMemo(() => {
15+
return announcements.edges.map(node =>
16+
graphqlToAnnouncementInfo(node.node)
3017
);
18+
}, []);
19+
20+
return (
21+
<Layout>
22+
<SEO title="Announcements" />
23+
<div className="min-h-screen bg-gray-100 dark:bg-dark-surface">
24+
<TopNavigationBar linkLogoToIndex={true} redirectToDashboard={true} />
25+
<h1 className="text-3xl font-bold leading-tight text-gray-900 dark:text-dark-high-emphasis text-center mx-auto mt-6">
26+
Announcements
27+
</h1>
28+
<main className="pb-12">
29+
<Announcements
30+
className="lg:grid-cols-1 max-w-xl px-12 mx-6 sm:mx-auto"
31+
announcements={parsedAnnouncements}
32+
/>
33+
</main>
34+
</div>
35+
</Layout>
36+
);
3137
}
3238

3339
export const pageQuery = graphql`
34-
query {
35-
announcements: allXdm(
36-
filter: { fileAbsolutePath: { regex: "/announcements/" } }
37-
sort: { order: DESC, fields: frontmatter___order }
38-
) {
39-
edges {
40-
node {
41-
frontmatter {
42-
title
43-
id
44-
date
45-
}
46-
body
47-
}
48-
}
40+
query {
41+
announcements: allXdm(
42+
filter: { fileAbsolutePath: { regex: "/announcements/" } }
43+
sort: { order: DESC, fields: frontmatter___order }
44+
) {
45+
edges {
46+
node {
47+
frontmatter {
48+
title
49+
id
50+
date
4951
}
52+
body
5053
}
51-
`;
54+
}
55+
}
56+
}
57+
`;

src/pages/dashboard.tsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -207,14 +207,23 @@ export default function DashboardPage(props: PageProps) {
207207
<h1 className="text-3xl font-bold leading-tight text-gray-900 dark:text-dark-high-emphasis">
208208
Announcements
209209
</h1>
210-
<Link to="/announcements" className='hover:underline transition-all duration-300'>
210+
<Link
211+
to="/announcements"
212+
className="hover:underline transition-all duration-300"
213+
>
211214
View all &rarr;
212215
</Link>
213216
</div>
214217
</header>
215218
<div className="max-w-7xl mx-auto mb-8">
216219
{/* Only show announcements in the current year by passing in a filter function */}
217-
<Announcements filterFn={announcement => parseInt(announcement.date.split(', ')[1]) === new Date().getFullYear()} announcements={parsedAnnouncements} />
220+
<Announcements
221+
filterFn={announcement =>
222+
parseInt(announcement.date.split(', ')[1]) ===
223+
new Date().getFullYear()
224+
}
225+
announcements={parsedAnnouncements}
226+
/>
218227
</div>
219228
<div className="max-w-7xl mx-auto sm:px-6 lg:px-8 lg:grid lg:grid-cols-2 lg:gap-8">
220229
{activeProblems.length > 0 && (

src/utils/utils.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import clsx, { ClassValue } from 'clsx';
2+
import { twMerge } from 'tailwind-merge';
23
import MODULE_ORDERING from '../../content/ordering';
34
import { ModuleInfo } from '../models/module';
4-
import { twMerge } from 'tailwind-merge';
55

66
export const getModulesForDivision = (allModules, division) => {
77
return MODULE_ORDERING[division].map(k => {
@@ -54,5 +54,4 @@ export function removeDuplicates<T>(arr: T[]): T[] {
5454
return [...new Map(arr.map(item => [JSON.stringify(item), item])).values()];
5555
}
5656

57-
58-
export const cn = (...classes: ClassValue[]) => twMerge(clsx(...classes));
57+
export const cn = (...classes: ClassValue[]) => twMerge(clsx(...classes));

0 commit comments

Comments
 (0)