Added "Get Involved" page

This commit is contained in:
Michael Fatemi 2020-11-29 00:50:58 -05:00
parent 5c06931dcc
commit 5f1ddb51c3
7 changed files with 49 additions and 23 deletions

View File

@ -5,25 +5,6 @@
font-size: 1.5rem; font-size: 1.5rem;
} }
/* Three column layout */
.split-thirds {
margin: 2rem auto;
display: flex;
flex-wrap: wrap;
}
@media (min-width: 1024px) {
.split-thirds > div {
width: 33.33%;
}
}
@media (max-width: 1024px) {
.split-thirds > div {
width: 100%;
}
}
.space-2 { .space-2 {
margin: 1rem; margin: 1rem;
padding: 1rem; padding: 1rem;

View File

@ -6,6 +6,7 @@ import './App.css';
import index from './pages/index'; import index from './pages/index';
import initiatives from './pages/initiatives'; import initiatives from './pages/initiatives';
import involved from './pages/involved';
import mission from './pages/mission'; import mission from './pages/mission';
import news from './pages/news'; import news from './pages/news';
import newsArticle from './pages/newsArticle'; import newsArticle from './pages/newsArticle';
@ -20,6 +21,7 @@ export default function App() {
<Layout> <Layout>
<Switch> <Switch>
<Route path='/initiatives' exact component={initiatives} /> <Route path='/initiatives' exact component={initiatives} />
<Route path='/involved' exact component={involved} />
<Route path='/news/:articleId' component={newsArticle} /> <Route path='/news/:articleId' component={newsArticle} />
<Route path='/news' exact component={news} /> <Route path='/news' exact component={news} />
<Route path='/mission' exact component={mission} /> <Route path='/mission' exact component={mission} />

View File

@ -0,0 +1,12 @@
export default function GetInvolvedRow({ way }: { way: SGA.GetInvolvedWay}) {
return (
<div className='row'>
<div className='get-involved-title'>
<h3>{way.title}</h3>
</div>
<div className='get-involved-description'>
<p className="get-involved-body">{way.text}</p>
</div>
</div>
);
}

View File

@ -62,7 +62,7 @@ export default function Navbar() {
{pages.map((page) => { {pages.map((page) => {
if ('items' in page) { if ('items' in page) {
return ( return (
<div className='submenu-outer' key={page.url}> <div className='submenu-outer' key={page.title}>
<Link className='nav-link' to={page.url}> <Link className='nav-link' to={page.url}>
{page.title} {page.title}
</Link> </Link>

14
src/css/get-involved.css Normal file
View File

@ -0,0 +1,14 @@
.get-involved-body {
color: #444;
font-size: 22px;
line-height: 33px;
font-weight: 300;
}
.get-involved-title {
flex: 1;
}
.get-involved-description {
flex: 3;
}

19
src/index.d.ts vendored
View File

@ -23,6 +23,23 @@ declare namespace SGA {
committee: 'excomm' | 'officer' | 'class'; committee: 'excomm' | 'officer' | 'class';
role: string; role: string;
profile_photo: {}; profile_photo: {};
bio: string bio: string;
}
interface GetInvolvedWay {
_id: string;
title: string;
text: string;
};
interface GetInvolvedDocument {
ways: GetInvolvedWay[];
}
interface FooterDocument {
columns: {
_id: string;
content: any[];
}[];
} }
} }

View File

@ -11,7 +11,7 @@ export default function GetInvolved() {
>(); >();
React.useEffect(() => { React.useEffect(() => {
sanity.getDocument<SGA.GetInvolvedDocument>('ways').then(setWays); sanity.getDocument<SGA.GetInvolvedDocument>('get_involved').then(setWays);
}, []); }, []);
return ( return (
@ -29,7 +29,7 @@ export default function GetInvolved() {
<> <>
<h3>Here are some ways to connect with SGA:</h3> <h3>Here are some ways to connect with SGA:</h3>
{ways.ways.map((way) => ( {ways.ways.map((way) => (
<GetInvolvedRow way={way} /> <GetInvolvedRow way={way} key={way._id} />
))} ))}
</> </>
) : null} ) : null}