From 9bed50e4e944789793f5f415328868f12ed7e661 Mon Sep 17 00:00:00 2001 From: shreyaNagunuri <72182003+shreyaNagunuri@users.noreply.github.com> Date: Wed, 29 May 2024 21:21:45 -0700 Subject: [PATCH 1/4] Remove Cses Web Dev Community Tab (#164) * Removed WebDev Community From About Page * Reordered Communities on About Page --- frontend/src/components/About/MeetTheTeam.tsx | 13 -------- .../src/components/About/OurCommunities.tsx | 33 ++++--------------- 2 files changed, 6 insertions(+), 40 deletions(-) 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 = () => {

- - Innovate - - - 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%' } }}> WebDev - 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.

From 00025e0c2cdd84cfa6c08f06fe897399e8972beb Mon Sep 17 00:00:00 2001 From: Joyce Lu <1006joycelu@gmail.com> Date: Wed, 29 May 2024 21:30:41 -0700 Subject: [PATCH 2/4] Made Opportunities Page More Dynamic (#160) * Adjusted logo size and font size * added fade-in effect * update fade-in timing * left aligned title with images --------- Co-authored-by: joycellu --- .../Opportunities/Opportunities.tsx | 105 ++++++++++++--- .../src/components/Opportunities/styles.ts | 4 +- package-lock.json | 125 ++++++++++++++++++ package.json | 2 + 4 files changed, 219 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/Opportunities/Opportunities.tsx b/frontend/src/components/Opportunities/Opportunities.tsx index 060403dc..95327b56 100644 --- a/frontend/src/components/Opportunities/Opportunities.tsx +++ b/frontend/src/components/Opportunities/Opportunities.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import { Container, Typography, Grid, Link, Box, useTheme } from '@mui/material'; +import React, { ReactNode, useEffect, useRef, useState } from 'react'; +import { Container, Typography, Grid, Link, Box, useTheme, useMediaQuery } from '@mui/material'; import MuiButton from '@mui/material/Button'; import bg from '../../images/shape2.svg'; import sponsor from '../../images/cseLogo.gif'; @@ -18,6 +18,21 @@ interface ImageWithBoxShadowProps { href?: string; } +interface FadeInSectionProps { + children: ReactNode; +} + +const fadeInStyle = { + opacity: 0, + transform: 'translateY(20px)', + transition: 'opacity 0.5s ease-out, transform 0.5s ease-out', +}; + +const fadeInVisibleStyle = { + opacity: 1, + transform: 'translateY(0)', +}; + export const ImageWithBoxShadow = ({ src, alt, @@ -27,6 +42,7 @@ export const ImageWithBoxShadow = ({ }: ImageWithBoxShadowProps) => { 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 = () => { bg - 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" } } From 52373305fe906497d4c893e6ac4b6d148002b749 Mon Sep 17 00:00:00 2001 From: shreyaNagunuri <72182003+shreyaNagunuri@users.noreply.github.com> Date: Wed, 29 May 2024 21:37:05 -0700 Subject: [PATCH 3/4] removed Upcoming Events when no events (#159) --- frontend/src/components/Home/Home.tsx | 129 +++++++++++++------------- 1 file changed, 66 insertions(+), 63 deletions(-) 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 && (
+
+

+ UPCOMING EVENTS +

+
+ + {isMobile && (
-

- UPCOMING EVENTS. -

+ {displayedFutureEvents.map((eventData, id) => ( +
+
+ ))} +
+ )} - {isMobile && ( -
- {displayedFutureEvents.map((eventData, id) => ( -
- -
- ))} -
- )} - - {!isMobile && ( -
- {displayedFutureEvents.map((eventData, id) => ( -
- -
- ))} -
- )} -
- + {!isMobile && ( +
+ {displayedFutureEvents.map((eventData, id) => ( +
+
+ ))} +
+ )} +
+
+
+ )} +
From 71037cd746ffee86ac8b08b375bd6e5b8e342a61 Mon Sep 17 00:00:00 2001 From: shreyaNagunuri Date: Wed, 2 Oct 2024 17:49:10 -0700 Subject: [PATCH 4/4] adding minor option --- frontend/src/components/MemberProfile/MemberProfile.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 !== '')) &&