From e59e63a21e8b911cbf9a499f3cb589facb2eabb6 Mon Sep 17 00:00:00 2001 From: "Kemas M. Aryadary Rasyad" <112590882+aryadary0706@users.noreply.github.com> Date: Fri, 5 Jun 2026 14:33:03 +0700 Subject: [PATCH] feat: Refactor mentor components and implement project management features - Removed unused imports and interfaces in HomeProjectList component. - Added ArrowDownNarrowWide icon to ProjectTimeline component for visual enhancement. - Updated layout imports to reflect new component structure. - Created BaseProjectsPage for mentor to manage projects with navigation. - Introduced MentorCertificatePage as a placeholder for future certificate functionality. - Deleted obsolete HomeMentorPage and replaced it with HomePage for mentor dashboard. - Added InternsPage and updated MentorInternPage for better intern management. - Implemented ProjectForumTab and ProjectsInternTab for project details and intern listings. - Developed TaskTab for task management within projects. - Created SidebarMentor for navigation in mentor dashboard. - Enhanced login functionality with user role-based navigation. - Updated mockData to include task submission counts and certificate data structure. - Added new assets for certificate representation. --- src/App.tsx | 41 ++- .../Footer-Internify.tsx} | 24 +- src/Layout/Navbar.tsx | 10 + src/Layout/SidebarAdmin.tsx | 314 +++++------------- src/Pages/internify/FAQpage.tsx | 69 ++++ src/Pages/internify/NotificationList.tsx | 169 ++++++++++ src/Pages/internify/SettingsPage.tsx | 140 ++++++++ .../intern/{ProjectForum.tsx => ForumTab.tsx} | 0 src/Pages/internify/intern/HomeInternPage.tsx | 2 +- ...ectParticipants.tsx => ParticipantTab.tsx} | 0 .../internify/intern/ProjectDetailPage.tsx | 4 +- .../internify/intern/SertificatePage.tsx | 29 +- .../intern/components/CertificateAvailabe.tsx | 142 ++++++++ .../components/CertificateNotAvailable.tsx | 43 +++ .../intern/components/HomeCalendar.tsx | 2 +- .../intern/components/HomeProjectList.tsx | 9 - .../intern/components/ProjectTimeline.tsx | 4 +- src/Pages/internify/layout.tsx | 4 +- .../internify/mentor/BaseProjectsPage.tsx | 51 +++ ...ertificatePage.tsx => CertificatePage.tsx} | 0 src/Pages/internify/mentor/HomeMentorPage.tsx | 11 - src/Pages/internify/mentor/HomePage.tsx | 24 ++ src/Pages/internify/mentor/InternsPage.tsx | 5 + .../internify/mentor/MentorDetailProject.tsx | 11 - .../internify/mentor/MentorInternPage.tsx | 11 - .../internify/mentor/MentorProjectsPage.tsx | 11 - .../internify/mentor/ProjectForumTab.tsx | 26 ++ .../internify/mentor/ProjectsInternTab.tsx | 45 +++ src/Pages/internify/mentor/ProjectsPage.tsx | 83 +++++ src/Pages/internify/mentor/TaskTab.tsx | 79 +++++ .../{ => mentor/components}/Header.tsx | 2 +- .../mentor/components/HomeMentorProject.tsx | 39 +++ .../mentor/components/MentorProjectCard.tsx | 63 ++++ .../mentor/components/MentorTaskCard.tsx | 34 ++ .../mentor/{ => components}/SidebarMentor.tsx | 0 src/Pages/internify/page.tsx | 170 ++++++++++ src/assets/certificate.png | Bin 0 -> 37274 bytes src/lib/mockData.ts | 68 +++- 38 files changed, 1408 insertions(+), 331 deletions(-) rename src/{Pages/internify/intern/components/FooterIntern.tsx => Layout/Footer-Internify.tsx} (65%) create mode 100644 src/Pages/internify/FAQpage.tsx create mode 100644 src/Pages/internify/NotificationList.tsx create mode 100644 src/Pages/internify/SettingsPage.tsx rename src/Pages/internify/intern/{ProjectForum.tsx => ForumTab.tsx} (100%) rename src/Pages/internify/intern/{ProjectParticipants.tsx => ParticipantTab.tsx} (100%) create mode 100644 src/Pages/internify/intern/components/CertificateAvailabe.tsx create mode 100644 src/Pages/internify/intern/components/CertificateNotAvailable.tsx create mode 100644 src/Pages/internify/mentor/BaseProjectsPage.tsx rename src/Pages/internify/mentor/{MentorCertificatePage.tsx => CertificatePage.tsx} (100%) delete mode 100644 src/Pages/internify/mentor/HomeMentorPage.tsx create mode 100644 src/Pages/internify/mentor/HomePage.tsx create mode 100644 src/Pages/internify/mentor/InternsPage.tsx delete mode 100644 src/Pages/internify/mentor/MentorDetailProject.tsx delete mode 100644 src/Pages/internify/mentor/MentorInternPage.tsx delete mode 100644 src/Pages/internify/mentor/MentorProjectsPage.tsx create mode 100644 src/Pages/internify/mentor/ProjectForumTab.tsx create mode 100644 src/Pages/internify/mentor/ProjectsInternTab.tsx create mode 100644 src/Pages/internify/mentor/ProjectsPage.tsx create mode 100644 src/Pages/internify/mentor/TaskTab.tsx rename src/Pages/internify/{ => mentor/components}/Header.tsx (91%) create mode 100644 src/Pages/internify/mentor/components/HomeMentorProject.tsx create mode 100644 src/Pages/internify/mentor/components/MentorProjectCard.tsx create mode 100644 src/Pages/internify/mentor/components/MentorTaskCard.tsx rename src/Pages/internify/mentor/{ => components}/SidebarMentor.tsx (100%) create mode 100644 src/Pages/internify/page.tsx create mode 100644 src/assets/certificate.png diff --git a/src/App.tsx b/src/App.tsx index 765a019..6990a87 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -29,15 +29,19 @@ import EditFaq from "./Pages/EditFAQ"; import EditFeedback from "./Pages/EditFeedback"; import EditLowongan from "./Pages/EditLowongan"; import HomeInternPage from "./Pages/internify/intern/HomeInternPage"; -import {InternLayout, MentorLayout} from "./Pages/internify/layout"; +import { InternLayout, MentorLayout } from "./Pages/internify/layout"; import ProjectsPage from "./Pages/internify/intern/ProjectsPage"; import SertificatePage from "./Pages/internify/intern/SertificatePage"; import ProjectDetailPage from "./Pages/internify/intern/ProjectDetailPage"; -import HomeMentorPage from "./Pages/internify/mentor/HomeMentorPage"; -import MentorProjectsPage from "./Pages/internify/mentor/MentorProjectsPage"; -import MentorCertificatePage from "./Pages/internify/mentor/MentorCertificatePage"; -import MentorInternPage from "./Pages/internify/mentor/MentorInternPage"; -import MentorDetailProject from "./Pages/internify/mentor/MentorDetailProject"; +import HomeMentorPage from "./Pages/internify/mentor/HomePage"; +import MentorProjectsPage from "./Pages/internify/mentor/BaseProjectsPage"; +import MentorCertificatePage from "./Pages/internify/mentor/CertificatePage"; +import MentorInternPage from "./Pages/internify/mentor/InternsPage"; +import MentorDetailProject from "./Pages/internify/mentor/ProjectsPage"; +import InternifyLogin from "./Pages/internify/page" +import FAQPage from "./Pages/internify/FAQpage"; +import NotificationList from "./Pages/internify/NotificationList"; +import SettingsContent from "./Pages/internify/SettingsPage"; function App() { return ( @@ -62,7 +66,7 @@ function App() { } /> } /> } /> - }/> + } /> } /> } /> } /> @@ -77,21 +81,28 @@ function App() { + } /> {/* // Endpoints for intern-specific pages */} }> } /> } /> } /> - }/> + } /> + } /> + } /> + } /> - }> - }/> - } /> - } /> - } /> - }/> - + }> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + ); diff --git a/src/Pages/internify/intern/components/FooterIntern.tsx b/src/Layout/Footer-Internify.tsx similarity index 65% rename from src/Pages/internify/intern/components/FooterIntern.tsx rename to src/Layout/Footer-Internify.tsx index 2c40392..0248862 100644 --- a/src/Pages/internify/intern/components/FooterIntern.tsx +++ b/src/Layout/Footer-Internify.tsx @@ -1,5 +1,6 @@ import { Briefcase, Globe, Users } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; +import { FaInstagram, FaLinkedin, FaRegEnvelope } from "react-icons/fa"; const footerLinks = { Internship: [ @@ -16,9 +17,9 @@ const footerLinks = { }; const socials = [ - { label: "Website", icon: Globe, href: "https://placeholder.com" }, - { label: "Team", icon: Users, href: "https://placeholder.com" }, - { label: "Work", icon: Briefcase, href: "https://placeholder.com" }, + { label: "Instagram", icon: FaInstagram, href: "https://placeholder.com" }, + { label: "LinkedIn", icon: FaLinkedin, href: "https://placeholder.com" }, + { label: "Email", icon: FaRegEnvelope, href: "https://placeholder.com" }, ]; @@ -26,13 +27,12 @@ export function FooterIntern() { const navigate = useNavigate(); return ( -