Better spacing, new photos, feedback page

This commit is contained in:
Michael Fatemi 2020-12-16 22:35:49 -05:00
parent 22d038e17e
commit d5ff6c16dd
23 changed files with 86 additions and 17 deletions

22
package-lock.json generated
View File

@ -7401,6 +7401,20 @@
"resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE="
}, },
"iframe-resizer": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/iframe-resizer/-/iframe-resizer-4.2.11.tgz",
"integrity": "sha512-fj5vX5kkpRbMb5Qje6veIDzqoJpnCEqUDdSOwASOeQHYmb8hLYX6Ev2yXf3jjMs2MclwcYY3chyZ3diGKcr8DA=="
},
"iframe-resizer-react": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/iframe-resizer-react/-/iframe-resizer-react-1.0.4.tgz",
"integrity": "sha512-j2AFgVe6ZhvUVu4VbEvUB4lUadmCwdg4tIYgL9TRdWubL1477Xv0wl8xVC9ETky3+81ngnbOYFLaUIkBOESJFQ==",
"requires": {
"iframe-resizer": "^4.2.10",
"warning": "^4.0.3"
}
},
"ignore": { "ignore": {
"version": "5.1.8", "version": "5.1.8",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
@ -14425,6 +14439,14 @@
"makeerror": "1.0.x" "makeerror": "1.0.x"
} }
}, },
"warning": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
"integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
"requires": {
"loose-envify": "^1.0.0"
}
},
"watchpack": { "watchpack": {
"version": "1.7.5", "version": "1.7.5",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",

View File

@ -8,6 +8,7 @@
"@testing-library/jest-dom": "^5.11.4", "@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0", "@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10", "@testing-library/user-event": "^12.1.10",
"iframe-resizer-react": "^1.0.4",
"react": "^17.0.1", "react": "^17.0.1",
"react-dom": "^17.0.1", "react-dom": "^17.0.1",
"react-router-dom": "^5.2.0", "react-router-dom": "^5.2.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 KiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 KiB

View File

Before

Width:  |  Height:  |  Size: 285 KiB

After

Width:  |  Height:  |  Size: 285 KiB

View File

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 436 KiB

View File

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 KiB

View File

@ -14,7 +14,20 @@ const notfound = React.lazy(() => import('./pages/404'));
const officers = React.lazy(() => import('./pages/officers')); const officers = React.lazy(() => import('./pages/officers'));
const committee = React.lazy(() => import('./pages/committee')); const committee = React.lazy(() => import('./pages/committee'));
const classcouncil = React.lazy(() => import('./pages/classcouncil')); const classcouncil = React.lazy(() => import('./pages/classcouncil'));
const loading = () => <h1>Loading...</h1>; const loading = (
<div
style={{
width: '100vw',
height: '100vh',
textAlign: 'center',
display: 'flex',
alignItems: 'center',
}}
>
<h3 style={{ textAlign: 'center', width: '100vw' }}>Loading...</h3>
</div>
);
const feedback = React.lazy(() => import('./pages/feedback'));
export default function App() { export default function App() {
return ( return (
@ -30,6 +43,7 @@ export default function App() {
<Route path='/officers' exact component={officers} /> <Route path='/officers' exact component={officers} />
<Route path='/committee' exact component={committee} /> <Route path='/committee' exact component={committee} />
<Route path='/class-council' exact component={classcouncil} /> <Route path='/class-council' exact component={classcouncil} />
<Route path='/feedback' exact component={feedback} />
<Route path='/:path' component={notfound} /> <Route path='/:path' component={notfound} />
<Route path='/' exact component={index} /> <Route path='/' exact component={index} />
</Switch> </Switch>

View File

@ -17,9 +17,9 @@ export default function Footer() {
alt='Footer Banner' alt='Footer Banner'
/> />
<div className='footer-container'> <div className='footer-container'>
{footer.columns.map((col) => { {footer.columns.map((col, index) => {
return ( return (
<div className='footer-col' key={col._id}> <div className='footer-col' key={index}>
<BlockContent blocks={col.content} /> <BlockContent blocks={col.content} />
</div> </div>
); );

View File

@ -17,8 +17,8 @@ export default function Hero({
alt='Background' alt='Background'
style={{ style={{
width: '100vw', width: '100vw',
height: '60vh', maxHeight: '60vh',
objectFit: 'cover', objectFit: 'contain',
}} }}
/> />
</div> </div>

View File

@ -14,7 +14,7 @@ export default function InitiativeRow({
} }
return ( return (
<div className='d-flex'> <div className='d-flex my-4'>
<div className='article-row-thumbnail'> <div className='article-row-thumbnail'>
{thumbUrl ? <img src={thumbUrl} alt={initiative.name} /> : null} {thumbUrl ? <img src={thumbUrl} alt={initiative.name} /> : null}
</div> </div>

View File

@ -8,7 +8,7 @@ export default function MemberRow({ member }: { member: SGA.MemberDocument }) {
} }
return ( return (
<div className='row'> <div className='d-flex my-4'>
<div className='article-row-thumbnail'> <div className='article-row-thumbnail'>
{thumbUrl ? ( {thumbUrl ? (
<img className='mb-4' src={thumbUrl} alt={member.name} /> <img className='mb-4' src={thumbUrl} alt={member.name} />

View File

@ -63,20 +63,22 @@ let pages = [
url: '/involved', url: '/involved',
title: 'Get Involved', title: 'Get Involved',
}, },
{
url: '/feedback',
title: 'Feedback',
},
]; ];
export function Submenu({ items }) {}
export default function Navbar() { export default function Navbar() {
return ( return (
<div className='nav'> <div className='nav'>
<Link to='/'> <Link to='/' key='/'>
<img src='/images/banner.png' alt='TJ SGA' className='nav-logo' /> <img src='/images/banner.png' alt='TJ SGA' className='nav-logo' />
</Link> </Link>
{pages.map((page) => { {pages.map((page) => {
if ('items' in page) { if ('items' in page) {
return ( return (
<div className='submenu-outer' key={page.title}> <div key={page.title} className='submenu-outer'>
<Link className='nav-link' to={page.url}> <Link className='nav-link' to={page.url}>
{page.title} {page.title}
</Link> </Link>

View File

@ -16,7 +16,7 @@ export default function RecentNews() {
<div> <div>
<h3 className='display-3'>Recent News</h3> <h3 className='display-3'>Recent News</h3>
{news.map((article) => { {news.map((article) => {
return <ArticleRow article={article} />; return <ArticleRow article={article} key={article._id} />;
})} })}
<Link to='/news'>All News</Link> <Link to='/news'>All News</Link>
</div> </div>

View File

@ -4,19 +4,19 @@ export default function InfoColumnGroup() {
return ( return (
<div className='d-flex'> <div className='d-flex'>
<Segment <Segment
imageURL='/images/segment-1.jpg' imageURL='/images/segments/news-and-happenings.jpg'
title='News and Happenings' title='News and Happenings'
content={`Read about SGA initiatives, goals, and progress from SGA officers, as well as from other student leaders, students, and student organizations.`} content={`Read about SGA initiatives, goals, and progress from SGA officers, as well as from other student leaders, students, and student organizations.`}
infoURL='/news' infoURL='/news'
/> />
<Segment <Segment
imageURL='/images/segment-2.jpg' imageURL='/images/segments/who-we-are.jpg'
title='Who We Are' title='Who We Are'
content={`Learn about your representatives, and how they're working to advance the common agenda that SGA has set to improve your experience at TJ.`} content={`Learn about your representatives, and how they're working to advance the common agenda that SGA has set to improve your experience at TJ.`}
infoURL='/officers' infoURL='/officers'
/> />
<Segment <Segment
imageURL='/images/segment-3.jpg' imageURL='/images/segments/get-involved.jpg'
title='Get Involved' title='Get Involved'
content={`Any questions or concerns? Have an idea for how SGA could be doing more to advocate for students? Want to get involved? Contact Us!`} content={`Any questions or concerns? Have an idea for how SGA could be doing more to advocate for students? Want to get involved? Contact Us!`}
infoURL='/involved' infoURL='/involved'

View File

@ -25,6 +25,7 @@ img {
main { main {
width: 1200px; width: 1200px;
max-width: 100vw;
margin: 0px auto; margin: 0px auto;
} }

View File

@ -11,7 +11,10 @@ export default function Committee() {
return ( return (
<> <>
<Hero heading='Executive Committee' /> <Hero
heading='Executive Committee'
imageURL='/images/who-we-are/excomm.png'
/>
<main> <main>
<div> <div>
{excomm && {excomm &&

26
src/pages/feedback.tsx Normal file
View File

@ -0,0 +1,26 @@
import React from 'react';
import Hero from '../components/Hero';
const feedbackFormURL =
'https://docs.google.com/forms/d/e/1FAIpQLSeO8CN666WSb-jw0johyLMLb00rFz-bCtXaPeWpTSvbSqBBLw/viewform?embedded=true';
export default function FeedbackPage() {
return (
<>
<Hero />
<main className='text-center'>
<iframe
src={feedbackFormURL}
style={{
width: '640px',
height: '900px',
scrollbarWidth: 'none',
}}
title='Feedback Form'
>
Loading
</iframe>
</main>
</>
);
}

View File

@ -14,7 +14,7 @@ export default function Officers() {
return ( return (
<> <>
<Hero heading='Officers' /> <Hero heading='Officers' imageURL='/images/who-we-are/officers.jpg' />
<main> <main>
{officers {officers
? officers.map((officer) => { ? officers.map((officer) => {