diff --git a/frontend/src/components/About/MeetTheTeam.tsx b/frontend/src/components/About/MeetTheTeam.tsx
index 62392218..5e321f1b 100644
--- a/frontend/src/components/About/MeetTheTeam.tsx
+++ b/frontend/src/components/About/MeetTheTeam.tsx
@@ -85,19 +85,6 @@ const categories = [
{ name: 'Ganesh Kumarappan', title: 'Backend Developer', photo: Ganesh },
],
},
- {
- id: 3,
- name: 'CSES WebDev',
- members: [
- { name: 'Shruti Bhamidipati', title: 'President', photo: Shruti },
- { name: 'Manan Patel', title: 'VP Finance', photo: Manan },
- { name: 'Jheel Gandhi', title: 'VP Design', photo: Jheel },
- { name: 'Sonia Fereidooni', title: 'VP Operations', photo: Sonia },
- { name: 'Ryan Rickey', title: 'Software Team Lead', photo: Ryan },
- { name: 'Jake Villaseno', title: 'UI/UX Designer', photo: Jake },
- //{ name: 'Saleha Ahmedi', title: 'WebDev', photo: Saleha},
- ],
- },
{
id: 4,
name: 'CSES Open Source',
diff --git a/frontend/src/components/About/OurCommunities.tsx b/frontend/src/components/About/OurCommunities.tsx
index f6afede1..3686c56b 100644
--- a/frontend/src/components/About/OurCommunities.tsx
+++ b/frontend/src/components/About/OurCommunities.tsx
@@ -31,27 +31,6 @@ const Communities = () => {
-
-
-
-
- CSES Innovate
-
-
- Learn about tech entrepreneurship! Form teams and build your own start-ups from ideation to pitch.
-
-
-
{
margin: verySmallScreen ? '10% 0% 0% 0%' : { xs: '10% 2% 2% 2%', sm: '5% 3%', md: '3% 2%' }
}}>
- CSES WebDev
+ CSES Innovate
-
- Gain hands-on experience in web design and development for real clients, from UCSD clubs to non-profits!
+
+ Learn about tech entrepreneurship! Form teams and build your own start-ups from ideation to pitch.
diff --git a/frontend/src/components/Home/Home.tsx b/frontend/src/components/Home/Home.tsx
index dfbd91f2..43302337 100644
--- a/frontend/src/components/Home/Home.tsx
+++ b/frontend/src/components/Home/Home.tsx
@@ -179,78 +179,81 @@ const Home = () => {
+
+ {displayedFutureEvents.length !== 0 && (
+
+
+ {isMobile && (
-
- UPCOMING EVENTS.
-
+ {displayedFutureEvents.map((eventData, id) => (
+
+
+ ))}
+
+ )}
- {isMobile && (
-
- {displayedFutureEvents.map((eventData, id) => (
-
-
-
- ))}
-
- )}
-
- {!isMobile && (
-
- {displayedFutureEvents.map((eventData, id) => (
-
-
-
- ))}
-
- )}
-
-
+ {!isMobile && (
+
+ {displayedFutureEvents.map((eventData, id) => (
+
+
+ ))}
+
+ )}
+
+
+
+ )}
+
diff --git a/frontend/src/components/MemberProfile/MemberProfile.tsx b/frontend/src/components/MemberProfile/MemberProfile.tsx
index c3b002e3..534bc693 100644
--- a/frontend/src/components/MemberProfile/MemberProfile.tsx
+++ b/frontend/src/components/MemberProfile/MemberProfile.tsx
@@ -183,7 +183,7 @@ const MemberProfile = (userData: MemberProfileProps) => {
Major:
{userData.memberMajor}
- {((typeof userData.memberMinor !== 'undefined')) &&
+ {((typeof userData.memberMinor !== 'undefined' && userData.memberMinor !== '')) &&
{
const theme = useTheme();
const styles = opportunitiesStyles(theme);
+
return (
{
+ const [isVisible, setIsVisible] = useState(false);
+ const domRef = useRef(null);
+
+ useEffect(() => {
+ const observer = new IntersectionObserver(
+ entries => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ setIsVisible(true);
+ observer.unobserve(entry.target);
+ }
+ });
+ },
+ { threshold: 0.1 }
+ );
+
+ if (domRef.current) {
+ observer.observe(domRef.current);
+ }
+
+ return () => {
+ if (domRef.current) {
+ observer.unobserve(domRef.current);
+ }
+ };
+ }, []);
+
+ return (
+
+ {children}
+
+ );
+};
+
+
const Opportunities = () => {
const theme = useTheme();
const styles = opportunitiesStyles(theme);
@@ -55,12 +113,17 @@ const Opportunities = () => {
- OPPORTUNITIES
-
-
+
+ OPPORTUNITIES
+
+
+
+
+
+
For members.
@@ -117,11 +180,15 @@ const Opportunities = () => {
Become a Member
+
-
+
+
+
+
For sponsors.
@@ -166,14 +233,19 @@ const Opportunities = () => {
See Opportunities ->
+
+
+
Thank you to our current sponsors!
+
-
-
+
+
+
{
href="https://cse.ucsd.edu/"
borderColor="black"
/>
+
-
-
+
+
+
+
diff --git a/frontend/src/components/Opportunities/styles.ts b/frontend/src/components/Opportunities/styles.ts
index 21bf3628..8e12f04b 100644
--- a/frontend/src/components/Opportunities/styles.ts
+++ b/frontend/src/components/Opportunities/styles.ts
@@ -30,8 +30,8 @@ export const opportunitiesStyles = (theme: any) => ({
test: {
fontFamily: 'Inter, sans-serif',
color: 'white',
- fontSize: 'clamp(15px, 3vw, 16px)',
- lineHeight: '19px',
+ fontSize: 'clamp(15px, 3vw, 20px)',
+ lineHeight: '23px',
textAlign: 'left'
},
subtitle: {
diff --git a/package-lock.json b/package-lock.json
index f57b5ef5..b7ef7377 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,10 +9,12 @@
"@mailchimp/mailchimp_marketing": "^3.0.80",
"@material-ui/core": "^4.12.4",
"@mui/x-date-pickers": "^6.12.0",
+ "@react-spring/web": "^9.7.3",
"dayjs": "^1.11.9",
"material-ui-popup-state": "^5.0.9",
"qrcode": "^1.5.3",
"react-countup": "^6.5.0",
+ "react-intersection-observer": "^9.10.2",
"react-scroll-trigger": "^0.6.14"
}
},
@@ -882,6 +884,66 @@
"url": "https://opencollective.com/popperjs"
}
},
+ "node_modules/@react-spring/animated": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.3.tgz",
+ "integrity": "sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==",
+ "dependencies": {
+ "@react-spring/shared": "~9.7.3",
+ "@react-spring/types": "~9.7.3"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/core": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.3.tgz",
+ "integrity": "sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==",
+ "dependencies": {
+ "@react-spring/animated": "~9.7.3",
+ "@react-spring/shared": "~9.7.3",
+ "@react-spring/types": "~9.7.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/react-spring/donate"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/shared": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.3.tgz",
+ "integrity": "sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==",
+ "dependencies": {
+ "@react-spring/types": "~9.7.3"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/types": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.3.tgz",
+ "integrity": "sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw=="
+ },
+ "node_modules/@react-spring/web": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.3.tgz",
+ "integrity": "sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==",
+ "dependencies": {
+ "@react-spring/animated": "~9.7.3",
+ "@react-spring/core": "~9.7.3",
+ "@react-spring/shared": "~9.7.3",
+ "@react-spring/types": "~9.7.3"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
@@ -1779,6 +1841,20 @@
"react": "17.0.2"
}
},
+ "node_modules/react-intersection-observer": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.10.2.tgz",
+ "integrity": "sha512-j2hGADK2hCbAlfaq6L3tVLb4iqngoN7B1fT16MwJ4J16YW/vWLcmAIinLsw0lgpZeMi4UDUWtHC9QDde0/P1yQ==",
+ "peerDependencies": {
+ "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
@@ -2620,6 +2696,49 @@
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A=="
},
+ "@react-spring/animated": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.3.tgz",
+ "integrity": "sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==",
+ "requires": {
+ "@react-spring/shared": "~9.7.3",
+ "@react-spring/types": "~9.7.3"
+ }
+ },
+ "@react-spring/core": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.3.tgz",
+ "integrity": "sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==",
+ "requires": {
+ "@react-spring/animated": "~9.7.3",
+ "@react-spring/shared": "~9.7.3",
+ "@react-spring/types": "~9.7.3"
+ }
+ },
+ "@react-spring/shared": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.3.tgz",
+ "integrity": "sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==",
+ "requires": {
+ "@react-spring/types": "~9.7.3"
+ }
+ },
+ "@react-spring/types": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.3.tgz",
+ "integrity": "sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw=="
+ },
+ "@react-spring/web": {
+ "version": "9.7.3",
+ "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.3.tgz",
+ "integrity": "sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==",
+ "requires": {
+ "@react-spring/animated": "~9.7.3",
+ "@react-spring/core": "~9.7.3",
+ "@react-spring/shared": "~9.7.3",
+ "@react-spring/types": "~9.7.3"
+ }
+ },
"@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
@@ -3340,6 +3459,12 @@
"scheduler": "^0.20.2"
}
},
+ "react-intersection-observer": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.10.2.tgz",
+ "integrity": "sha512-j2hGADK2hCbAlfaq6L3tVLb4iqngoN7B1fT16MwJ4J16YW/vWLcmAIinLsw0lgpZeMi4UDUWtHC9QDde0/P1yQ==",
+ "requires": {}
+ },
"react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
diff --git a/package.json b/package.json
index e0d84943..94d0995a 100644
--- a/package.json
+++ b/package.json
@@ -3,10 +3,12 @@
"@mailchimp/mailchimp_marketing": "^3.0.80",
"@material-ui/core": "^4.12.4",
"@mui/x-date-pickers": "^6.12.0",
+ "@react-spring/web": "^9.7.3",
"dayjs": "^1.11.9",
"material-ui-popup-state": "^5.0.9",
"qrcode": "^1.5.3",
"react-countup": "^6.5.0",
+ "react-intersection-observer": "^9.10.2",
"react-scroll-trigger": "^0.6.14"
}
}