Initial commit of project without large files

This commit is contained in:
2025-12-29 15:45:02 +05:30
parent 82ad17a88a
commit 2a58e4af62
79 changed files with 26524 additions and 0 deletions

194
src/App.js Normal file
View File

@@ -0,0 +1,194 @@
// src/App.js
import React, { useEffect } from 'react';
import './index.css';
import { Routes, Route, useLocation } from 'react-router-dom';
import Header from './components/Header';
import Footer from './components/Footer';
import Home from './pages/Home';
import AboutUs from './pages/AboutUs';
import Careers from './pages/Careers';
import Office from './pages/Office';
import ContactUs from './pages/ContactUs';
import Gallery from './pages/Gallery';
import Projects from './pages/Projects';
import AddProjects from './pages/AddProjects';
import GalleryAdmin from './pages/GalleryAdmin';
import BlogList from './pages/BlogList';
import BlogDetail from './pages/BlogDetail';
import JobApplicationForm from './pages/JobApplicationForm';
// Admin
import ProtectedRoute from './components/ProtectedRoute';
import AdminLogin from './pages/AdminLogin';
import AdminLayout from './components/AdminLayout';
import HRAdmin from './pages/HRAdmin';
import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
// ScrollToTop component
const ScrollToTop = () => {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
};
const App = () => {
return (
<>
<ScrollToTop /> {/* ensures scroll starts at top on route change */}
<Routes>
{/* Admin Login */}
<Route path="/admin-login" element={<AdminLogin />} />
{/* Protected Admin Routes with Layout */}
<Route
path="/admin"
element={
<ProtectedRoute>
<AdminLayout />
</ProtectedRoute>
}
>
<Route path="projects" element={<AddProjects />} />
<Route path="gallery" element={<GalleryAdmin />} />
<Route path="hr" element={<HRAdmin />} />
</Route>
{/* Public Routes */}
<Route
path="/"
element={
<>
<Header />
<Home />
<Footer />
</>
}
/>
<Route
path="/job-application"
element={
<>
<Header />
<JobApplicationForm />
<Footer />
</>
}
/>
<Route
path="/about-us"
element={
<>
<Header />
<AboutUs />
<Footer />
</>
}
/>
<Route
path="/careers"
element={
<>
<Header />
<Careers />
<Footer />
</>
}
/>
<Route
path="/careers"
element={
<>
<Header />
<Careers />
<Footer />
</>
}
/>
<Route
path="/office"
element={
<>
<Header />
<Office />
<Footer />
</>
}
/>
<Route
path="/contact-us"
element={
<>
<Header />
<ContactUs />
<Footer />
</>
}
/>
<Route
path="/gallery"
element={
<>
<Header />
<Gallery />
<Footer />
</>
}
/>
<Route
path="/projects"
element={
<>
<Header />
<Projects />
<Footer />
</>
}
/>
<Route
path="/blog"
element={
<>
<Header />
<BlogList />
<Footer />
</>
}
/>
<Route
path="/blog/:slug"
element={
<>
<Header />
<BlogDetail />
<Footer />
</>
}
/>
{/* Fallback Route */}
<Route
path="*"
element={
<>
<Header />
<Home />
<Footer />
</>
}
/>
</Routes>
<ToastContainer />
</>
);
};
export default App;