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' ;
8
11
9
12
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 )
30
17
) ;
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
+ ) ;
31
37
}
32
38
33
39
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
49
51
}
52
+ body
50
53
}
51
- ` ;
54
+ }
55
+ }
56
+ }
57
+ ` ;
0 commit comments