diff --git a/package-lock.json b/package-lock.json
index 68445a8d..1b4e1071 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,7 +22,7 @@
"js-cookie": "^3.0.5",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-fast-marquee": "^1.6.3",
+ "react-fast-marquee": "^1.6.4",
"react-helmet-async": "^1.3.0",
"react-hook-form": "^7.49.3",
"react-icons": "^4.10.1",
@@ -48,6 +48,7 @@
"husky": "^8.0.0",
"lint-staged": "^13.2.1",
"prettier": "^3.1.1",
+ "sass": "^1.70.0",
"vite": "^4.4.2",
"vite-plugin-pwa": "^0.16.5"
}
@@ -9774,6 +9775,12 @@
"url": "https://opencollective.com/immer"
}
},
+ "node_modules/immutable": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz",
+ "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==",
+ "devOptional": true
+ },
"node_modules/import-fresh": {
"version": "3.3.0",
"license": "MIT",
@@ -15442,9 +15449,9 @@
"license": "MIT"
},
"node_modules/react-fast-marquee": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.6.3.tgz",
- "integrity": "sha512-oEISmNElv6lua/4i4uPYIteUKDxU0hAKKjH/tY2icje4GCns1rX6pIrkwVhjX0FMCIepUVqeyCchvqkiO/s2vw==",
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.6.4.tgz",
+ "integrity": "sha512-LAgvhRmHdqaUQ8R5jCUwzEGFUIjnCCt3T3W8X7j7wF6DWe0SATlpP0JX1V0pp2qX3DYUezmn1Iz5AtRFdL2EWQ==",
"peerDependencies": {
"react": ">= 16.8.0 || 18.0.0",
"react-dom": ">= 16.8.0 || 18.0.0"
@@ -16326,6 +16333,23 @@
"version": "13.0.0",
"license": "CC0-1.0"
},
+ "node_modules/sass": {
+ "version": "1.70.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz",
+ "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
+ "devOptional": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/sass-loader": {
"version": "12.6.0",
"license": "MIT",
diff --git a/package.json b/package.json
index e908357c..a5009d8e 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,7 @@
"js-cookie": "^3.0.5",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-fast-marquee": "^1.6.3",
+ "react-fast-marquee": "^1.6.4",
"react-helmet-async": "^1.3.0",
"react-hook-form": "^7.49.3",
"react-icons": "^4.10.1",
@@ -83,6 +83,7 @@
"husky": "^8.0.0",
"lint-staged": "^13.2.1",
"prettier": "^3.1.1",
+ "sass": "^1.70.0",
"vite": "^4.4.2",
"vite-plugin-pwa": "^0.16.5"
},
diff --git a/src/App.jsx b/src/App.jsx
index 3515431b..b77ef9a3 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -2,6 +2,7 @@ import React from "react";
import { Route, BrowserRouter as Router, Routes } from "react-router-dom";
import { BacktoTop } from "./components/shared";
import "./styles/App.css";
+import "./styles/Globals.scss";
import routesConfig from "./utils/routesConfig.jsx";
const App = () => {
diff --git a/src/assets/svg/Bell.svg b/src/assets/svg/Bell.svg
new file mode 100644
index 00000000..ff1450ca
--- /dev/null
+++ b/src/assets/svg/Bell.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/private/cards/club/style.css b/src/components/private/cards/club/ClubCard.css
similarity index 100%
rename from src/components/private/cards/club/style.css
rename to src/components/private/cards/club/ClubCard.css
diff --git a/src/components/private/cards/club/ClubCard.jsx b/src/components/private/cards/club/ClubCard.jsx
index 1f03e66f..82e0cd6d 100644
--- a/src/components/private/cards/club/ClubCard.jsx
+++ b/src/components/private/cards/club/ClubCard.jsx
@@ -1,6 +1,6 @@
import React from "react";
import { Button } from "../../../shared";
-import "./style.css";
+import "./ClubCard.css";
const DetailedClub = ({ club }) => {
return (
diff --git a/src/components/private/landing/Landing.css b/src/components/private/landing/Landing.css
index 28440a7f..b3f5928c 100644
--- a/src/components/private/landing/Landing.css
+++ b/src/components/private/landing/Landing.css
@@ -84,7 +84,7 @@
font-family: "Poppins", sans-serif;
font-size: 17px;
font-style: normal;
- width: 180px;
+ width: auto;
font-weight: 500;
display: flex;
justify-content: space-evenly;
diff --git a/src/components/shared/cards/events/EventsCard.css b/src/components/shared/cards/events/EventsCard.css
new file mode 100644
index 00000000..a59e7f4f
--- /dev/null
+++ b/src/components/shared/cards/events/EventsCard.css
@@ -0,0 +1,56 @@
+.eventscard_parent {
+ border-radius: 6px;
+ width: 300px;
+ height: 300px;
+ position: relative;
+ background-color: white;
+ border: 1px solid #6b2615;
+ padding: 0.5rem;
+ cursor: pointer;
+ transition: all 0.3s ease-in-out;
+ margin: 0 1rem;
+}
+
+.mySwiper {
+ padding: 1.5rem 0;
+}
+
+.eventscard_parent:hover {
+ -webkit-box-shadow: 0px 0px 20px 7px rgba(226, 105, 89, 0.32);
+ -moz-box-shadow: 0px 0px 20px 7px rgba(226, 105, 89, 0.32);
+ box-shadow: 0px 0px 20px 7px rgba(226, 105, 89, 0.32);
+ border: 1px solid #ff5b31;
+ transition: all 0.3s ease-in-out;
+}
+
+.eventscard_parent > img:nth-of-type(1) {
+ width: 100%;
+ margin: auto;
+ border-radius: 6px 6px 0 0px;
+}
+
+.eventscard_body > h1 {
+ font-size: 17px;
+ color: black;
+ font-weight: 700;
+ font-family: "Poppins", sans-serif;
+ margin-top: 0.5rem;
+}
+
+.eventscard_date {
+ background-color: white;
+ position: absolute;
+ top: 7px;
+ right: 7px;
+ text-align: center;
+ padding: 7px 2px;
+ border-radius: 4px;
+}
+
+.eventscard_date > p {
+ color: black;
+ font-family: "Inter", sans-serif;
+ font-weight: 700;
+ margin: 0;
+ font-size: 1px;
+}
diff --git a/src/components/shared/cards/events/EventsCard.jsx b/src/components/shared/cards/events/EventsCard.jsx
new file mode 100644
index 00000000..03db2368
--- /dev/null
+++ b/src/components/shared/cards/events/EventsCard.jsx
@@ -0,0 +1,23 @@
+import React from "react";
+import "./EventsCard.css";
+
+const EventsCard = () => {
+ return (
+
+
+
+
+
ISB Alumni Social Impact SIG Initiative
+
+
+
+ );
+};
+
+export default EventsCard;
diff --git a/src/pages/clubs/all/Clubs.css b/src/pages/clubs/Clubs.css
similarity index 100%
rename from src/pages/clubs/all/Clubs.css
rename to src/pages/clubs/Clubs.css
diff --git a/src/pages/clubs/all/Clubs.jsx b/src/pages/clubs/Clubs.jsx
similarity index 69%
rename from src/pages/clubs/all/Clubs.jsx
rename to src/pages/clubs/Clubs.jsx
index cf8a41e3..c8a64de0 100644
--- a/src/pages/clubs/all/Clubs.jsx
+++ b/src/pages/clubs/Clubs.jsx
@@ -1,10 +1,10 @@
import React, { useEffect } from "react";
import useSWR from "swr";
-import { DetailedClub } from "../../../components/private";
-import { Footer, Header, Navbar } from "../../../components/shared";
-import { clubEndpoints } from "../../../static/ApiEndpoints";
-import ComponentHelmet from "../../../utils/ComponentHelmet";
-import fetcher from "../../../utils/Fetcher";
+import { DetailedClub } from "../../components/private";
+import { Footer, Header, Navbar } from "../../components/shared";
+import { clubEndpoints } from "../../static/ApiEndpoints";
+import ComponentHelmet from "../../utils/ComponentHelmet";
+import fetcher from "../../utils/Fetcher";
import "./Clubs.css";
const Clubs = () => {
diff --git a/src/pages/clubs/profile/Profile.css b/src/pages/clubs/profile/Profile.css
deleted file mode 100644
index 9702d1fc..00000000
--- a/src/pages/clubs/profile/Profile.css
+++ /dev/null
@@ -1,266 +0,0 @@
-.clubdetails_parent {
- padding: 5rem 2rem;
-}
-
-.clubdetails_main {
- position: relative;
- max-width: 1200px;
- margin: auto;
-}
-
-.clubdetails_header {
- position: relative;
- height: 350px;
-}
-
-.clubdetails_header_img {
- width: 100%;
- height: 100%;
- margin: auto;
- border-radius: 6px;
-}
-
-.clubdetails_header_pfp {
- position: absolute;
- width: 150px;
- border-radius: 6px;
- left: 1rem;
- bottom: -4rem;
- height: 150px;
- object-fit: cover;
-}
-
-.clubdetails_subscribe {
- display: flex;
- justify-content: flex-end;
- margin-top: 1rem;
- gap: 1rem;
-}
-
-.clubdetails_body {
- margin-top: 1.5rem;
- margin-left: 1rem;
-}
-
-.clubdetails_body > h1 {
- font-size: 30px;
- color: #28183b;
- font-weight: 800;
- font-family: "Inter", sans-serif;
-}
-
-.clubdetails_body > p:nth-of-type(1) {
- font-size: 17px;
- color: black;
- font-family: "Poppins", sans-serif;
- font-weight: normal;
- margin: 0;
- width: 500px;
-}
-
-.clubdetails_address {
- margin-top: 15px;
-}
-
-.clubdetails_address > p {
- color: rgba(0, 0, 0, 0.782);
- font-family: "Poppins", sans-serif;
- margin: 0;
- font-size: 11px;
-}
-
-.clubdetails_about {
- margin-top: 2rem;
-}
-
-.clubdetails_contact {
- margin-top: 1rem;
- display: flex;
- align-items: center;
- gap: 7px;
- color: blue;
- font-weight: 700;
- font-family: "Inter", sans-serif;
-}
-
-.clubdetails_contact > a {
- margin: 0;
- font-size: 17px;
- cursor: pointer;
- text-decoration: none;
-}
-
-.clubdetails_contact_dot {
- width: 5px;
- height: 5px;
- border-radius: 50%;
- background-color: rgb(0, 0, 0);
-}
-
-.clubdetails_about > h1 {
- font-size: 27px;
- color: black;
- font-weight: 800;
- font-family: "Inter", sans-serif;
- margin-top: 4rem;
-}
-
-.clubdetails_about > p {
- font-size: 17px;
- color: black;
- font-family: "Poppins", sans-serif;
- font-weight: normal;
- margin: 0;
-}
-
-.clubdetails_events > h1 {
- font-size: 27px;
- color: black;
- font-weight: 800;
- font-family: "Inter", sans-serif;
- margin-top: 4rem;
-}
-
-.clubdetails_eventcard {
- border-radius: 6px;
- width: 350px;
- height: 300px;
- position: relative;
-}
-
-.clubdetails_eventcard > img:nth-of-type(1) {
- width: 100%;
-
- margin: auto;
- border-radius: 6px 6px 0 0px;
-}
-
-.clubdetails_eventcard_body > h1 {
- font-size: 17px;
- color: black;
- font-weight: 900;
- font-family: "Poppins", sans-serif;
- margin-top: 0.5rem;
- width: 60%;
-}
-
-.clubdetails_eventcard_body_date {
- background-color: white;
- position: absolute;
- top: 7px;
- right: 7px;
- text-align: center;
- padding: 7px 2px;
- border-radius: 4px;
-}
-
-.clubdetails_eventcard_body_date > p {
- color: black;
- font-family: "Inter", sans-serif;
- font-weight: 700;
- margin: 0;
- font-size: 1px;
-}
-
-.clubdetails_map > h1 {
- font-size: 27px;
- color: black;
- font-weight: 800;
- font-family: "Inter", sans-serif;
- margin-top: 4rem;
-}
-
-/* Mobile screen */
-@media screen and (max-width: 500px) {
- .clubdetails_parent {
- padding: 4rem 1rem;
- }
-
- .clubdetails_header {
- height: 150px;
- }
-
- .clubdetails_header_pfp {
- width: 70px;
- height: 70px;
- left: 0.5rem;
- bottom: -3rem;
- }
-
- .clubdetails_subscribe {
- display: flex;
- justify-content: flex-end;
- margin-top: 1rem;
- gap: 10px;
- }
-
- .clubdetails_subscribe > button {
- border-radius: 5px;
- padding: 3px 10px;
- gap: 5px;
- }
- .clubdetails_subscribe > button > p {
- font-size: 11px;
- }
-
- .clubdetails_subscribe > button > svg {
- font-size: 15px;
- margin-bottom: 3px;
- }
-
- .clubdetails_body {
- margin-top: 1.5rem;
- margin-left: 0.6rem;
- }
-
- .clubdetails_body > h1 {
- font-size: 23px;
- }
-
- .clubdetails_body > p:nth-of-type(1) {
- font-size: 16px;
- width: 100%;
- }
-
- .clubdetails_address {
- margin-top: 15px;
- }
-
- .clubdetails_address > p {
- font-size: 16px;
- }
-
- .clubdetails_about {
- margin-top: 2rem;
- }
-
- .clubdetails_contact > a {
- font-size: 16px;
- }
-
- .clubdetails_about > h1 {
- font-size: 21px;
- }
-
- .clubdetails_about > p {
- font-size: 16px;
- }
-
- .clubdetails_events > h1 {
- font-size: 21px;
- }
-
- .clubdetails_eventcard {
- width: 100%;
- }
-
- .clubdetails_eventcard > img:nth-of-type(1) {
- width: 100%;
- }
-
- .clubdetails_eventcard_body > h1 {
- font-size: 17px;
- }
-}
-
-/* 501px to */
diff --git a/src/pages/clubs/profile/Profile.jsx b/src/pages/clubs/profile/Profile.jsx
deleted file mode 100644
index 0fc81937..00000000
--- a/src/pages/clubs/profile/Profile.jsx
+++ /dev/null
@@ -1,429 +0,0 @@
-import React, { useEffect } from "react";
-import { useNavigate, useParams } from "react-router-dom";
-import useSWR from "swr";
-
-import { Button, Footer, Navbar } from "../../../components/shared";
-
-import { Logout } from "../../../service/MilanApi";
-import { clubEndpoints } from "../../../static/ApiEndpoints";
-import fetcher from "../../../utils/Fetcher";
-import { showErrorToast, showSuccessToast } from "../../../utils/Toasts";
-import "./Profile.css";
-
-import { BiEdit, BiLinkExternal, BiLogOut } from "react-icons/bi";
-import { BsDot } from "react-icons/bs";
-import { MdOutlineAttachMoney } from "react-icons/md";
-
-import Cookies from "js-cookie";
-import "swiper/css";
-import "swiper/css/autoplay";
-import "swiper/css/navigation";
-import "swiper/css/pagination";
-import { Autoplay, Navigation, Pagination } from "swiper/modules";
-import { Swiper, SwiperSlide } from "swiper/react";
-
-const Profile = () => {
- useEffect(() => {
- window.scrollTo(0, 0);
- }, []);
-
- const params = useParams();
- const navigate = useNavigate();
-
- const { data: clubdetails, isLoading } = useSWR(
- clubEndpoints.details(params.slug),
- fetcher,
- );
-
- if (isLoading) return Loading...
;
-
- async function handleLogout() {
- const data = await Logout();
-
- if (data?.status === 200) {
- showSuccessToast(data?.data?.message);
- setTimeout(() => {
- navigate("/");
- }, 1500);
- } else {
- showErrorToast(data?.message);
- }
- }
-
- return (
- <>
-
-
-
-
-
-
-
-
-
- {Cookies.get("username") !== params.slug ? (
-
- {" "}
- Help us continue
-
- ) : (
- <>
-
- Edit Profile
-
-
{
- handleLogout();
- }}
- >
- Logout
-
- >
- )}
-
-
-
-
{clubdetails?.name}
-
{clubdetails?.tagLine}
-
-
{clubdetails?.address}
-
- {clubdetails?.city}, {clubdetails?.state},{" "}
- {clubdetails?.country}
-
-
-
-
-
-
-
About us
- {/*
{clubdetails?.description}
*/}
-
- Lorem Ipsum is simply dummy text of the printing and typesetting
- industry. Lorem Ipsum has been the industrys standard dummy text
- ever since the 1500s, when an unknown printer took a galley of
- type and scrambled it to make a type specimen book. It has
- survived not only five centuries, but also the leap into
- electronic typesetting, remaining essentially unchanged. It was
- popularised in the 1500s, when an unknown printer took a galley
- of type and scrambled it to make a type specimen book. It has
- survived not only five cent
-
-
- Lorem Ipsum has been the industrys standard dummy text ever
- since the 1500s, when an unknown printer took a galley of type
- and scrambled it to make a type specimen book. It has survived
- not only five centuries, but also the leap into electronic
- typesetting, remaining essentially unchanged.
-
-
-
-
-
Past Events
- {window.innerWidth > 1200 ? (
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
- ) : (
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
-
-
-
-
-
ISB Alumni Social Impact SIG Initiative
-
-
-
-
-
- )}
-
-
-
-
Find us at
-
-
-
-
-
-
-
- >
- );
-};
-
-export default Profile;
diff --git a/src/pages/profile/Profile.jsx b/src/pages/profile/Profile.jsx
index 5371372b..885e9d07 100644
--- a/src/pages/profile/Profile.jsx
+++ b/src/pages/profile/Profile.jsx
@@ -1,7 +1,180 @@
+import Cookies from "js-cookie";
import React from "react";
+import Marquee from "react-fast-marquee";
+import { FiEdit3 } from "react-icons/fi";
+import { MdLogout } from "react-icons/md";
+import { useNavigate, useParams } from "react-router-dom";
+import { ToastContainer } from "react-toastify";
+import "swiper/css";
+import "swiper/css/autoplay";
+import "swiper/css/navigation";
+import "swiper/css/pagination";
+import useSWR from "swr";
+import { Button, Navbar } from "../../components/shared";
+import EventsCard from "../../components/shared/cards/events/EventsCard";
+import { Logout } from "../../service/MilanApi";
+import { clubEndpoints } from "../../static/ApiEndpoints";
+import fetcher from "../../utils/Fetcher";
+import { showErrorToast, showSuccessToast } from "../../utils/Toasts";
+import "./Profile.scss";
const Profile = () => {
- return Profile
;
+ const params = useParams();
+ const navigate = useNavigate();
+
+ const { data: info } = useSWR(
+ clubEndpoints.details(params.username),
+ fetcher,
+ );
+
+ async function handleLogout() {
+ const data = await Logout();
+
+ if (data?.status === 200) {
+ showSuccessToast(data?.data?.message);
+ setTimeout(() => {
+ navigate("/");
+ }, 1500);
+ } else {
+ showErrorToast(data?.message);
+ }
+ }
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
{info?.name}
+
+ We are a government funded indian inittiative to save the
+ tigers, and we are doing a great job at it.
+
+
+
+
+ {params.username === Cookies.get("username") ? (
+
+
+ Edit profile
+
+ ) : (
+
+
+
+
+
+
+ Subscribe
+
+ )}
+
+ {Cookies.get("isLoggedIn") &&
+ Cookies.get("username") === params.username ? (
+
{
+ handleLogout();
+ }}
+ >
+
+ Logout
+
+ ) : (
+
+
+
+
+
+ {" "}
+ Sponsor
+
+ )}
+
+
+
+
+
+
Recent Events
+
+
+
+
+
+
+
+
About Us
+
+ Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tempore
+ earum adipisci illum iste unde, veniam enim provident illo velit
+ magnam voluptatem sapiente libero voluptatum commodi nam aliquid,
+ veritatis vero ratione. Lorem, ipsum dolor sit amet consectetur
+ adipisicing elit. Tempore earum adipisci illum iste unde, veniam
+ enim provident illo velit magnam voluptatem sapiente libero
+ voluptatum commodi nam aliquid, veritatis vero ratione. {" "}
+
+ Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tempore
+ earum adipisci illum iste unde, veniam enim provident illo velit
+ magnam voluptatem sapiente libero voluptatum commodi nam aliquid,
+ veritatis vero ratione. Lorem, ipsum dolor sit amet consectetur
+ adipisicing elit. Tempore earum adipisci illum iste unde, veniam
+ enim provident illo velit magnam voluptatem sapiente libero
+ voluptatum commodi nam aliquid, veritatis vero ratione.
+
+
+
+
+
Find us here
+
+
+
+
+ >
+ );
};
export default Profile;
diff --git a/src/pages/profile/Profile.scss b/src/pages/profile/Profile.scss
new file mode 100644
index 00000000..5e07f8ed
--- /dev/null
+++ b/src/pages/profile/Profile.scss
@@ -0,0 +1,126 @@
+.profile_container {
+ display: flex;
+ flex-direction: column;
+ align-items: start;
+ padding-top: 8rem;
+ padding-bottom: 4rem;
+
+ .profile_parent {
+ max-width: 1000px;
+ margin: auto;
+ display: flex;
+ flex-direction: column;
+ gap: 4rem;
+
+ .profile_header {
+ display: flex;
+ gap: 1rem;
+
+ img {
+ width: 150px;
+ height: 150px;
+ border-radius: 6px;
+ margin-right: 20px;
+ }
+
+ .profile_header_details {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ align-items: flex-start;
+
+ .profile_header_name {
+ font-size: 2.1rem;
+ color: var(--secondary);
+ font-weight: 800;
+ font-family: var(--mont);
+ }
+
+ .profile_header_tagline {
+ font-family: var(--poppins);
+ color: #000000;
+ font-size: 18px;
+ font-weight: 500;
+ }
+
+ .profile_header_ctadiv {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ width: 100%;
+
+ .profile_header_cta {
+ width: auto;
+ padding: 0.5rem 1.5rem;
+ border-radius: 6px;
+ font-size: 16px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ svg {
+ width: 25px;
+ height: 25px;
+ font-size: 20px;
+ color: rgb(255, 255, 255);
+ font-weight: 700;
+ }
+ }
+ }
+ }
+
+ }
+
+ .profile_events{
+ .profile_events_title {
+ font-size: 2rem;
+ color: var(--secondary);
+ font-weight: 800;
+ font-family: var(--mont);
+ margin-bottom: 2rem;
+ }
+ }
+
+ .profile_about {
+ display: flex;
+ flex-direction: column;
+ align-items: start;
+
+ h1{
+ font-size: 2rem;
+ color: var(--secondary);
+ font-weight: 800;
+ font-family: var(--mont);
+ }
+
+ p {
+ font-family: var(--outfit);
+ color: #000000;
+ font-size: 20px;
+ font-weight: 400;
+ }
+ }
+
+ .profile_map {
+ display: flex;
+ flex-direction: column;
+ align-items: start;
+
+ h1{
+ font-size: 2rem;
+ color: var(--secondary);
+ font-weight: 800;
+ font-family: var(--mont);
+ margin-bottom: 1rem;
+ }
+
+ iframe{
+ border: 0;
+ width: 100%;
+ height: 500px;
+ border-radius: 10px;
+ border: 2px solid var(--secondary);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/pages/route.js b/src/pages/route.js
index e5aab0bc..7ded3635 100644
--- a/src/pages/route.js
+++ b/src/pages/route.js
@@ -8,12 +8,13 @@ export { default as SignUp } from "./auth/SignUp";
export { default as UserProfile } from "./user/UserProfile";
// Club Routes
+export { default as Clubs } from "./clubs/Clubs";
export { default as Events } from "./event/AllEvents/Events";
-export { default as Clubs } from "./clubs/all/Clubs";
-export { default as ClubProfile } from "./clubs/profile/Profile";
// Shop Routes
export { default as Shop } from "./shop/Shop";
+export { default as Profile } from "./profile/Profile";
+
// Not found page
export { default as Error404 } from "./error/Error404";
diff --git a/src/styles/Globals.scss b/src/styles/Globals.scss
new file mode 100644
index 00000000..9ba2eebb
--- /dev/null
+++ b/src/styles/Globals.scss
@@ -0,0 +1,18 @@
+/* Default styles, not to be altered without permission */
+* {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+:root {
+ --mont: "Montserrat", sans-serif;
+ --poppins: "Poppins", sans-serif;
+ --outfit: "Outfit", sans-serif;
+ --secondary:#6b2615;
+ --primary:#ff5b31;
+}
\ No newline at end of file
diff --git a/src/utils/routesConfig.jsx b/src/utils/routesConfig.jsx
index 88ab84e1..a83f2c3e 100644
--- a/src/utils/routesConfig.jsx
+++ b/src/utils/routesConfig.jsx
@@ -1,10 +1,10 @@
import React from "react";
import {
- ClubProfile,
Clubs,
Error404,
Events,
Home,
+ Profile,
Shop,
SignIn,
SignUp,
@@ -15,9 +15,9 @@ const routesConfig = [
{ path: "/", element: },
{ path: "/auth/signup", element: },
{ path: "/auth/login", element: },
- { path: "/user/:slug", element: },
+ { path: "/user/:username", element: },
{ path: "/clubs", element: },
- { path: "/club/:slug", element: },
+ { path: "/club/:username", element: },
{ path: "/events", element: },
{ path: "/shop", element: },
{ path: "*", element: },
diff --git a/vite.config.js b/vite.config.js
index 2ea9b2c6..37601682 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,7 +1,7 @@
-import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
-import svgr from "vite-plugin-svgr";
+import { defineConfig } from "vite";
import { VitePWA } from "vite-plugin-pwa";
+import svgr from "vite-plugin-svgr";
export default defineConfig({
plugins: [
@@ -108,17 +108,6 @@ export default defineConfig({
},
},
},
- {
- // serves static resources with a Network First strategy.
- urlPattern: /\.(?:js|css|jsx)$/,
- handler: "NetworkFirst",
- options: {
- cacheName: "static-resources",
- expiration: {
- maxEntries: 60,
- },
- },
- },
{
urlPattern: new RegExp("^https://api.milanhub.org/(.*)"),
handler: "StaleWhileRevalidate",