From 8d21be670a7472ce8445079597c447539bafa2a5 Mon Sep 17 00:00:00 2001 From: Amudieshwar A G Date: Thu, 23 Jul 2026 14:51:08 +0530 Subject: [PATCH] chore(pom): set Java version to 17 for local compatibility --- backend/pom.xml | 2 +- src/constants/index.ts | 6 +++--- src/pages/Campus/Campus.tsx | 15 ++++++++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/backend/pom.xml b/backend/pom.xml index 1576d4b..9995b8f 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -27,7 +27,7 @@ - 21 + 17 diff --git a/src/constants/index.ts b/src/constants/index.ts index eb3d9d1..29b6017 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -44,7 +44,7 @@ export const FEATURES: Feature[] = [ icon: 'Map', title: 'Campus Map', description: 'Explore RIT campus interactively – find departments, labs, library, canteen, and facilities.', - path: '/campus', + path: '/campus?tab=map', color: '#10B981', bgColor: '#ECFDF5', }, @@ -53,7 +53,7 @@ export const FEATURES: Feature[] = [ icon: 'Bus', title: 'Bus Routes', description: 'View all campus bus routes, timings, and pickup locations at a glance.', - path: '/campus', + path: '/campus?tab=bus', color: '#3B82F6', bgColor: '#EFF6FF', }, @@ -62,7 +62,7 @@ export const FEATURES: Feature[] = [ icon: 'UserCheck', title: 'Faculty Directory', description: 'Find faculty contact details, department, designation, and office hours.', - path: '/campus', + path: '/campus?tab=faculty', color: '#EC4899', bgColor: '#FDF2F8', }, diff --git a/src/pages/Campus/Campus.tsx b/src/pages/Campus/Campus.tsx index db2c0d6..53a60a1 100644 --- a/src/pages/Campus/Campus.tsx +++ b/src/pages/Campus/Campus.tsx @@ -7,12 +7,17 @@ import FacultyCard from '@/components/FacultyCard/FacultyCard'; import { StaggerContainer, StaggerItem } from '@/components/AnimatedContainer/AnimatedContainer'; import { FACULTY_DATA, CAMPUS_LOCATIONS, DEPARTMENTS } from '@/constants'; import * as LucideIcons from 'lucide-react'; +import { useLocation } from 'react-router-dom'; import type { BusRoute } from '@/types'; type Tab = 'map' | 'bus' | 'faculty'; export default function Campus() { - const [activeTab, setActiveTab] = useState('map'); + const location = useLocation(); + const queryTab = new URLSearchParams(location.search).get('tab') as Tab; + const [activeTab, setActiveTab] = useState( + queryTab === 'map' || queryTab === 'bus' || queryTab === 'faculty' ? queryTab : 'map' + ); const [searchFaculty, setSearchFaculty] = useState(''); const [selectedDept, setSelectedDept] = useState('All Departments'); const [sortBy, setSortBy] = useState('Name A-Z'); @@ -20,6 +25,14 @@ export default function Campus() { const [busRoutes, setBusRoutes] = useState([]); const [loadingBus, setLoadingBus] = useState(true); + // Sync tab state when URL query parameter changes + useEffect(() => { + const qTab = new URLSearchParams(location.search).get('tab') as Tab; + if (qTab === 'map' || qTab === 'bus' || qTab === 'faculty') { + setActiveTab(qTab); + } + }, [location.search]); + useEffect(() => { if (activeTab === 'bus' && busRoutes.length === 0) { setLoadingBus(true);