diff --git a/package-lock.json b/package-lock.json index 7e2b0e72..c5098011 100644 --- a/package-lock.json +++ b/package-lock.json @@ -119,7 +119,6 @@ "version": "7.24.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.6", @@ -676,7 +675,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "peer": true, "dependencies": { "@emotion/memoize": "^0.8.1" } @@ -690,7 +688,6 @@ "version": "11.11.4", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", @@ -731,7 +728,6 @@ "version": "11.11.5", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", @@ -1274,7 +1270,6 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", "hasInstallScript": true, - "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.5.2" }, @@ -2118,7 +2113,6 @@ "version": "5.15.20", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.20.tgz", "integrity": "sha512-tVq3l4qoXx/NxUgIx/x3lZiPn/5xDbdTE8VrLczNpfblLYZzlrbxA7kb9mI8NoBF6+w9WE9IrxWnKK5KlPI2bg==", - "peer": true, "dependencies": { "@babel/runtime": "^7.23.9", "@mui/base": "5.0.0-beta.40", @@ -3144,7 +3138,6 @@ "version": "18.3.3", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -3319,7 +3312,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3922,8 +3914,7 @@ "node_modules/blurhash": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.5.tgz", - "integrity": "sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==", - "peer": true + "integrity": "sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==" }, "node_modules/boxen": { "version": "7.1.1", @@ -4064,7 +4055,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -4714,8 +4704,7 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "peer": true + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/data-view-buffer": { "version": "1.0.1", @@ -5311,7 +5300,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -10970,7 +10958,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -11072,7 +11059,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -11293,7 +11279,6 @@ "version": "6.23.1", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", - "peer": true, "dependencies": { "@remix-run/router": "1.16.1", "react-router": "6.23.1" @@ -11928,7 +11913,6 @@ "version": "1.77.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz", "integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==", - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -13043,7 +13027,6 @@ "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", diff --git a/src/pages/Team/Team.jsx b/src/pages/Team/Team.jsx index c8eb0ff7..796677d8 100644 --- a/src/pages/Team/Team.jsx +++ b/src/pages/Team/Team.jsx @@ -5,12 +5,9 @@ import styles from "./styles/Team.module.scss"; import { TeamCard } from "../../components"; import { FaRegArrowAltCircleRight } from "react-icons/fa"; import useWindowWidth from "../../utils/hooks/useWindowWidth"; -import MemberData from "../../data/Team.json"; -import AccessTypes from "../../data/Access.json"; import { ComponentLoading } from "../../microInteraction"; import { ChatBot } from "../../features"; - const Team = () => { useEffect(() => { window.scrollTo(0, 0); @@ -31,33 +28,24 @@ const Team = () => { const validMembers = response.data.data.filter( (member) => member.name !== null ); + const sortedMembers = validMembers.sort((a, b) => { - if (b.year !== a.year) { - return b.year - a.year; - } + if (b.year !== a.year) return b.year - a.year; return a.name.localeCompare(b.name); }); + setTeamMembers(sortedMembers); } else { - console.error("Error fetching team members:", response.data.message); setError({ message: "Sorry for the inconvenience, we are having issues fetching our Team Members", }); } } catch (error) { - console.error("Error fetching team members:", error); setError({ message: "Sorry for the inconvenience, we are having issues fetching our Team Members", }); - // const testMembers = MemberData.sort((a, b) => { - // if (b.year !== a.year) { - // return b.year - a.year; - // } - // return a.name.localeCompare(b.name); - // }); - // setTeamMembers(testMembers); } finally { setIsLoading(false); } @@ -78,24 +66,12 @@ const Team = () => { message: "Sorry for the inconvenience, we are having issues fetching our Team Members", }); - console.error("Error fetching Access Types:", response.data.message); - // const testAccess = AccessTypes.data; - // const filteredAccess = testAccess.filter( - // (accessType) => !["ADMIN", "USER", "ALUMNI"].includes(accessType) - // ); - // setAccess(filteredAccess); } } catch (error) { setError({ message: "Sorry for the inconvenience, we are having issues fetching our Team Members", }); - console.error("Error fetching Access Types:", error); - // const testAccess = AccessTypes.data; - // const filteredAccess = testAccess.filter( - // (accessType) => !["ADMIN", "USER", "ALUMNI"].includes(accessType) - // ); - // setAccess(filteredAccess); } }; @@ -103,7 +79,7 @@ const Team = () => { fetchTeamMembers(); }, []); - // Define the director access codes in the desired order + const boardAccessCodes = [ "PRESIDENT", "VICEPRESIDENT", @@ -121,7 +97,6 @@ const Team = () => { "DEPUTY_DIRECTOR_HUMAN_RESOURCE", ]; - // Function to extract team name from SENIOR_EXECUTIVE access codes const extractTeamFromAccess = (access) => { if (access.startsWith("SENIOR_EXECUTIVE_")) { return access.replace("SENIOR_EXECUTIVE_", ""); @@ -129,7 +104,6 @@ const Team = () => { return access; }; - // Function to get display role name const getDisplayRole = (access) => { const teamCode = extractTeamFromAccess(access); let role = teamCode @@ -138,8 +112,7 @@ const Team = () => { (word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase() ) .join(" "); - - // Ensure consistent capitalization for role names + switch (role.toLowerCase()) { case "pr and finance": role = "PR And Finance"; @@ -147,33 +120,26 @@ const Team = () => { case "human resource": role = "Human Resource"; break; - // Add other cases if needed for consistent capitalization } return role; }; - // Separate directors from other members const directorsAndAbove = teamMembers .filter((member) => boardAccessCodes.includes(member.access)) - .sort((a, b) => { - const aIndex = boardAccessCodes.indexOf(a.access); - const bIndex = boardAccessCodes.indexOf(b.access); - - return aIndex - bIndex; // Sort by access code order - - // return a.name.localeCompare(b.name); // Sort alphabetically within the same role - }); + .sort( + (a, b) => + boardAccessCodes.indexOf(a.access) - boardAccessCodes.indexOf(b.access) + ); const otherMembers = teamMembers.filter( (member) => !boardAccessCodes.includes(member.access) ); - // Create a role map for non-director roles const roleMap = access.reduce((map, code) => { if (!boardAccessCodes.includes(code)) { const displayRole = getDisplayRole(code); const teamCode = extractTeamFromAccess(code); - + if (!map[displayRole]) { map[displayRole] = []; } @@ -184,26 +150,20 @@ const Team = () => { const teamByRole = Object.keys(roleMap) .map((role) => { - const members = otherMembers.filter((member) => + const members = otherMembers.filter((member) => roleMap[role].includes(member.access) ); - // Sort members: Senior Executives first, then others - const seniorExecutives = members.filter((member) => - member.access.startsWith("SENIOR_EXECUTIVE_") || - member.extra?.designation === "Senior Executive" + const seniorExecutives = members.filter((member) => + member.access.startsWith("SENIOR_EXECUTIVE_") ); - const otherMembersWithoutSenior = members.filter((member) => - !member.access.startsWith("SENIOR_EXECUTIVE_") && - member.extra?.designation !== "Senior Executive" + const others = members.filter( + (member) => !member.access.startsWith("SENIOR_EXECUTIVE_") ); - return { - role, - members: [...seniorExecutives, ...otherMembersWithoutSenior], - }; + return { role, members: [...seniorExecutives, ...others] }; }) - .filter((roleGroup) => roleGroup.members.length > 0) + .filter((group) => group.members.length > 0) .sort((a, b) => { const order = [ "Technical", @@ -216,35 +176,27 @@ const Team = () => { return order.indexOf(a.role) - order.indexOf(b.role); }); - const TeamSection = ({ title, members, isDirector }) => { + const TeamSection = ({ title, members }) => { const membersPerRow = windowWidth < 500 ? 2 : 4; - const remainderMembersCount = members.length % membersPerRow; - const lastRowMembers = - remainderMembersCount > 0 ? members.slice(-remainderMembersCount) : []; - const otherMembers = - remainderMembersCount > 0 - ? members.slice(0, -remainderMembersCount) - : members; + const remainder = members.length % membersPerRow; + + const lastRow = remainder ? members.slice(-remainder) : []; + const mainRows = remainder ? members.slice(0, -remainder) : members; + return ( -
We are a tight-knit community of passionate people devoted to bringing - about vibrant and awe-inspiring changes in the field of - Entrepreneurship. The pillars of our crew are the Marketing group, the - Creative group, the Technical group, and the Operations group. -
-
- DR. VISHAL PRADHAN
-FACULTY IN CHARGE
- - {/*- Dr. Vishal Pradhan is an exceptional academician and researcher at KIIT, - known for his clarity of thought, deep subject expertise, and commitment - to student success. His ability to connect advanced concepts with real-world - applications makes him a truly inspiring educator. -
-- "As FIC of FED, my vision is to ignite curiosity, nurture confidence, - and inspire students to rise beyond limits—so they walk into KIIT as - learners and grow into innovators who shape the world." --- Dr. Vishal Pradhan + vibrant and awe-inspiring changes in the field of Entrepreneurship.
+ DR. VISHAL PRADHAN
+FACULTY IN CHARGE
+ ++ "As FIC of FED, my vision is to ignite curiosity, nurture + confidence, and inspire students to rise beyond limits—so + they walk into KIIT as learners and grow into innovators who + shape the world." +
+