Skip to content

Commit 7a1cd28

Browse files
committed
PE: Success page, remove render server, only firebase
1 parent c5cfec7 commit 7a1cd28

File tree

6 files changed

+226
-127
lines changed

6 files changed

+226
-127
lines changed

src/App.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import Landing from "./views/Landing";
4848
import Pickle from "./views/Pickle";
4949
import NewEventRegister from "./views/NewEventRegister";
5050
import { ToastContainer } from "react-toastify";
51+
import ProjectExpoRegistrationSuccess from "./views/HardcodedEventPages/Prajnotsavah/ProjectExpoRegistrationSuccess";
5152

5253

5354
export default function App() {
@@ -98,6 +99,7 @@ export default function App() {
9899
<Route path="/events/project-expo/register" element={ <ProjectExpoRegister /> }></Route>
99100
<Route path="/events/prajnotsavah" element={ <ProjectExpo /> }></Route>
100101
<Route path="/events/prajnotsavah/register" element={ <ProjectExpoRegister /> }></Route>
102+
<Route path="/events/prajnotsavah/success" element={ <ProjectExpoRegistrationSuccess /> }></Route>
101103

102104

103105
{/* PAST EVENTS */}

src/styles/ProjectExpo.scss

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,18 @@ $textWhite: rgb(231, 231, 231);
680680
align-items: flex-start;
681681
justify-content: center;
682682
background: linear-gradient(60deg, rgba(230, 230, 230, .1), rgba(240, 240, 240, .15));
683-
backdrop-filter: blur(3px);
683+
684+
// &::after {
685+
// z-index: 1 !important;
686+
// content: "";
687+
// width: 100%;
688+
// height: 100%;
689+
// position: absolute;
690+
// top: 0;
691+
// left: 0;
692+
// background-color: rgba(255, 255, 255, 0);
693+
// backdrop-filter: blur(1px);
694+
// }
684695

685696
.prizeCard {
686697
display: flex;
@@ -911,8 +922,12 @@ $textWhite: rgb(231, 231, 231);
911922
}
912923
}
913924

914-
footer {
925+
.connect {
915926
background: rgba(white, 0.1);
927+
backdrop-filter: blur(4px);
928+
}
929+
930+
footer {
916931
padding: 3rem 0;
917932
font-weight: bold;
918933
display: flex;

src/views/HardcodedEventPages/Prajnotsavah/ProjectExpo.jsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import CountdownTimer from "react-component-countdown-timer";
2323
import "react-component-countdown-timer/lib/styles.css";
2424

2525
import CLink from "@/components/CLink";
26+
import Footer from "@/components/Footer";
2627
import { useAuth } from "@/contexts/AuthContext";
2728

2829
const themeDetails = {
@@ -637,12 +638,7 @@ export default function ProjectExpo() {
637638

638639
</div>
639640

640-
<footer>
641-
<div className="club">
642-
With love, from GFG KARE
643-
</div>
644-
</footer>
645-
641+
<Footer />
646642
</div>
647643

648644
</div>

src/views/HardcodedEventPages/Prajnotsavah/ProjectExpoRegistration.jsx

Lines changed: 81 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -96,125 +96,87 @@ export default function ProjectExpoRegistration() {
9696
console.log(team);
9797
setTeamMembers(team);
9898

99-
axios
100-
.post(
101-
"/email_valid_for_event",
102-
{
103-
emails: [
104-
...Object.values(team).map((member) => member.email),
105-
],
106-
eventID: "project-expo",
107-
},
108-
{ headers: { Authorization: await currentUser.getIdToken() } }
109-
)
110-
.then(async (res) => {
111-
console.log("%c All emails are valid.", "color: green");
112-
console.log(res.data.message);
113-
let accomodationDetails = {};
114-
115-
if (form.current.elements["needAccomodation"].checked) {
116-
const noOfDays = form.current.elements["noOfDays"].value;
117-
const noOfMembers =
118-
form.current.elements["noOfMembers"].value;
119-
const checkInDate =
120-
form.current.elements["checkInDate"].value;
121-
const checkInTime =
122-
form.current.elements["checkInTime"].value;
123-
const checkOutDate =
124-
form.current.elements["checkOutDate"].value;
125-
const checkOutTime =
126-
form.current.elements["checkOutTime"].value;
127-
accomodationDetails = {
128-
noOfDays,
129-
noOfMembers,
130-
checkInDate,
131-
checkInTime,
132-
checkOutDate,
133-
checkOutTime,
134-
};
135-
}
136-
137-
console.log({
138-
teamName,
139-
theme,
140-
teamSize,
141-
teamMembers: team,
142-
tnr_number: form.current.elements["tnr_number"].value,
143-
needAccomodation:
144-
form.current.elements["needAccomodation"].checked,
145-
accomodationDetails: accomodationDetails,
146-
});
147-
148-
axios.post("/register_projectexpo", {
149-
email: currentUser.email,
150-
teamName,
151-
theme,
152-
teamSize,
153-
teamMembers: team,
154-
tnr_number: form.current.elements["tnr_number"].value,
155-
upi_id: form.current.elements["upi_id"].value,
156-
screenshot: imageUrl,
157-
needAccomodation:
158-
form.current.elements["needAccomodation"].checked,
159-
accomodationDetails: accomodationDetails,
160-
}, { headers: { Authorization: await currentUser.getIdToken() } })
161-
.then((res) => {
162-
console.log("Stored information in Firebase.");
163-
})
164-
165-
axios
166-
.post(
167-
"https://gfg-server-ngaw.onrender.com/regisert",
168-
{
169-
email: currentUser.email,
170-
teamName,
171-
theme,
172-
teamSize,
173-
teamMembers: team,
174-
tnr_number: form.current.elements["tnr_number"].value,
175-
upi_id: form.current.elements["upi_id"].value,
176-
screenshot: imageUrl,
177-
needAccomodation:
178-
form.current.elements["needAccomodation"].checked,
179-
accomodationDetails: accomodationDetails,
180-
},
181-
{
182-
headers: {
183-
Authorization: await currentUser.getIdToken(),
184-
},
185-
}
186-
)
187-
.then(async (response) => {
188-
console.log("Stored information in MongoDB.");
189-
console.log(res.data);
190-
setRegistrationLoading(false);
191-
console.log(response.data);
192-
toast.success("Registration successful! Please check your mail!");
193-
form.current.reset();
194-
setRegistrationStatus("registered");
195-
setConfirmModalShown(false);
196-
navigate("/events/prajnotsavah");
197-
})
198-
.catch((error) => {
199-
setRegistrationLoading(false);
200-
toast.error(
201-
error?.response?.data.message ||
202-
"Registration failed. Please try again later."
203-
);
204-
setConfirmModalShown(false);
205-
return;
206-
});
207-
})
208-
.catch((err) => {
209-
setRegistrationLoading(false);
210-
console.log(err);
211-
toast.error(
212-
err.response?.data?.message ||
213-
err?.message ||
214-
"Something went wrong while verifying the emails. Please try again."
215-
);
216-
return;
217-
});
99+
axios.post(
100+
"/email_valid_for_event",
101+
{ emails: [...Object.values(team).map((member) => member.email)], eventID: "project-expo",},
102+
{ headers: { Authorization: await currentUser.getIdToken() } }
103+
)
104+
.then(async (res) => {
105+
console.log("%c All emails are valid.", "color: green");
106+
console.log(res.data.message);
107+
let accomodationDetails = {};
108+
109+
if (form.current.elements["needAccomodation"].checked) {
110+
const noOfDays = form.current.elements["noOfDays"].value;
111+
const noOfMembers =
112+
form.current.elements["noOfMembers"].value;
113+
const checkInDate =
114+
form.current.elements["checkInDate"].value;
115+
const checkInTime =
116+
form.current.elements["checkInTime"].value;
117+
const checkOutDate =
118+
form.current.elements["checkOutDate"].value;
119+
const checkOutTime =
120+
form.current.elements["checkOutTime"].value;
121+
accomodationDetails = {
122+
noOfDays,
123+
noOfMembers,
124+
checkInDate,
125+
checkInTime,
126+
checkOutDate,
127+
checkOutTime,
128+
};
129+
}
130+
131+
console.log({
132+
teamName,
133+
theme,
134+
teamSize,
135+
teamMembers: team,
136+
tnr_number: form.current.elements["tnr_number"].value,
137+
needAccomodation:
138+
form.current.elements["needAccomodation"].checked,
139+
accomodationDetails: accomodationDetails,
140+
});
141+
142+
axios.post("/register_projectexpo", {
143+
email: currentUser.email,
144+
teamName,
145+
theme,
146+
teamSize,
147+
teamMembers: team,
148+
tnr_number: form.current.elements["tnr_number"].value,
149+
upi_id: form.current.elements["upi_id"].value,
150+
screenshot: imageUrl,
151+
needAccomodation:
152+
form.current.elements["needAccomodation"].checked,
153+
accomodationDetails: accomodationDetails,
154+
}, { headers: { Authorization: await currentUser.getIdToken() } })
155+
.then((res) => {
156+
console.log("Stored information in Firebase.");
157+
setRegistrationLoading(false);
158+
console.log(res.data);
159+
toast.success("Registration successful! Please check your mail!");
160+
form.current.reset();
161+
setRegistrationStatus("registered");
162+
setConfirmModalShown(false);
163+
navigate("/events/prajnotsavah/success", { state: { cred: "from_regn_success" } });
164+
})
165+
.catch((err) => {
166+
console.error(err);
167+
toast.error( err.data.message || err.message );
168+
})
169+
})
170+
.catch((err) => {
171+
setRegistrationLoading(false);
172+
console.log(err);
173+
toast.error(
174+
err.response?.data?.message ||
175+
err?.message ||
176+
"Something went wrong while verifying the emails. Please try again."
177+
);
178+
return;
179+
});
218180
};
219181

220182
useEffect(() => {
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { useEffect } from "react";
2+
import "./RegistrationSuccess.scss";
3+
4+
import { useLocation, useNavigate } from "react-router-dom";
5+
6+
export default function ProjectExpoRegistrationSuccess() {
7+
8+
const location = useLocation();
9+
const navigate = useNavigate();
10+
11+
useEffect(() => {
12+
const registeredCredentials = location.state?.cred;
13+
14+
console.log(location.state);
15+
16+
if (!registeredCredentials) {
17+
console.log("Credentials not found. redirecting...");
18+
navigate("/events/prajnotsavah");
19+
}
20+
else {
21+
console.log(`Credential: ${registeredCredentials}`);
22+
window.history.replaceState({}, '');
23+
}
24+
25+
}, []);
26+
27+
return (
28+
<div className="success">
29+
30+
<div id='card' class="animated fadeIn">
31+
<div id='upper-side'>
32+
<svg version="1.1" id="checkmark" xmlns="http://www.w3.org/2000/svg" xmlns: xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" xml: space="preserve">
33+
<path d="M131.583,92.152l-0.026-0.041c-0.713-1.118-2.197-1.447-3.316-0.734l-31.782,20.257l-4.74-12.65 c-0.483-1.29-1.882-1.958-3.124-1.493l-0.045,0.017c-1.242,0.465-1.857,1.888-1.374,3.178l5.763,15.382 c0.131,0.351,0.334,0.65,0.579,0.898c0.028,0.029,0.06,0.052,0.089,0.08c0.08,0.073,0.159,0.147,0.246,0.209 c0.071,0.051,0.147,0.091,0.222,0.133c0.058,0.033,0.115,0.069,0.175,0.097c0.081,0.037,0.165,0.063,0.249,0.091 c0.065,0.022,0.128,0.047,0.195,0.063c0.079,0.019,0.159,0.026,0.239,0.037c0.074,0.01,0.147,0.024,0.221,0.027 c0.097,0.004,0.194-0.006,0.292-0.014c0.055-0.005,0.109-0.003,0.163-0.012c0.323-0.048,0.641-0.16,0.933-0.346l34.305-21.865 C131.967,94.755,132.296,93.271,131.583,92.152z" />
34+
<circle fill="none" stroke="#ffffff" stroke-width="5" stroke-miterlimit="10" cx="109.486" cy="104.353" r="32.53" />
35+
</svg>
36+
<h3 id='status'> Success </h3>
37+
</div>
38+
39+
<div id='lower-side'>
40+
<p id='message'> You have successfully registered for Prajnotsavah 2K24! Check <strong> leader's mail </strong> for more details. Join the WhatsApp group using the link below. </p>
41+
<a href="https://chat.whatsapp.com/IN8OIvNLDzyIF0FR1yhqQK" id="contBtn">Join WhatsApp Group</a>
42+
</div>
43+
</div>
44+
</div>
45+
)
46+
}

0 commit comments

Comments
 (0)