diff --git a/src/components/ResumeBuilder/ResumeBuilder.jsx b/src/components/ResumeBuilder/ResumeBuilder.jsx
index 34c416a7..3ad1527c 100644
--- a/src/components/ResumeBuilder/ResumeBuilder.jsx
+++ b/src/components/ResumeBuilder/ResumeBuilder.jsx
@@ -1,7 +1,8 @@
'use client';
-import { useState } from 'react';
+import { useState, useEffect } from 'react';
import { FaUser, FaBriefcase, FaCode, FaBook, FaGraduationCap, FaUsers, FaAward, FaFileAlt } from 'react-icons/fa';
+import { Menu as MenuIcon } from 'lucide-react';
import Sidebar from './Sidebar';
import BasicInfo from './Sections/BasicInfo';
@@ -28,6 +29,22 @@ const sections = [
function ResumeBuilder() {
const [activeSection, setActiveSection] = useState('basic-info');
+ const [isMobileView, setIsMobileView] = useState(false);
+ const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
+
+ useEffect(() => {
+ const checkMobile = () => {
+ const mobile = window.innerWidth < 768;
+ setIsMobileView(mobile);
+ if (!mobile) {
+ setMobileMenuOpen(false);
+ }
+ };
+
+ checkMobile();
+ window.addEventListener('resize', checkMobile);
+ return () => window.removeEventListener('resize', checkMobile);
+ }, []);
const getStepStatus = (sectionId) => {
const currentIndex = sections.findIndex((section) => section.id === activeSection);
@@ -35,7 +52,7 @@ function ResumeBuilder() {
if (sectionIndex < currentIndex) return 'completed';
if (sectionIndex === currentIndex) return 'active';
- return 'pending';
+ return 'upcoming';
};
const renderSection = () => {
@@ -65,11 +82,27 @@ function ResumeBuilder() {
return (
+ {isMobileView && (
+
+ )}
{renderSection()}
diff --git a/src/components/ResumeBuilder/Sidebar.jsx b/src/components/ResumeBuilder/Sidebar.jsx
index 7fee521d..72baaca8 100644
--- a/src/components/ResumeBuilder/Sidebar.jsx
+++ b/src/components/ResumeBuilder/Sidebar.jsx
@@ -1,173 +1,210 @@
'use client';
-import { useState } from 'react';
+import { useState, useEffect } from 'react';
-import { Check, ChevronRight, ChevronLeft, ChevronDown } from 'lucide-react';
+import { Check, ChevronRight, ChevronLeft, Menu, X } from 'lucide-react';
-function Sidebar({ sections, activeSection, setActiveSection, getStepStatus }) {
- const [collapsed, setCollapsed] = useState(false);
+function Sidebar({
+ sections,
+ activeSection,
+ setActiveSection,
+ getStepStatus,
+ isMobileView,
+ mobileMenuOpen,
+ setMobileMenuOpen,
+}) {
+ const [desktopCollapsed, setDesktopCollapsed] = useState(false);
- return (
-
-
-
+ const handleSectionClick = (sectionId) => {
+ setActiveSection(sectionId);
+ if (isMobileView) {
+ setMobileMenuOpen(false);
+ }
+ };
- {!collapsed && (
-
-
Resume Builder
-
Build your professional resume
-
- )}
-