Check out our valuable resources to get insight on our chapters.
diff --git a/components/chapter/chapter-toolkit-menu/chapterToolkit.module.css b/components/chapter/chapter-toolkit-menu/chapterToolkit.module.css
index c46e3e4e..f22987cf 100644
--- a/components/chapter/chapter-toolkit-menu/chapterToolkit.module.css
+++ b/components/chapter/chapter-toolkit-menu/chapterToolkit.module.css
@@ -3,14 +3,13 @@
display: flex;
align-items: center;
justify-content: center;
- background: linear-gradient(180deg, rgba(21, 19, 113, 0) 0%, #151371 100%);
padding-bottom: 4em;
position: relative;
}
.container {
width: 100%;
- max-width: 64em;
+ /* max-width: 64em; */
display: flex;
flex-direction: column;
align-items: center;
@@ -30,8 +29,17 @@
}
.heading {
- font-size: 1.6rem;
- color: white;
+ font-style: normal;
+ font-weight: 600;
+ font-size: 61px;
+ text-align: center;
+ background: linear-gradient(90.87deg, #97C4F5 -2.84%, #33D2FF 82.04%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ padding: 0;
+ margin: 0;
+ margin-bottom: 15px;
}
.text {
@@ -39,28 +47,26 @@
text-align: center;
padding: 0 3em;
color: white;
+ font-weight: normal;
+ font-size: 30px;
}
.menu {
width: 100%;
display: grid;
grid-template-columns: repeat(3, 1fr);
- gap: 1em;
+ gap: 3em;
}
@media screen and (max-width: 1024px) {
- .container {
- width: 48rem;
- }
+ .menu {
+ grid-template-columns: repeat(2, 1fr);
+ }
}
@media screen and (max-width: 768px) {
- .container {
- width: 36rem;
- }
-
.menu {
- grid-template-columns: repeat(2, 1fr);
+ grid-template-columns: repeat(1, 1fr);
}
}
@@ -69,26 +75,12 @@
padding-right: 0.5em;
padding-left: 0.5em;
}
-
- .tag {
- width: 10%;
- padding: 0.3em;
- font-size: 10px;
- }
-
- .container {
- width: 24rem;
- }
- .menu {
- gap: 0.5em;
- }
-
- .heading {
- font-size: 1rem;
+ .heading{
+ font-size: 40px;
}
-
- .text {
- font-size: 12px;
+ .text{
+ padding: 0;
+ font-size: 24px;
}
}
diff --git a/components/chapter/chapter-wrapper/ChapterWrapper.module.css b/components/chapter/chapter-wrapper/ChapterWrapper.module.css
index 37239270..0c3acfe4 100644
--- a/components/chapter/chapter-wrapper/ChapterWrapper.module.css
+++ b/components/chapter/chapter-wrapper/ChapterWrapper.module.css
@@ -1,8 +1,4 @@
.wrapper {
- background: linear-gradient(
- 104.61deg,
- #ff00b8 2.65%,
- #ff655b 51.83%,
- #ffc700 100%
- );
+ background: #14152B;
+ font-family: 'Poppins', sans-serif;
}
\ No newline at end of file
diff --git a/components/chapter/view/CategoriesIcons.js b/components/chapter/view/CategoriesIcons.js
new file mode 100644
index 00000000..566d5488
--- /dev/null
+++ b/components/chapter/view/CategoriesIcons.js
@@ -0,0 +1,114 @@
+import React from 'react';
+
+const Startup = (
+
+);
+
+const Community = (
+
+);
+
+const Event = (
+
+);
+
+const Chapter = (
+
+);
+const Hackthone = (
+
+);
+const Dapp = (
+
+);
+const Incubator = (
+
+);
+const minority = (
+
+);
+const Policy = (
+
+);
+const Categories = [{
+ id: 1,
+ text: 'Start ups',
+ icon: Startup,
+},
+{
+ id: 2,
+ text: 'Community Programs',
+ icon: Community,
+},
+{
+ id: 3,
+ text: 'Policy / Research',
+ icon: Policy,
+},
+{
+ id: 4,
+ text: 'Events',
+ icon: Event,
+},
+{
+ id: 5,
+ text: 'Chapters',
+ icon: Chapter,
+},
+{
+ id: 6,
+ text: 'Hackthon Topics',
+ icon: Hackthone,
+},
+{
+ id: 7,
+ text: 'DApp Improvements',
+ icon: Dapp,
+},
+{
+ id: 8,
+ text: 'Incubator',
+ icon: Incubator,
+}, {
+ id: 9,
+ text: 'Minority Venture Capital',
+ icon: minority,
+},
+];
+export default Categories;
diff --git a/components/chapter/view/Events.js b/components/chapter/view/Events.js
new file mode 100644
index 00000000..9e886941
--- /dev/null
+++ b/components/chapter/view/Events.js
@@ -0,0 +1,140 @@
+import React, { useState, useEffect } from 'react';
+import axios from 'axios';
+import { useRouter } from 'next/router';
+import styles from './chapter.module.scss';
+
+const Events = ({ token }) => {
+ const [pastEvents, setPastEvents] = useState([]);
+ const [upcomingEvents, setUpcomingEvents] = useState([]);
+ const [active, setActive] = useState(true);
+ const router = useRouter();
+ useEffect(() => {
+ if (token != null) {
+ axios
+ .get(`${process.env.BASE_URI}/event`, {
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET',
+ 'Access-Control-Allow-Headers': 'Content-Type',
+ Authorization: `Bearer ${token}`,
+ 'Content-Type': 'application/json',
+ },
+ })
+ .then((res) => {
+ const dateNow = Date.now();
+ // dateNow < new Date(event.time).getTime()
+ const events = res.data.data.filter((event) => (
+ event.approved !== null
+ && event.approved === true
+ ));
+ const upcoming = events.filter((event) => (
+ dateNow < new Date(event.time).getTime()
+ ));
+ setPastEvents(events.slice(0, 7));
+ setUpcomingEvents(upcoming.slice(0, 7));
+ })
+ .catch((error) => {
+ if (error.response) {
+ console.log(error.response.data);
+ } else if (error.request) {
+ console.log(error.request);
+ } else {
+ console.log('Error', error.message);
+ }
+ console.log(error.config);
+ setPastEvents([]);
+ setUpcomingEvents([]);
+ });
+ }
+ }, []);
+ const getTime = (date, time) => {
+ const eventDate = new Date(date);
+ let hr = eventDate.getHours();
+ if (hr === 0) hr = 1;
+ if (time) {
+ return hr > 12 ? `(EST ${hr} Pm - ${(hr + 2) < 12 ? `${hr + 2} pm` : `${hr - 12} Am`})` : `(EST ${hr} Am - ${(hr + 2) < 12 ? `${hr + 2} Am` : `${hr - 12} Pm`})`;
+ }
+
+ return eventDate.toDateString();
+ };
+ return (
+
+
+
+ { active && pastEvents.map((event) => (
+
+

+
+
+ {event?.eventName}
+
+
+ {event?.EventDescription}
+
+
+
+
+ {getTime(event?.time, true)}
+
+
+ {getTime(event?.time, false)}
+
+
+
+
+
+ ))}
+ { !active && upcomingEvents.map((event) => (
+
+

+
+
+ {event?.eventName}
+
+
+ {event?.EventDescription}
+
+
+
+
+ {getTime(event?.time, true)}
+
+
+ {getTime(event?.time, false)}
+
+
+
+
+
+ ))}
+
+
+
+ );
+};
+
+export default Events;
diff --git a/components/chapter/view/Governance.js b/components/chapter/view/Governance.js
new file mode 100644
index 00000000..7b26f199
--- /dev/null
+++ b/components/chapter/view/Governance.js
@@ -0,0 +1,104 @@
+import React, { useState } from 'react';
+import Select from 'react-select';
+import styles from './chapter.module.scss';
+import Categories from './CategoriesIcons';
+
+const Governance = ({ customStyles, DropdownIndicator }) => {
+ const [active, setActice] = useState(true);
+ const [currentCategory, setCatergory] = useState('');
+
+ const searchHandler = (e) => {
+ // const filterLocation = data.filter(
+ // (location) => location.location.toLowerCase().includes(e.target.value.toLowerCase())
+ // || location.LocationName.toLowerCase().includes(e.target.value.toLowerCase())
+ // ,
+ // );
+ // setLocations(filterLocation);
+ };
+ return (
+
+
+
Proposal
+
+
+
+
+
+
+
setActice(false)}>New Proposal
+
setActice(true)}>Proposals
+
+
+ {active && (
+
+
+

+
+
ThreeBox Integration
+
Type: Enhancement | Category: Incubator
+
+
Approved
+
+
Implement 3 box implementation into MPA platform.
+
+ ) }
+ {!active && (
+
+
+
+
+
+
+
+ {Categories.map((category) => (
+
+
setCatergory(category.text)} className={category.text === currentCategory ? styles.activeCard : ''} key={category.id}>
+ {category.icon}
+
+ {category.text}
+
+
+ ))}
+
+
+
+
+
Would you like to add a poll to your proposal?
+
+ {`Start Date - ${new Date().toDateString()}`}
+
+
+
+
+
+
+
+
+ ) }
+
+
+
+
+ );
+};
+
+export default Governance;
diff --git a/components/chapter/view/HeroSection.js b/components/chapter/view/HeroSection.js
new file mode 100644
index 00000000..1bdfcfe0
--- /dev/null
+++ b/components/chapter/view/HeroSection.js
@@ -0,0 +1,378 @@
+import React, { useState, useEffect } from 'react';
+import axios from 'axios';
+import { Modal, Upload } from 'antd';
+import { InboxOutlined } from '@ant-design/icons';
+import Select from 'react-select';
+import styles from './chapter.module.scss';
+import { errorToast, successToast } from '../../../contexts/utils/toasts';
+
+function getUniqueListBy(arr, key) {
+ return [...new Map(arr.map((item) => [item[key], item])).values()];
+}
+const categories = [
+ {
+ label: 'Pre-College',
+ value: 'Pre-College',
+ },
+ {
+
+ label: 'Continental',
+ value: 'Continental',
+ },
+ {
+
+ label: 'National',
+ value: 'National',
+ },
+ {
+
+ label: 'University',
+ value: 'University',
+ },
+ {
+
+ label: 'Professional',
+ value: 'Professional',
+ },
+ {
+ label: 'Regional',
+ value: 'Regional',
+ },
+];
+
+const customStyles = {
+ option: (provided, state) => ({
+ ...provided,
+ color: 'white',
+ border: state.isSelected ? '2px solid #6938EF' : state.isFocused ? '2px solid #6938EF' : '2px solid transparent',
+ background: '#1C1D37',
+ borderRadius: '8px',
+ padding: 20,
+ marginTop: 8,
+ width: '100%',
+ cursor: 'pointer',
+ fontWeight: 'bold',
+ ':active': {
+ // ...styles[':active'],
+ background: '#1C1D37',
+ },
+ }),
+ control: () => ({
+ // none of react-select's styles are passed to
+ // width: ,
+ display: 'flex',
+ height: '100%',
+ }),
+ menu: (provided) => ({
+ ...provided,
+ // borderBottom: '1px dotted pink',
+ background: '#1C1D37',
+ padding: 5,
+ border: '1px solid #6938EF',
+ width: 'fit-contnet',
+ textAlign: 'center',
+ // marginLeft: '-30px',
+ }),
+ container: (provided) => ({
+ ...provided,
+ height: '45px',
+ cursor: 'pointer',
+ paddingLeft: '8px',
+ border: '1px solid #6938EF',
+ borderRadius: '120px',
+ marginBottom: '20px',
+ }),
+ multiValueLabel: (provided) => ({
+ ...provided,
+ color: 'white',
+ }),
+ multiValue: (provided) => ({
+ ...provided,
+ border: '1px solid #6938EF',
+ borderRadius: '100px',
+ background: 'transparent',
+ padding: '5px',
+ }),
+ multiValueRemove: (provided) => ({
+ ...provided,
+ color: 'white',
+ }),
+ indicatorSeparator: (provided) => ({
+ ...provided,
+ display: 'none',
+ }),
+ singleValue: (provided) => {
+ const opacity = 1;
+ const color = '#fff';
+ const transition = 'opacity 300ms';
+
+ return {
+ ...provided, opacity, transition, color,
+ };
+ },
+};
+
+const HeroSection = ({
+ location, token, DropdownIndicator, setUpdate, update, data,
+}) => {
+ const { Dragger } = Upload;
+ const [isModalVisible, setIsModalVisible] = useState(false);
+ const [approvedMembers, setApprovedMembers] = useState([]);
+ const [values, setValues] = useState({
+ about: '',
+ title: '',
+ mission: '',
+ type: '',
+ img: '',
+ advisor: '',
+ location: '',
+ });
+
+ // Image input props
+ const newPic = async (pic) => {
+ const src = await new Promise((resolve) => {
+ const reader = new FileReader();
+ reader.onload = (e) => {
+ resolve(e.target.result);
+ };
+ reader.readAsDataURL(pic);
+ });
+ const newValue = values;
+ newValue.img = src;
+ setValues(newValue);
+ };
+
+ const props = {
+ name: 'file',
+ multiple: true,
+ className: styles.imgInput,
+ // listType: 'picture-card',
+ maxCount: 1,
+ accept: 'image/*',
+ action: 'http://localhost:3000/',
+
+ onChange(info) {
+ const { status } = info.file;
+ if (status !== 'uploading') {
+ // console.log(info.file, info.fileList);
+ }
+ if (status === 'done') {
+ newPic(info.file.originFileObj);
+ } else if (status === 'error') {
+ // console.log(`${info.file.name} file upload failed.`);
+ }
+ },
+ onDrop() {
+ // console.log('Dropped files', e.dataTransfer.files);
+ },
+ };
+ const handleJoin = () => {
+ if (token) {
+ axios
+ .post(
+ 'http://localhost:5000/api/v1/joinChapter',
+ {
+ chapterLocation_id: location._id,
+ },
+ {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ },
+ },
+ )
+ .then(() => {
+ successToast('You have successfully joined a chapter');
+ setTimeout(location.reload(true), 2000);
+ })
+ .catch((err) => {
+ try {
+ errorToast(err.response.data.data.message.msg);
+ } catch (error) {
+ errorToast('Network Error');
+ }
+ });
+ } else {
+ errorToast('Please login to continue');
+ }
+ };
+
+ const handleOk = () => {
+ setIsModalVisible(false);
+ };
+
+ const handleCancel = () => {
+ setIsModalVisible(false);
+ };
+ const handelChange = (name, value) => {
+ const newValues = values;
+ newValues[name] = value;
+ setValues(newValues);
+ };
+ useEffect(() => {
+ if (token) {
+ if (location._id) {
+ axios
+ .get(`http://localhost:5000/api/v1/joinChapter/location/${location._id}`, {
+ headers: {
+ 'Content-Type': 'application/json',
+ Authorization: `Bearer ${token}`,
+ },
+ })
+ .then((res) => {
+ const arr = [];
+ res.data.data.forEach((member) => {
+ if (member.user_id) {
+ const newMember = {
+ label: `${member.user_id.firstName} ${member.user_id.lastName}`,
+ value: member.user_id._id,
+ approved: member.approved,
+ };
+ arr.push(newMember);
+ }
+ });
+ // const results = users.filter((element) => element !== null);
+ const unique = getUniqueListBy(arr, 'value');
+ const approved = unique.filter((e) => (
+ e.approved
+ ));
+ setApprovedMembers(approved);
+ })
+ .catch(() => {
+ errorToast('Network Error');
+ });
+ }
+ }
+ }, [token, location]);
+ const handleSubmit = () => {
+ const formData = new FormData();
+ if (values.img) formData.append('LocationLogo', values.img);
+ if (values.about) formData.append('description', values.about);
+ if (values.mission) formData.append('mission', values.mission);
+ if (values.advisor) formData.append('advisor', values.advisor.value);
+ if (values.type) formData.append('chapter_type', values.type.value);
+ if (values.title) formData.append('location', values.title);
+ if (values.location) formData.append('LocationName', values.location);
+ axios
+ .patch(`http://localhost:5000/api/v1/location/${location._id}`, formData, {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ },
+ })
+ .then(() => {
+ setUpdate(!update);
+ successToast('Chapter Updated');
+ })
+ .catch((e) => {
+ console.log(e);
+ errorToast('Something went wrong');
+ });
+ };
+ return (
+
+
+
+
+
handelChange('title', e.target.value)} type="text" />
+
+
handelChange('location', e.target.value)} type="text" />
+
+
+
+
+
+
+
+

+
+
{location?.location}
+
+
+
{location?.LocationName}
+
+
+
+
+
+
+
+ {location.added_by?._id === data?._id &&
setIsModalVisible(true))} className="fas fa-edit" />}
+ {location.advisor && (
+
+ Advisor:
+ {`${location.advisor.firstName} ${location.advisor.lastName}`}
+
+ )}
+
+ Type:
+ {' '}
+ {location?.chapter_type}
+
+
Join Chapter
+
+
+
+
+ );
+};
+
+export default HeroSection;
diff --git a/components/chapter/view/Members.js b/components/chapter/view/Members.js
new file mode 100644
index 00000000..fb02ddb2
--- /dev/null
+++ b/components/chapter/view/Members.js
@@ -0,0 +1,137 @@
+import React, { useEffect, useState } from 'react';
+import axios from 'axios';
+import styles from './chapter.module.scss';
+import { errorToast } from '../../../contexts/utils/toasts';
+
+const Members = ({ token, location, data }) => {
+ const [approvedMembers, setApprovedMembers] = useState([]);
+ const [totalMembers, setTotalMembers] = useState([]);
+ const [update, setUpdate] = useState(false);
+
+ const searchHandler = () => {
+ // const filterLocation = data.filter(
+ // (location) => location.location.toLowerCase().includes(e.target.value.toLowerCase())
+ // || location.LocationName.toLowerCase().includes(e.target.value.toLowerCase())
+ // ,
+ // );
+ // setLocations(filterLocation);
+ };
+ const acceptReq = (id) => {
+ axios
+ .post(`http://localhost:5000/api/v1/joinChapter/accept/${id}`, { location: location._id }, {
+ headers: {
+ 'Content-Type': 'application/json',
+ Authorization: `Bearer ${token}`,
+ },
+ })
+ .then(() => {
+ setUpdate(!update);
+ })
+ .catch(() => {
+ errorToast('Network Error');
+ });
+ };
+ function getUniqueListBy(arr, key) {
+ return [...new Map(arr.map((item) => [item[key], item])).values()];
+ }
+ const dataFormat = (member) => {
+ const date = new Date(member.createdAt);
+ const year = date.getFullYear();
+ const month = date.toLocaleString('default', { month: 'short' });
+ return `Member Since ${month} ${year}`;
+ };
+ useEffect(() => {
+ if (token && location._id) {
+ axios
+ .get(`http://localhost:5000/api/v1/joinChapter/location/${location._id}`, {
+ headers: {
+ 'Content-Type': 'application/json',
+ Authorization: `Bearer ${token}`,
+ },
+ })
+ .then((res) => {
+ const arr = [];
+ res.data.data.forEach((member) => {
+ if (member.user_id) {
+ const newMember = {
+ name: `${member.user_id.firstName} ${member.user_id.lastName}`,
+ id: member.user_id._id,
+ member_id: member._id,
+ role: member.role,
+ approved: member.approved,
+ date: dataFormat(member),
+ facebook: member.user_id.FacebookLink,
+ profilePicture: member.user_id.profilePicture,
+ linkedin: member.user_id.LinkedinLink,
+ };
+ arr.push(newMember);
+ }
+ });
+ // const results = users.filter((element) => element !== null);
+ const unique = getUniqueListBy(arr, '_id');
+ const approved = unique.filter((e) => (
+ e.approved
+ ));
+ setApprovedMembers(approved);
+ setTotalMembers(unique);
+ })
+ .catch(() => {
+ errorToast('Network Error');
+ });
+ } else {
+ errorToast('Please login to continue');
+ }
+ }, [update]);
+ return (
+
+
+
Chapter Members
+
+ Total:
+ {' '}
+ {approvedMembers.length}
+
+
+
+
+
+ {(location?.added_by._id === data?._id
+ ? totalMembers : approvedMembers).map((member) => (
+
+ ))}
+
+
+
+ );
+};
+
+export default Members;
diff --git a/components/chapter/view/Overview.js b/components/chapter/view/Overview.js
new file mode 100644
index 00000000..d0dcbaa8
--- /dev/null
+++ b/components/chapter/view/Overview.js
@@ -0,0 +1,51 @@
+import React from 'react';
+import styles from './chapter.module.scss';
+
+const Overview = ({ location }) => {
+ const dataFormat = (joinDate) => {
+ const date = new Date(joinDate);
+ const year = date.getFullYear();
+ const month = date.toLocaleString('default', { month: 'short' });
+ return `${month} ${year}`;
+ };
+ return (
+
+
+
About Chapter
+
+ {location?.description}
+
+
Mission
+
+ {location?.mission}
+
+
Chapter Officers
+
+
+

+
{`${location.added_by?.firstName} ${location.added_by?.lastName}`}
+
President
+
+ {dataFormat(location.createdAt)}
+ {' '}
+ -
+ {' '}
+ {dataFormat(new Date().toString())}
+
+
+
+
+
+
+ );
+};
+
+export default Overview;
diff --git a/components/chapter/view/Resources.js b/components/chapter/view/Resources.js
new file mode 100644
index 00000000..f284fd5b
--- /dev/null
+++ b/components/chapter/view/Resources.js
@@ -0,0 +1,79 @@
+import React from 'react';
+import styles from './chapter.module.scss';
+
+const Resources = () => {
+ const searchHandler = (e) => {
+ // const filterLocation = data.filter(
+ // (location) => location.location.toLowerCase().includes(e.target.value.toLowerCase())
+ // || location.LocationName.toLowerCase().includes(e.target.value.toLowerCase())
+ // ,
+ // );
+ // setLocations(filterLocation);
+ };
+ return (
+
+
Resource Center
+
+
+
+
+ Chapter Documents
+
+
+ Chapter Constitution
+
+
+ Meetings Minutes
+
+
+ Chapter Documents
+
+
+
+
+

+
+
First MPA Constitution Amendment
+
01 Jan 2017
+
+
+
+

+
+
First MPA Constitution Amendment
+
01 Jan 2017
+
+
+
+

+
+
First MPA Constitution Amendment
+
01 Jan 2017
+
+
+
+

+
+
First MPA Constitution Amendment
+
01 Jan 2017
+
+
+
+

+
+
First MPA Constitution Amendment
+
01 Jan 2017
+
+
+
+
+
+ );
+};
+
+export default Resources;
diff --git a/components/chapter/view/Tabs.js b/components/chapter/view/Tabs.js
new file mode 100644
index 00000000..b15a6202
--- /dev/null
+++ b/components/chapter/view/Tabs.js
@@ -0,0 +1,51 @@
+import React, { useState } from 'react';
+import styles from './chapter.module.scss';
+
+const Tabs = ({ active, setActive }) => {
+ const updateActive = (name) => {
+ const update = {};
+ const stats = Object.keys(active);
+ stats.forEach((stat) => {
+ update[stat] = false;
+ });
+ update[name] = true;
+ setActive(update);
+ };
+ return (
+ <>
+
+
updateActive('overview')} className={active.overview ? styles.active : ''}>
+
+ Overview
+
+
+
+
+
updateActive('events')} className={active.events ? styles.active : ''}>
+
Events
+ {' '}
+
+
+
updateActive('governance')}
+ className={active.governance ? styles.active : ''}
+ >
+
Governance
+
+
+
updateActive('members')} className={active.members ? styles.active : ''}>
+
+
Members
+
+
+
updateActive('resources')} className={active.resources ? styles.active : ''}>
+
Resources
+
+
+
+
+ >
+ );
+};
+
+export default Tabs;
diff --git a/components/chapter/view/chapter.module.scss b/components/chapter/view/chapter.module.scss
new file mode 100644
index 00000000..c9ecd42f
--- /dev/null
+++ b/components/chapter/view/chapter.module.scss
@@ -0,0 +1,774 @@
+// Hero Section
+.HeroContanier {
+ border-radius: 15px;
+ border: 1px solid #6938ef;
+ box-shadow: 0px 32px 41px rgb(0 0 0 / 25%);
+ height: 315px;
+ background-repeat: no-repeat !important;
+ background-size: cover !important;
+ display: flex;
+ color: white;
+ align-items: center;
+ text-align: center;
+ position: relative;
+ > div {
+ height: 100%;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ justify-content: center;
+ }
+ .left {
+ width: 70%;
+ }
+ .right {
+ width: 30%;
+ font-weight: bold;
+ font-size: 30px;
+ text-align: left;
+ i{
+ position: absolute;
+ top: 20px;
+ left: 20px;
+ font-size: 24px;
+ color: #6938ef;
+ cursor: pointer;
+ }
+ a {
+ background: #6938ef;
+ border-radius: 100px;
+ display: block;
+ font-weight: 600;
+ font-size: 18px;
+ text-align: center;
+ color: #ffffff;
+ padding: 18px 0px;
+ width: 70%;
+ margin-top: 10px;
+ }
+ }
+ .title {
+ font-weight: bold;
+ font-size: 48px;
+ letter-spacing: 0.03em;
+ display: flex;
+ text-align: left;
+ img {
+ object-fit: contain;
+ width: 25%;
+ margin-left: 5%;
+ margin-right: 6%;
+ max-height: 5rem;
+ margin: auto 1% auto 5%;
+ }
+ .location {
+ font-size: 24px;
+ letter-spacing: 0.03em;
+ display: flex;
+ margin-top: 10px;
+ i {
+ font-size: 24px;
+ margin-right: 8px;
+ }
+ }
+ }
+ @media screen and (max-width: 992px) {
+ .title {
+ font-size: 26px;
+ .location {
+ font-size: 18px;
+ }
+ }
+ .left{
+ width: 50%;
+ }
+ .right{
+ font-size: 26px;
+ width: 50%;
+ }
+ }
+ @media screen and (max-width: 768px) {
+ .title {
+ font-size: 16px;
+ .location {
+ font-size: 14px;
+ }
+ }
+ .right{
+ font-size: 16px;
+ a{
+ font-size: 14px;
+ }
+ }
+ }
+ }
+ // Tabs
+ .line {
+ height: 4px;
+ width: 100%;
+ background: #6938ef;
+ }
+ .tabs {
+ display: flex;
+ justify-content: space-between;
+ color: rgba(204, 210, 227, 0.6);
+ max-width: 1170px;
+ margin: auto;
+ font-size: 32px;
+ font-weight: 500;
+ div {
+ p {
+ cursor: pointer;
+ padding: 1rem;
+ }
+ div {
+ background: #6938ef;
+ border-radius: 15px 15px 0px 0px;
+ height: 10px;
+ width: 100%;
+ opacity: 0;
+ }
+ }
+ .active {
+ p {
+ color: #33d2ff;
+ padding: 1rem;
+ }
+ div {
+ opacity: 1;
+ }
+ }
+ @media screen and (max-width: 992px) {
+ font-size: 20px;
+ }
+ @media screen and (max-width: 600px) {
+ div {
+ p {
+ padding: 1rem 0 !important;
+ }
+ }
+ }
+ @media screen and (max-width: 480px) {
+ font-size: 14px;
+ }
+
+ }
+ // view components
+ .serchBar {
+ display: grid;
+ grid-template-columns: 70% 28%;
+ grid-gap: 2%;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ }
+ .serchBar div {
+ background: #d9d9d9;
+ border-radius: 37px;
+ }
+
+ .serchBar input {
+ background: url(/assets/images/chapter/search.svg);
+ color: black;
+ padding: 10px 20px 10px 30px;
+ width: 100%;
+ height: 100%;
+ font-weight: 400;
+ font-size: 24px;
+ background-repeat: no-repeat;
+ background-position-x: 97%;
+ background-position-y: 50%;
+ border: none;
+ outline: none;
+ }
+ .serchBar input::placeholder {
+ /* Chrome, Firefox, Opera, Safari 10.1+ */
+ color: rgba(0, 0, 0, 0.66);
+ }
+
+ .serchBar input:-ms-input-placeholder {
+ /* Internet Explorer 10-11 */
+ color: rgba(0, 0, 0, 0.66);
+ }
+
+ .serchBar input::-ms-input-placeholder {
+ /* Microsoft Edge */
+ color: rgba(0, 0, 0, 0.66);
+ }
+ .serchBar > a {
+ font-weight: 600;
+ color: white !important;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 42.3946px;
+ background: #6938ef;
+ font-size: 18px;
+ }
+ .detailsSection{
+ @media screen and (max-width: 576px) {
+ padding: 0 20px;
+ }
+ }
+ .bodyContainer {
+ background: #1c1d37;
+ border: 1px solid #6938ef;
+ box-shadow: 0px 32px 41px rgb(0 0 0 / 25%);
+ border-radius: 15px;
+ margin-top: 2rem;
+ padding: 2rem;
+ color: white;
+ font-family: "Poppins", sans-serif;
+ margin-bottom: 3rem;
+ > div {
+ > h2 {
+ font-size: 24px;
+ color: #ffffff;
+ font-weight: bold;
+ }
+ > P {
+ font-style: normal;
+ font-weight: 400;
+ font-size: 18px;
+ margin-top: 20px;
+ margin-bottom: 40px;
+ }
+ }
+ }
+ .cardContainer {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-gap: 2%;
+ margin-top: 20px;
+ text-align: center;
+ > div {
+ border: 3px solid #6938ef;
+ border-radius: 24px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ img {
+ margin-top: 20px;
+ border-radius: 50%;
+ width: 50%;
+ }
+ h2 {
+ font-weight: 700;
+ font-size: 24px;
+ letter-spacing: 0.03em;
+ color: #ffffff;
+ margin-top: 10px;
+ }
+ h3 {
+ font-style: italic;
+ font-weight: 400;
+ font-size: 18px;
+ letter-spacing: 0.03em;
+ color: rgba(255, 255, 255, 0.84);
+ margin: 10px 0;
+ }
+ p {
+ font-weight: 400;
+ font-size: 18px;
+ letter-spacing: 0.03em;
+ }
+ > div {
+ display: flex;
+ flex-direction: row;
+ margin-top: auto;
+ margin: 10px 0;
+ i {
+ font-size: 21px;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ &:first-child {
+ margin-right: 10px;
+ }
+ &:hover {
+ color: #6938ef;
+ transform: scale(1.1);
+ }
+ }
+ }
+ }
+ @media screen and (max-width: 992px) {
+ grid-template-columns: repeat(3, 1fr);
+ }
+ @media screen and (max-width: 768px) {
+ grid-template-columns: repeat(1, 1fr);
+ }
+ }
+ .titleContainer {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ h2 {
+ font-size: 24px;
+ color: #ffffff;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ }
+ }
+ .approved {
+ height: fit-content;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #16a34a;
+ border-radius: 42.3946px;
+ width: 20%;
+ padding: 8px 0;
+ font-weight: 600;
+ font-size: 14px;
+ }
+ .buttons{
+ display: flex;
+ justify-content: space-evenly;
+ a{
+ font-weight: 600;
+ font-size: 18px;
+ border: 1px solid #6938EF;
+ padding: 12px 2rem;
+ border-radius: 44px;
+ }
+ p{
+ font-weight: 600;
+ font-size: 18px;
+ border: 1px solid #6938EF;
+ background: #6938EF;
+ padding: 12px 2rem;
+ border-radius: 44px;
+ }
+ }
+ .approveBtn{
+ font-weight: 500;
+ background: #16a34a;
+ border-radius: 100px;
+ padding: 4px 10px;
+ margin-top: 4%;
+ margin-right: auto;
+ margin-left: 4%;
+ }
+ .editModel >div{
+ background: #24203B;
+ border-radius: 15px;
+ color: white;
+ // height: 500px;
+ overflow-y: scroll;
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+ &::-webkit-scrollbar-track{
+ background: #20213F;
+ }
+ &::-webkit-scrollbar-thumb{
+ background: #3E385D;
+ }
+
+ .modalBody{
+ display: flex;
+ flex-direction: column;
+
+ height: 100%;
+ label{
+ font-size: 18px;
+ font-weight: 600;
+ margin-bottom: 10px;
+ }
+ >input{
+ background: #24203B;
+ border-radius: 8px;
+ border: 1px solid #6938EF;
+ width: 100%;
+ color: white;
+ padding: 0.6rem 1rem;
+ outline: none;
+ font-size: 18px;
+ font-weight: 500;
+ margin-bottom: 20px;
+ }
+ >textarea{
+ background: #1c1d37;
+ border-radius: 15px;
+ color: white;
+ font-size: 16px;
+ padding: 10px;
+ border: 1px solid #6938EF;
+ margin-bottom: 20px;
+ &:focus{
+ outline: none;
+ border: 1px solid #6938EF;
+ }
+ }
+ }
+ }
+ .imgInput{
+ background: #1c1d37 !important;
+ border: 1px dashed #6938EF !important;
+ border-radius: 15px !important;
+ p{
+ color: white !important;
+ }
+ span{
+ color: #6938EF !important;
+ }
+ }
+ // Overview
+ // .overviewSection {
+ // }
+ // Events
+ .events {
+ > div {
+ margin-bottom: 20px;
+ > h2 {
+ font-size: 24px;
+ color: #ffffff;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ @media screen and (max-width: 768px) {
+ font-size: 20px;
+ }
+ }
+ }
+ .topPartBtns {
+ display: flex;
+ font-size: 18px;
+ color: #ffffff;
+ font-weight: 600;
+ @media screen and (max-width: 768px) {
+ margin-top: 30px;
+ font-size: 16px;
+ }
+ a,
+ p {
+ border: 1px solid #6938ef;
+ box-sizing: border-box;
+ border-radius: 42.3946px;
+ padding: 10px 20px;
+ cursor: pointer;
+ color: #ffffff;
+ transition: background 0.3s ease;
+ &:hover{
+ background: #6938ef;
+ }
+ }
+ p {
+ margin-right: 15px;
+ }
+ }
+ .eventsCard {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ grid-gap: 30px;
+ @media screen and (max-width: 992px) {
+ grid-template-columns: repeat(2, 1fr);
+ }
+ @media screen and (max-width: 768px) {
+ grid-template-columns: repeat(1, 1fr);
+ }
+ > div {
+ border: 1.85449px solid #6938ef;
+ box-shadow: 0px 34.9424px 44.7699px rgb(0 0 0 / 25%);
+ border-radius: 16.3792px;
+ display: flex;
+ flex-direction: column;
+ img {
+ height: 200px;
+ width: 100%;
+ object-fit: cover;
+ border-radius: 16.3792px 16.3792px 0 0;
+ }
+ .detail {
+ padding: 16px;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ > h2 {
+ font-weight: 600;
+ font-size: 22px;
+ margin-bottom: 1rem;
+ }
+ > p {
+ font-weight: 400;
+ font-size: 16px;
+ margin-bottom: 10px;
+ }
+ .date {
+ display: flex;
+ justify-content: space-between;
+ margin-top: auto;
+ div,
+ p {
+ letter-spacing: 0.03em;
+ text-transform: capitalize;
+ color: #949494;
+ }
+ div {
+ color: #fd05b3;
+ }
+ }
+ .btnContainer {
+ margin-top: 20px;
+ font-size: 16px;
+ display: flex;
+ justify-content: space-between;
+ a,
+ p {
+ border: 1px solid #6938ef;
+ box-sizing: border-box;
+ border-radius: 42.3946px;
+ padding: 10px 0px;
+ cursor: pointer;
+ color: #ffffff;
+ min-width: 40%;
+ text-align: center;
+ transition: background 0.3s ease;
+ &:hover{
+ background: #6938ef;
+ }
+ }
+ p {
+ background: #6938ef;
+ }
+ }
+ }
+ }
+ }
+ }
+ .submitBtn{
+ border: 1px solid #6938ef;
+ box-sizing: border-box;
+ border-radius: 42.3946px;
+ padding: 10px 0px;
+ cursor: pointer;
+ color: #ffffff;
+ min-width: 40%;
+ text-align: center;
+ transition: background 0.3s ease;
+ margin-top: 20px;
+
+ &:hover{
+ background: #6938ef;
+ }
+ }
+ // Members
+ .members {
+ > div > h2 {
+ font-size: 24px;
+ color: #ffffff;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ }
+ }
+// resources
+ .resources {
+ .grid {
+ display: grid;
+ grid-template-columns: 30% 68%;
+ grid-gap: 2%;
+ @media screen and (max-width: 768px) {
+ grid-template-columns: 100%;
+ }
+ > div {
+ border: 1px solid #6938ef;
+ filter: drop-shadow(0px 0px 15.3753px rgba(0, 0, 0, 0.25));
+ border-radius: 22.38px;
+ padding: 1rem 0;
+ }
+ .left {
+ font-weight: 600;
+ font-size: 24px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ div {
+ border-radius: 44px;
+ border: 1px solid #6938ef;
+ background: #1c1d37;
+ width: 90%;
+ text-align: center;
+ padding: 1rem;
+ margin: 10px 0;
+ cursor: pointer;
+ }
+ }
+ > div.right {
+ padding: 1rem 2rem;
+ flex-direction: row;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ > div {
+ display: flex;
+ width: 45%;
+ justify-content: space-between;
+ padding: 15px 10px;
+ background: #1c1d37;
+ border: 1.07926px solid #6938ef;
+ box-shadow: 0px 0px 14.7368px rgb(0 0 0 / 10%);
+ border-radius: 12px;
+ cursor: pointer;
+ margin-bottom: 20px;
+ @media screen and (max-width: 768px) {
+ width: 100%;
+ }
+ img {
+ padding: 8px;
+ border-radius: 5px;
+ background: #ffffff;
+ border: 1px solid #6938ef;
+ margin-right: 10px;
+ }
+ h2 {
+ font-weight: 500;
+ font-size: 14px;
+ }
+ p {
+ letter-spacing: 0.03em;
+ color: #949494;
+ font-size: 12px;
+ margin-top: 4px;
+ }
+ }
+ }
+ }
+ }
+ // proposal
+ .proposal {
+ .grid {
+ display: grid;
+ grid-template-columns: 30% 68%;
+ grid-gap: 2%;
+ > div {
+ border: 1px solid #6938ef;
+ filter: drop-shadow(0px 0px 15.3753px rgba(0, 0, 0, 0.25));
+ border-radius: 22.38px;
+ padding: 1rem 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+ .left {
+ font-weight: 600;
+ font-size: 24px;
+ div {
+ border-radius: 44px;
+ border: 1px solid #6938ef;
+ background: #1c1d37;
+ width: 90%;
+ text-align: center;
+ padding: 1rem;
+ margin: 10px 0;
+ cursor: pointer;
+ }
+ }
+ .right > .proposalCard {
+ border: 1.85449px solid #6938ef;
+ box-shadow: 0px 34.9424px 44.7699px rgb(0 0 0 / 25%);
+ border-radius: 16.3792px;
+ width: 90%;
+ padding: 1rem;
+ margin-bottom: 20px;
+ img {
+ background: #ffffff;
+ border-radius: 100px;
+ padding: 10px;
+ height: 70px;
+ }
+ > div {
+ display: flex;
+ justify-content: space-between;
+ }
+ .detail {
+ display: flex;
+ flex-direction: column;
+ h2 {
+ font-weight: 600;
+ font-size: 22px;
+ text-transform: capitalize;
+ color: #ffffff;
+ }
+ p {
+ font-size: 16px;
+ text-align: center;
+ letter-spacing: 0.03em;
+ text-transform: capitalize;
+ color: #949494;
+ margin-top: auto;
+ }
+ }
+ p {
+ margin-top: 15px;
+ font-weight: 400;
+ font-size: 16px;
+ }
+ }
+ }
+ .activeCard{
+ p{
+ color: #6938EF;
+ }
+ path{
+ fill: #6938EF;
+ }
+ }
+ .active {
+ background: #6938ef !important;
+ }
+ }
+ .newProposal{
+ width: 90%;
+ display: flex;
+ flex-direction: column;
+ label{
+ font-size: 20px;
+ font-weight: bold;
+ margin-top: 40px;
+ }
+ input{
+ font-size: 20px;
+ font-weight: 500;
+ background: #24203B;
+ border: 1px solid #6938EF;
+ box-shadow: 1px -1px 5px #A259FF;
+ border-radius: 8px;
+ padding: 16px;
+ margin-top: 16px;
+ &:focus{
+ border: 1px solid #6938EF;
+ outline: none;
+ }
+ }
+ .categoryContainer{
+ display: flex;
+ flex-wrap: wrap;
+ >div{
+ background: #24203B;
+ border: 0.729825px solid #6938EF;
+ box-shadow: 0.729825px -0.729825px 3.64912px #a259ff;
+ border-radius: 5.8386px;
+ padding: 1rem;
+ display: flex;
+ flex-direction: column;
+ width: 130px;
+ align-items: center;
+ margin-right: 20px;
+ margin-top: 20px;
+ cursor: pointer;
+ text-align: center;
+ p{
+ margin-top: 20px;
+ }
+ &:hover{
+ p{
+ color: #6938EF;
+ }
+ path{
+ fill: #6938EF;
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/components/dashboard/CourseCard.js b/components/dashboard/CourseCard.js
index e9df2ae4..b35dbc40 100644
--- a/components/dashboard/CourseCard.js
+++ b/components/dashboard/CourseCard.js
@@ -23,7 +23,7 @@ const CourseCard = ({
diff --git a/components/dashboard/OverviewCareer.js b/components/dashboard/OverviewCareer.js
index c8be63d7..7d0dd2b0 100644
--- a/components/dashboard/OverviewCareer.js
+++ b/components/dashboard/OverviewCareer.js
@@ -159,7 +159,7 @@ const OverviewCareer = ({ token }) => {
No Jobs Available At The Moment
@@ -212,7 +212,7 @@ const OverviewCareer = ({ token }) => {
You haven’t applied for any jobs on MPA yet. You can do that in
diff --git a/components/dashboard/OverviewEvents.js b/components/dashboard/OverviewEvents.js
index 67567763..47ab4219 100644
--- a/components/dashboard/OverviewEvents.js
+++ b/components/dashboard/OverviewEvents.js
@@ -187,7 +187,7 @@ const OverviewEvents = ({ token }) => {
Events