From 90021946641e5d03c83f55676ae9a48b078f3be9 Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 1 Nov 2023 17:06:51 -0700 Subject: [PATCH 1/6] collegePage Auth Removed --- package-lock.json | 144 ++++++++++----------- src/main-pages/CollegePage/CollegePage.tsx | 44 ++++--- src/pages/college.tsx | 44 ++++--- 3 files changed, 126 insertions(+), 106 deletions(-) diff --git a/package-lock.json b/package-lock.json index cdefba74..23529bd3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2823,11 +2823,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -2927,20 +2927,20 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -3090,9 +3090,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -3145,9 +3145,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -4809,18 +4809,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", - "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.17", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -4829,12 +4829,12 @@ } }, "node_modules/@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -12840,9 +12840,9 @@ } }, "node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "node_modules/css": { "version": "2.2.4", @@ -24187,9 +24187,9 @@ } }, "node_modules/react-devtools-core": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.0.tgz", - "integrity": "sha512-E3C3X1skWBdBzwpOUbmXG8SgH6BtsluSMe+s6rRcujNKG1DGi8uIfhdhszkgDpAsMoE55hwqRUzeXCmETDBpTg==", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz", + "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==", "peer": true, "dependencies": { "shell-quote": "^1.6.1", @@ -31125,11 +31125,11 @@ } }, "@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "requires": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -31202,17 +31202,17 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { @@ -31314,9 +31314,9 @@ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { "version": "7.22.15", @@ -31354,9 +31354,9 @@ } }, "@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==" + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.22.15", @@ -32432,29 +32432,29 @@ } }, "@babel/traverse": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", - "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "requires": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.17", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -38556,9 +38556,9 @@ } }, "crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "css": { "version": "2.2.4", @@ -47073,9 +47073,9 @@ } }, "react-devtools-core": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.0.tgz", - "integrity": "sha512-E3C3X1skWBdBzwpOUbmXG8SgH6BtsluSMe+s6rRcujNKG1DGi8uIfhdhszkgDpAsMoE55hwqRUzeXCmETDBpTg==", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz", + "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==", "peer": true, "requires": { "shell-quote": "^1.6.1", diff --git a/src/main-pages/CollegePage/CollegePage.tsx b/src/main-pages/CollegePage/CollegePage.tsx index 1a98a814..485cee2e 100644 --- a/src/main-pages/CollegePage/CollegePage.tsx +++ b/src/main-pages/CollegePage/CollegePage.tsx @@ -35,9 +35,11 @@ const CardsWrapper = styled.div` const College = ({ collegeList, questionResponses, + loggedIn }: { - questionResponses: UserResponse[]; - collegeList: any; + questionResponses?: UserResponse[]; + collegeList?: any; + loggedIn?: boolean; }) => { const [collegeData, setData] = useState([]); const [hasMoreData, setHasMore] = useState(true); @@ -47,9 +49,9 @@ const College = ({ let collegeListArray = []; const [currNumericalSortOrder, setCurrNumericalSortOrder] = useState("Least-Greatest"); - const userResponse = questionResponses.find( + const userResponse = loggedIn ?questionResponses.find( ({ questionId }) => questionId == "627e8fe7e97c3c14537dc7f5" - )?.response; + )?.response : "notLoggedIn"; const [requestData, setRequest] = useState({ searchText: "*", @@ -57,11 +59,14 @@ const College = ({ skip: 0, filters: {}, searchFields: ["INSTNM"], - userTier: userResponse.includes("Level 1") - ? 1 - : userResponse.includes("Level 2") - ? 2 - : 3, + userTier: + userResponse == "notLoggedIn" + ? -1 + : userResponse.includes("Level 1") + ? 1 + : userResponse.includes("Level 2") + ? 2 + : 3, }); const [prevRequest, setPrevRequest] = useState({ searchText: "*", @@ -69,11 +74,14 @@ const College = ({ skip: 0, filters: {}, searchFields: ["INSTNM"], - userTier: userResponse.includes("Level 1") - ? 1 - : userResponse.includes("Level 2") - ? 2 - : 3, + userTier: + userResponse == "notLoggedIn" + ? -1 + : userResponse.includes("Level 1") + ? 1 + : userResponse.includes("Level 2") + ? 2 + : 3, }); function handleSearch(e) { @@ -108,8 +116,10 @@ const College = ({ return data; } - for (let i = 0; i < collegeList.length; i++) { - collegeListArray[i] = collegeList[i]?.college_name; + if (collegeList) { + for (let i = 0; i < collegeList.length; i++) { + collegeListArray[i] = collegeList[i]?.college_name; + } } useEffect(() => { @@ -389,6 +399,6 @@ const College = ({ export default connect((state) => { return { - questionResponses: state.questionResponses, + questionResponses: state?.questionResponses }; })(College); diff --git a/src/pages/college.tsx b/src/pages/college.tsx index c47e2913..bb6f0961 100644 --- a/src/pages/college.tsx +++ b/src/pages/college.tsx @@ -5,30 +5,40 @@ import { getCollegeList } from "../pages/api/CST/get-college-list"; export const getServerSideProps = async (ctx: GetServerSidePropsContext) => { try { - const session = getSession(ctx); - const userId = (await session).user.uid; - const collegeList = await getCollegeList(userId); - let collegeListJSON = {}; - try { - collegeListJSON = JSON.parse(JSON.stringify(collegeList)).list; - } catch (e) { - collegeListJSON = {}; + const session = await getSession(ctx); + if (!session) { + return { + props: { + logged: false, + }, + }; + } else { + const userId = session.user.uid; + const collegeList = await getCollegeList(userId); + let collegeListJSON = {}; + try { + collegeListJSON = JSON.parse(JSON.stringify(collegeList)).list; + } catch (e) { + collegeListJSON = {}; + } + return { + props: { + firebaseId: userId, + collegeListData: collegeListJSON, + logged: true, + }, + }; } - - return { - props: { - firebaseId: userId, - collegeListData: collegeListJSON - }, - }; } catch (err) { console.log(err); return { props: {} as never }; } }; -const College = ({ collegeListData }) => { - return ; +const College = ({ collegeListData, logged }) => { + if (logged) { + return + } else return ; }; // College.requireAuth = true; export default College; From 423f6a57d697692922c546b6b03ae4c1ab979fa4 Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 1 Nov 2023 18:00:49 -0700 Subject: [PATCH 2/6] Paywall Fixed --- .../CollegeDetailPage/CollegeDetailPage.tsx | 150 ++++++++++-------- src/main-pages/CollegePage/CollegePage.tsx | 2 +- src/pages/college-detail/[id].tsx | 58 ++++--- src/pages/college-search.tsx | 46 +++--- 4 files changed, 154 insertions(+), 102 deletions(-) diff --git a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx index a2ef6e11..23e36ce2 100644 --- a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx +++ b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx @@ -24,16 +24,18 @@ import classNames from "classnames"; import { Map, Marker, ZoomControl } from "pigeon-maps"; import { useSession } from "next-auth/react"; import { Button } from "@mui/material"; -import { Container } from 'react-bootstrap'; +import { Container } from "react-bootstrap"; const CollegeDetailPage = ({ questionResponses, collegeData, collegeList, + loggedIn, }: { - questionResponses: UserResponse[]; + questionResponses?: UserResponse[]; collegeData: any; - collegeList: any; + collegeList?: any; + loggedIn?: any; }) => { const [value, setValue] = React.useState(0); const data = JSON.parse(collegeData); @@ -43,13 +45,17 @@ const CollegeDetailPage = ({ const [accountInfo, setAccountInfo] = React.useState(null); let collegeListArray = []; - for (let i = 0; i < collegeList.length; i++) { - collegeListArray[i] = collegeList[i]?.college_name; + + if (collegeList) { + for (let i = 0; i < collegeList.length; i++) { + collegeListArray[i] = collegeList[i]?.college_name; + } } + let onList = collegeListArray.includes(data.title); const [addedToList, setAddedToList] = useState(onList); - const [premium, setPremium] = React.useState(true); + const [premium, setPremium] = React.useState(loggedIn); React.useEffect(() => { if (session) { @@ -64,7 +70,9 @@ const CollegeDetailPage = ({ }); const accountInfoJSON = await accountInfoResponse.json(); setAccountInfo(accountInfoJSON); - setPremium(accountInfoJSON.premium === true); + if (!loggedIn) { + setPremium(false); + } else setPremium(accountInfoJSON.premium === true); } const handleChange = (event: React.SyntheticEvent, newValue: number) => { @@ -93,10 +101,11 @@ const CollegeDetailPage = ({ @@ -104,54 +113,62 @@ const CollegeDetailPage = ({ notification.open({ message: "Success", - description: "Successfully added this college to your list", btn, + description: "Successfully added this college to your list", + btn, duration: 4, - placement: "bottomRight" + placement: "bottomRight", }); }; - const userResponse = questionResponses.find( - ({ questionId }) => questionId == "627e8fe7e97c3c14537dc7f5" - )?.response; + const userResponse = loggedIn + ? questionResponses.find( + ({ questionId }) => questionId == "627e8fe7e97c3c14537dc7f5" + )?.response + : "notLoggedIn"; - const userTier = userResponse.includes("Level 1") - ? 1 - : userResponse.includes("Level 2") - ? 2 - : 3; + const userTier = + userResponse == "notLoggedIn" + ? -1 + : userResponse.includes("Level 1") + ? 1 + : userResponse.includes("Level 2") + ? 2 + : 3; - {userTier >= data?.["college_fit_metric"]?.safety - ? "Safety School" - : userTier < data?.["college_fit_metric"]?.target - ? "Reach School" - : "Fit School"} + { + userTier >= data?.["college_fit_metric"]?.safety + ? "Safety School" + : userTier < data?.["college_fit_metric"]?.target + ? "Reach School" + : "Fit School"; + } - let collegeTier = 0; - if (userTier >= data?.["college_fit_metric"]?.safety) { - collegeTier = 0; - } else if (userTier < data?.["college_fit_metric"]?.target) { - collegeTier = 2; - } else { - collegeTier = 1; - } + let collegeTier = 0; + if (userTier >= data?.["college_fit_metric"]?.safety) { + collegeTier = 0; + } else if (userTier < data?.["college_fit_metric"]?.target) { + collegeTier = 2; + } else { + collegeTier = 1; + } - const handleAddCollege = async () => { - // add to college list - openNotification(); - const response = await fetch(`/api/CST/add-college-to-list`, { - method: "PUT", - headers: { - "content-type": "application/json", - }, - body: JSON.stringify({ - user_id: session.user.uid, - college_title: data.title, - tier: collegeTier - }), - }); - const responseJson = await response.json(); - setAddedToList(!addedToList); - }; + const handleAddCollege = async () => { + // add to college list + openNotification(); + const response = await fetch(`/api/CST/add-college-to-list`, { + method: "PUT", + headers: { + "content-type": "application/json", + }, + body: JSON.stringify({ + user_id: session.user.uid, + college_title: data.title, + tier: collegeTier, + }), + }); + const responseJson = await response.json(); + setAddedToList(!addedToList); + }; // *********************Data Parsing Functions******************* function parsePercent(data) { @@ -195,10 +212,10 @@ const CollegeDetailPage = ({ function singlePaywall(data) { if (!premium) return ( -
{ - router.push("/auth/premium") + router.push("/auth/premium"); }} > @@ -215,10 +232,10 @@ const CollegeDetailPage = ({ const BlockPaywallCover = () => { if (!premium) return ( -
{ - router.push("/auth/premium") + router.push("/auth/premium"); }} style={{ cursor: "pointer" }} > @@ -397,22 +414,24 @@ const CollegeDetailPage = ({
+ ) : (
Save to my list -
} +
+ )} @@ -423,7 +442,7 @@ const CollegeDetailPage = ({ - + {/* */} @@ -555,7 +574,11 @@ const CollegeDetailPage = ({ sub2data={data["calendar_system"]} sub3="Average GPA" // sub3data={data["avg_gpa"]} - sub3data={data["avg_gpa"] === undefined ? "Coming Soon!" : data["avg_gpa"]} + sub3data={ + data["avg_gpa"] === undefined + ? "Coming Soon!" + : data["avg_gpa"] + } sub4="Most popular Area of Study" sub4data={(() => { let d = data["study_disciplines"]; @@ -2066,11 +2089,14 @@ const CollegeDetailPage = ({ ) : value == 6 ? ( - +

Coming Soon!

- ) : value == 7 ?( + ) : value == 7 ? ( <> ) : ( <> @@ -2082,7 +2108,7 @@ const CollegeDetailPage = ({ export default connect((state) => { return { - questionResponses: state.questionResponses, + questionResponses: state?.questionResponses, }; })(CollegeDetailPage); diff --git a/src/main-pages/CollegePage/CollegePage.tsx b/src/main-pages/CollegePage/CollegePage.tsx index 485cee2e..ddfbee56 100644 --- a/src/main-pages/CollegePage/CollegePage.tsx +++ b/src/main-pages/CollegePage/CollegePage.tsx @@ -49,7 +49,7 @@ const College = ({ let collegeListArray = []; const [currNumericalSortOrder, setCurrNumericalSortOrder] = useState("Least-Greatest"); - const userResponse = loggedIn ?questionResponses.find( + const userResponse = loggedIn ? questionResponses.find( ({ questionId }) => questionId == "627e8fe7e97c3c14537dc7f5" )?.response : "notLoggedIn"; diff --git a/src/pages/college-detail/[id].tsx b/src/pages/college-detail/[id].tsx index 4f61a012..ec6fc20b 100644 --- a/src/pages/college-detail/[id].tsx +++ b/src/pages/college-detail/[id].tsx @@ -1,36 +1,52 @@ import { GetServerSidePropsContext } from "next"; -import CollegeDetailPage from '../../main-pages/CollegeDetailPage/CollegeDetailPage'; -import { getSingleCollegeInfo } from '../api/CST/get-single-college'; +import CollegeDetailPage from "../../main-pages/CollegeDetailPage/CollegeDetailPage"; +import { getSingleCollegeInfo } from "../api/CST/get-single-college"; import { getCollegeList } from "../api/CST/get-college-list"; import { getSession } from "next-auth/react"; -import React from 'react'; +import React from "react"; export const getServerSideProps = async (ctx: GetServerSidePropsContext) => { try { const { id } = ctx.query; - const session = getSession(ctx); - const userId = (await session).user.uid; const college = await getSingleCollegeInfo(`${id}`); - const collegeList = await getCollegeList(userId); - let collegeListJSON = {}; - try { - collegeListJSON = JSON.parse(JSON.stringify(collegeList)).list; - } catch (e) { - collegeListJSON = {} + const session = await getSession(ctx); + if (!session) { + return { + props: { + logged: false, + collegeData: JSON.stringify(college) + }, + }; + } else { + const userId = session.user.uid; + const collegeList = await getCollegeList(userId); + let collegeListJSON = {}; + try { + collegeListJSON = JSON.parse(JSON.stringify(collegeList)).list; + } catch (e) { + collegeListJSON = {}; + } + return { + props: { + logged: true, + collegeData: JSON.stringify(college), + collegeList: collegeListJSON, + }, + }; } - return { - props: { - collegeData: JSON.stringify(college), - collegeList: collegeListJSON - }, - }; } catch (err) { return { props: {} as never }; } }; -const CollegeDetail = ({ collegeData, collegeList }) => { - return ; +const CollegeDetail = ({ collegeData, collegeList, logged }) => { + if (logged) { + return ( + + ); + } else return ( + + ); }; -CollegeDetail.requireAuth = true; -export default CollegeDetail; \ No newline at end of file +// CollegeDetail.requireAuth = true; +export default CollegeDetail; diff --git a/src/pages/college-search.tsx b/src/pages/college-search.tsx index aff3748b..9d621c45 100644 --- a/src/pages/college-search.tsx +++ b/src/pages/college-search.tsx @@ -1,34 +1,44 @@ import { GetServerSidePropsContext } from "next"; import CollegePage from "../main-pages/CollegePage/CollegePage"; import { getSession } from "next-auth/react"; -import { getCollegeList } from "./api/CST/get-college-list"; +import { getCollegeList } from "../pages/api/CST/get-college-list"; export const getServerSideProps = async (ctx: GetServerSidePropsContext) => { try { - const session = getSession(ctx); - const userId = (await session).user.uid; - const collegeList = await getCollegeList(userId); - let collegeListJSON = {}; - try { - collegeListJSON = JSON.parse(JSON.stringify(collegeList)).list; - } catch (e) { - collegeListJSON = {}; + const session = await getSession(ctx); + if (!session) { + return { + props: { + logged: false, + }, + }; + } else { + const userId = session.user.uid; + const collegeList = await getCollegeList(userId); + let collegeListJSON = {}; + try { + collegeListJSON = JSON.parse(JSON.stringify(collegeList)).list; + } catch (e) { + collegeListJSON = {}; + } + return { + props: { + firebaseId: userId, + collegeListData: collegeListJSON, + logged: true, + }, + }; } - - return { - props: { - firebaseId: userId, - collegeListData: collegeListJSON - }, - }; } catch (err) { console.log(err); return { props: {} as never }; } }; -const College = ({ collegeListData }) => { - return ; +const College = ({ collegeListData, logged }) => { + if (logged) { + return ; + } else return ; }; // College.requireAuth = true; export default College; From b25bbdc07b82facf7f17e0b958f2322656fba50c Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 1 Nov 2023 18:22:06 -0700 Subject: [PATCH 3/6] Account Register --- .../CollegeDetailPage/CollegeDetailPage.tsx | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx index 23e36ce2..60f7ffaa 100644 --- a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx +++ b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx @@ -153,21 +153,25 @@ const CollegeDetailPage = ({ } const handleAddCollege = async () => { - // add to college list - openNotification(); - const response = await fetch(`/api/CST/add-college-to-list`, { - method: "PUT", - headers: { - "content-type": "application/json", - }, - body: JSON.stringify({ - user_id: session.user.uid, - college_title: data.title, - tier: collegeTier, - }), - }); - const responseJson = await response.json(); - setAddedToList(!addedToList); + if (session) { + // add to college list + openNotification(); + const response = await fetch(`/api/CST/add-college-to-list`, { + method: "PUT", + headers: { + "content-type": "application/json", + }, + body: JSON.stringify({ + user_id: session.user.uid, + college_title: data.title, + tier: collegeTier, + }), + }); + const responseJson = await response.json(); + setAddedToList(!addedToList); + } else { + window.open("/auth/login", "_blank"); + } }; // *********************Data Parsing Functions******************* From f7c13c6909edc512395d8d11f6b9549fb2e16bb4 Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 1 Nov 2023 18:33:10 -0700 Subject: [PATCH 4/6] minor --- .../CollegeDetailPage/CollegeDetailPage.tsx | 20 +++++++++++-------- .../college-detail-page.module.scss | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx index 60f7ffaa..d032f070 100644 --- a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx +++ b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx @@ -395,15 +395,19 @@ const CollegeDetailPage = ({ {data.title}
-
- {userTier >= data?.["college_fit_metric"]?.safety - ? "Safety School" - : userTier < data?.["college_fit_metric"]?.target - ? "Reach School" - : "Fit School"} -
+ {!loggedIn ? ( +
+ {userTier >= data?.["college_fit_metric"]?.safety + ? "Safety School" + : userTier < data?.["college_fit_metric"]?.target + ? "Reach School" + : "Fit School"} +
+ ) : ( + "" + )}
{data?.["college_type"] == "Public" diff --git a/src/main-pages/CollegeDetailPage/college-detail-page.module.scss b/src/main-pages/CollegeDetailPage/college-detail-page.module.scss index 1087717a..0c8e0aa1 100644 --- a/src/main-pages/CollegeDetailPage/college-detail-page.module.scss +++ b/src/main-pages/CollegeDetailPage/college-detail-page.module.scss @@ -1,6 +1,7 @@ @use "src/common/styles" as *; .college-fit-container { + margin-right: 10px; padding: 5px; border-radius: 4px; padding-left: 8px; From 4c49262399fa53e4cfc24ad8fa81e0ded7bec14e Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 1 Nov 2023 18:35:35 -0700 Subject: [PATCH 5/6] removed Insigts while not signed in --- src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx index d032f070..2fc47656 100644 --- a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx +++ b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx @@ -450,8 +450,7 @@ const CollegeDetailPage = ({ - - {/* */} + {loggedIn ? : ""}
From 465a1889ad6f798b61bc71d0b4acb83d61fd93a8 Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 1 Nov 2023 18:37:22 -0700 Subject: [PATCH 6/6] Signup --- src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx index 2fc47656..55faced9 100644 --- a/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx +++ b/src/main-pages/CollegeDetailPage/CollegeDetailPage.tsx @@ -170,7 +170,7 @@ const CollegeDetailPage = ({ const responseJson = await response.json(); setAddedToList(!addedToList); } else { - window.open("/auth/login", "_blank"); + window.open("/auth/signup", "_blank"); } };