Skip to content

Commit fb2e922

Browse files
Remove outdated elements (#170)
* swapped position of FAQ and recruitment form, and removed issues from blog being commented out * added goose 5 to past geese, replaced text to show that goose 6 exists, need to update features and images, as well as getting goose 5 blurb * changed FAQ link to a button for consistency and removed contact us hyperlink * added team descriptions to website, adding circular images right now for profile of team leads * polished for merge to main --------- Co-authored-by: Jessica Y. <[email protected]>
1 parent 8c97452 commit fb2e922

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+18259
-33
lines changed

src/components/NavBar/NavbarDesktop.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import Team from '../../pages/Team';
99
import Sponsors from '../../pages/Sponsors';
1010
// import Blog from '../../pages/Blog/Blog'; // Commented out March 21st 2025
1111

12+
1213
import Link from './Link';
1314

1415
const NavbarContainer = styled.div`

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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import goose1 from '../../../static/img/pgimgs/goose1.png';
44
import goose2 from '../../../static/img/pgimgs/goose2.png';
55
import goose3 from '../../../static/img/pgimgs/goose3.png';
66
import goose4 from '../../../static/img/pgimgs/goose4.png';
7+
import goose5 from '../../../static/img/pgimgs/goose5.png';
78

89
interface Image {
910
imgFile: string;
@@ -49,6 +50,12 @@ const imgs: Image[] = [
4950
desc:
5051
'By the fourth competition, we had realized that, despite wheeled propulsion posting record-breaking speeds in the SpaceX Hyperloop tube, there was no way of scaling those systems to transcontinental scale—wheels spinning at Mach 1 simply cannot last. We pivoted to designing a contactless linear induction motor from scratch, and simplified the rest of the pod to allow us to devote the majority of our time on the most difficult research.',
5152
},
53+
{
54+
imgFile: goose5,
55+
name: 'Goose V',
56+
desc:
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.'
58+
}
5259
];
5360

5461
const useGeeseImages:

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';

src/components/TextWithImage/TextWithImage.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ export type MyProps = {
77
text: string;
88
link?: string;
99
linkText?: string;
10+
wideImage?: boolean;
11+
largeImage?: boolean;
1012
};
1113

1214
interface Props {
@@ -48,7 +50,7 @@ export class TextWithImage extends React.Component<Props> {
4850
</div>
4951
</div>
5052
<img
51-
className="Img-TextWithImage"
53+
className={`Img-TextWithImage ${entry.largeImage ? 'Img-TextWithImage--large' : ''} ${entry.wideImage ? 'Img-TextWithImage--wide' : ''}`}
5254
src={this.props.imgData[key]}
5355
alt="waterloop"
5456
></img>
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-TextWithProfileImage ${posClass}`}>
43+
<div className="TextBlock-TextWithProfileImage">
44+
{entry.title !== undefined ? <h3>{entry.title}</h3> : <b></b>}
45+
<p>{entry.text}</p>
46+
<div className="ButtonBlock-TextWithProfileImage">
47+
{this.renderButton(entry.link, entry.linkText)}
48+
</div>
49+
</div>
50+
<img
51+
className="Img-TextWithProfileImage"
52+
src={this.props.imgData[key]}
53+
alt="waterloop"
54+
></img>
55+
<div className="text-w-profile-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 * from './TextWithProfileImage'; // This will take all the named exports

src/components/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ export * from './SimpleFeatures';
1313
export * from './Hero';
1414
export * from './TeamsDisplayer';
1515
export * from './TextWithImage';
16+
export * from './TextWithProfileImage';
17+
export * from './TextWithProfileImage';
1618
export * from './ColumnBlock';
1719
export * from './Postings';
1820
export * from './NewsletterSignUpForm';

0 commit comments

Comments
 (0)