Skip to content

Commit 00c94e1

Browse files
committed
added team descriptions to website, adding circular images right now for profile of team leads
1 parent a62d648 commit 00c94e1

38 files changed

+324
-23
lines changed

src/components/OurTeam/OurTeam.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ const OurTeam: React.FC = () => (
3939
provide an effective mentorship experience for all new team members.
4040
</p>
4141
<TeamPhoto src={Team} alt="some team photo" />
42+
<p>
43+
Curious how you can help? Here is a list of our teams, what they do, as well as the team leads.
44+
</p>
4245
<div className="centerDiv">
4346
<Button
4447
backgroundColor="yellow"

src/components/PastGeeseTimeline/hooks/geese-images.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const imgs: Image[] = [
5454
imgFile: goose5,
5555
name: 'Goose V',
5656
desc:
57-
'Placeholder text'
57+
'With Goose V, we continued to refine the wheel-less propulsion methods, by implementing a system to convert constant power into three-phase power to maximize thrust and speed.'
5858
}
5959
];
6060

src/components/Sponsor/SponsorPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React from 'react';
22
import styled from 'styled-components';
33
import Grid from '@material-ui/core/Grid';
44
import SponsorComponent from './Sponsor';
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export * from './SponsorsLanding';
2-
export { default as Sponsors } from './SponsorsLanding';
2+
export { default as SponsorsLanding } from './SponsorsLanding';
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Text with Image Component ReadMe
2+
3+
## Purpose:
4+
5+
Displays text, along with an circular image beside it. Can be configured to also display a title and a button that redirects the user to a link. Used to display the team leads under the "teams" section.
6+
7+
## How to create:
8+
9+
Pass in **list of JSON data** into the prop parameter _**data**_, with each JSON entry containing the following parameters:
10+
11+
```JSON
12+
{
13+
"title": "The title to display (optional)",
14+
"text": "The descriptive text (required)",
15+
"link": "Link to redirect user to when they click the 'VIEW MORE' button (optional - button hidden when parameter not provided)"
16+
}
17+
```
18+
### IMPORTANT NOTE:
19+
20+
Because of the way images are stored, **you also have to manually import the images into the parent component using TextWithImage** from the `static/img` folder and pass them into a `string[]` type variable in the same order as the corresponding JSON entries.
21+
22+
23+
Additionally, you can change the layout to only display text on the **left** or on the **right** by passing either value into the prop parameter _**textPos**_. By default, this is set to **alternate** the text position between left and right.
24+
25+
## Notes:
26+
27+
1. Please don't use too many words in the title and description.
28+
29+
2. Responsive design for (mobile) devices under **500px** width.
30+
31+
3. Left and right border padding of the components is assumed to be done by the parent component for the mobile view.
32+
33+
4. If you have any questions, contact Jeff at [[email protected]]([email protected]) or [[email protected]]([email protected])
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import React from 'react';
2+
import { Button } from 'components/Button';
3+
import 'theme/styles.scss';
4+
5+
export type MyCircularProps = {
6+
title?: string;
7+
text: string;
8+
link?: string;
9+
linkText?: string;
10+
};
11+
12+
interface Props {
13+
data: MyCircularProps[];
14+
imgData: string[];
15+
textPos?: string;
16+
}
17+
18+
export class TextWithProfileImage extends React.Component<Props> {
19+
renderChildren = (data: MyCircularProps[]): React.ReactElement[] => {
20+
let isRightLeft = true; // Alternate between right-left and left-right layout.
21+
let key = -1;
22+
return data.map((entry: MyCircularProps) => {
23+
isRightLeft = !isRightLeft;
24+
key += 1;
25+
26+
// Determine if image should be displayed first or after text:
27+
let posClass = '';
28+
switch (this.props.textPos) {
29+
case 'left':
30+
posClass = 'left-right-variant';
31+
break;
32+
case 'right':
33+
posClass = 'right-left-variant';
34+
break;
35+
36+
default:
37+
// The "alternate" case
38+
posClass = isRightLeft ? 'right-left-variant' : 'left-right-variant';
39+
}
40+
41+
return (
42+
<div key={key} className={`Block-TextWithImage ${posClass}`}>
43+
<div className="TextBlock-TextWithImage">
44+
{entry.title !== undefined ? <h3>{entry.title}</h3> : <b></b>}
45+
<p>{entry.text}</p>
46+
<div className="ButtonBlock-TextWithImage">
47+
{this.renderButton(entry.link, entry.linkText)}
48+
</div>
49+
</div>
50+
<img
51+
className="Img-TextWithImage"
52+
src={this.props.imgData[key]}
53+
alt="waterloop"
54+
></img>
55+
<div className="text-w-image-btn-mobile">
56+
{this.renderButton(entry.link, entry.linkText)}
57+
</div>
58+
</div>
59+
);
60+
});
61+
};
62+
63+
renderButton = (
64+
link: string | undefined,
65+
linkText: string | undefined,
66+
): React.ReactElement => {
67+
if (link !== undefined && linkText !== undefined) {
68+
return (
69+
<Button
70+
backgroundColor="yellow"
71+
textColor="black"
72+
text={linkText}
73+
onClick={(): Window | null => window.open(link, '_self')}
74+
/>
75+
);
76+
}
77+
return <></>;
78+
};
79+
80+
render() {
81+
return <div>{this.renderChildren(this.props.data)}</div>;
82+
}
83+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { TextWithProfileImage} from './TextWithProfileImage'; // This will take all the named exports

src/pages/Flock.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import Hero from "components/Hero/General";
44
import { GooseRoster } from "components/GooseRoster";
55
import { SimpleFeatures } from "sections/FeaturedComponent";
66
import { PastGeeseTimeline as UnstyledPastGeeseTimeline } from "components/PastGeeseTimeline";
7-
import Goose1 from "../static/img/goose/Goose.png";
8-
import Goose2 from "../static/img/goose/Goose1.png";
7+
import Goose1 from "../static/img/goose/goose6_full.png";
8+
import Goose2 from "../static/img/goose/goose6_better.png";
99
import "../theme/styles.scss";
1010

1111
const PastGeeseTimeline = styled(UnstyledPastGeeseTimeline)``;

src/pages/Home.tsx

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
11
import React from 'react';
22

33
import Hero from 'components/Hero/Landing';
4-
import { Sponsors } from 'components/SponsorsLanding';
4+
import { SponsorsLanding } from 'components/SponsorsLanding';
55
import { ImgJSON } from 'components/SponsorsLanding';
66
import { TextWithImage, MyProps } from 'components/TextWithImage';
77
import { ColumnBlock, Props } from 'components/ColumnBlock';
88
import Text from 'static/copy/Landing/TextWithImage.json';
99
import ColText from 'static/copy/Landing/ColumnBlock.json';
1010
import '../theme/styles.scss';
11+
1112
// Images for sponsors:
12-
import Brent from '../static/img/official-sponsors/BrentsWeldingAndFab.png';
13+
// import Brent from '../static/img/official-sponsors/BrentsWeldingAndFab.png';
1314
import Weef from '../static/img/official-sponsors/weef.jpg';
1415
import WaterlooEng from '../static/img/official-sponsors/wes.jpg';
1516
import UW from '../static/img/official-sponsors/foe.jpg';
16-
import ClickUp from '../static/img/official-sponsors/ClickUp.png';
17-
import WCBranham from '../static/img/official-sponsors/WCBranham.png';
17+
// import ClickUp from '../static/img/official-sponsors/ClickUp.png';
18+
// import WCBranham from '../static/img/official-sponsors/WCBranham.png';
19+
import Altium from '../static/img/official-sponsors/altium.png';
20+
import Ansys from '../static/img/official-sponsors/ansys.png';
21+
import BILD from '../static/img/official-sponsors/bild.png';
22+
import Dassault from '../static/img/official-sponsors/Dassault-Systems.png';
23+
import Hakko from '../static/img/official-sponsors/hakko.png';
24+
import Keysight from '../static/img/official-sponsors/keysight.jpg';
25+
import Mitutoyo from '../static/img/official-sponsors/mitutoyo_logo.png';
26+
import SKF from '../static/img/official-sponsors/SKF-Logo.png';
27+
import Stantec from '../static/img/official-sponsors/Stantec.png';
1828

1929
import Goals from '../static/img/landing/textwithimage/goals.png';
2030
import Competition from '../static/img/landing/textwithimage/competition.png';
@@ -25,12 +35,18 @@ const ColData: Props[] = ColText;
2535

2636
// Place data here:
2737
const imgJSON: ImgJSON[] = [
28-
{ imgSrc: Brent, imgAlt: 'Brent' },
2938
{ imgSrc: Weef, imgAlt: 'Weef' },
3039
{ imgSrc: WaterlooEng, imgAlt: 'WaterlooEng' },
3140
{ imgSrc: UW, imgAlt: 'UW' },
32-
{ imgSrc: ClickUp, imgAlt: 'ClickUp' },
33-
{ imgSrc: WCBranham, imgAlt: 'WCBranham' },
41+
{ imgSrc: Ansys, imgAlt: 'Ansys' },
42+
{ imgSrc: BILD, imgAlt: 'BILD' },
43+
{ imgSrc: Dassault, imgAlt: 'Dassault' },
44+
{ imgSrc: Hakko, imgAlt: 'Hakko' },
45+
{ imgSrc: Keysight, imgAlt: 'Keysight' },
46+
{ imgSrc: Mitutoyo, imgAlt: 'Mitutoyo' },
47+
{ imgSrc: SKF, imgAlt: 'SKF' },
48+
{ imgSrc: Stantec, imgAlt: 'Stantec' },
49+
{ imgSrc: Altium, imgAlt: 'Altium' },
3450
];
3551

3652
const Home: React.FC = () => (
@@ -49,7 +65,7 @@ const Home: React.FC = () => (
4965
<ColumnBlock data={ColData} imgData={imgData} />
5066
<div className="pageContainer">
5167
<div className="break"></div>
52-
<Sponsors data={imgJSON} />
68+
<SponsorsLanding data={imgJSON} />
5369
</div>
5470
</div>
5571
);

src/pages/Sponsors.tsx

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,47 @@
11
import React from "react";
22
import Hero from "components/Hero/General";
3-
import SponsorList from "components/Sponsor/SponsorPage";
3+
//import SponsorList from "components/Sponsor/SponsorPage";
4+
import { SponsorsLanding } from 'components/SponsorsLanding';
45
import { TextWithImage } from "components/TextWithImage";
56
import { MyProps } from "components/TextWithImage";
67
import Text from "static/copy/Sponsors/Sponsors.json";
78
import SponsorsImg from "../static/img/team/sponsors.png";
89
import "../theme/styles.scss";
10+
import { ImgJSON } from 'components/SponsorsLanding';
11+
//import ColText from 'static/copy/Landing/ColumnBlock.json';
12+
13+
// Images for sponsors:
14+
import Weef from '../static/img/official-sponsors/weef.jpg';
15+
import WaterlooEng from '../static/img/official-sponsors/wes.jpg';
16+
import UW from '../static/img/official-sponsors/foe.jpg';
17+
import Altium from '../static/img/official-sponsors/altium.png';
18+
import Ansys from '../static/img/official-sponsors/ansys.png';
19+
import BILD from '../static/img/official-sponsors/bild.png';
20+
import Dassault from '../static/img/official-sponsors/Dassault-Systems.png';
21+
import Hakko from '../static/img/official-sponsors/hakko.png';
22+
import Keysight from '../static/img/official-sponsors/keysight.jpg';
23+
import Mitutoyo from '../static/img/official-sponsors/mitutoyo_logo.png';
24+
import SKF from '../static/img/official-sponsors/SKF-Logo.png';
25+
import Stantec from '../static/img/official-sponsors/Stantec.png';
926

1027
const castData: MyProps[] = Text;
1128
const imgData: string[] = [SponsorsImg];
29+
//const ColData: Props[] = ColText;
30+
31+
const imgJSON: ImgJSON[] = [
32+
{ imgSrc: Weef, imgAlt: 'Weef' },
33+
{ imgSrc: WaterlooEng, imgAlt: 'WaterlooEng' },
34+
{ imgSrc: UW, imgAlt: 'UW' },
35+
{ imgSrc: Ansys, imgAlt: 'Ansys' },
36+
{ imgSrc: BILD, imgAlt: 'BILD' },
37+
{ imgSrc: Dassault, imgAlt: 'Dassault' },
38+
{ imgSrc: Hakko, imgAlt: 'Hakko' },
39+
{ imgSrc: Keysight, imgAlt: 'Keysight' },
40+
{ imgSrc: Mitutoyo, imgAlt: 'Mitutoyo' },
41+
{ imgSrc: SKF, imgAlt: 'SKF' },
42+
{ imgSrc: Stantec, imgAlt: 'Stantec' },
43+
{ imgSrc: Altium, imgAlt: 'Altium' },
44+
];
1245

1346
const Sponsors: React.FC = () => (
1447
<div>
@@ -25,7 +58,15 @@ const Sponsors: React.FC = () => (
2558
imgData={imgData}
2659
></TextWithImage>
2760
<div className="break"></div>
28-
<SponsorList />
61+
62+
{//<ColumnBlock data={ColData} imgData={imgData} />
63+
}
64+
<div className="pageContainer">
65+
<div className="break"></div>
66+
<SponsorsLanding data={imgJSON} />
67+
</div>
68+
{//<SponsorList />
69+
}
2970
</div>
3071
</div>
3172
);

0 commit comments

Comments
 (0)