Merge remote-tracking branch 'refs/remotes/origin/main'
This commit is contained in:
@@ -195,12 +195,13 @@ export default function JobsPage({
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Search and Filter Section */}
|
||||
<Card className="bg-white shadow-sm mb-8">
|
||||
{/* Search and Stats Row */}
|
||||
<div className="grid grid-cols-1 lg:grid-cols-4 gap-6 mb-8">
|
||||
{/* Search Bar - Takes 2 columns */}
|
||||
<Card className="bg-white shadow-sm lg:col-span-2">
|
||||
<CardContent className="p-6">
|
||||
<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
|
||||
<div className="md:col-span-2">
|
||||
<div className="relative">
|
||||
<div className="flex flex-col md:flex-row gap-3">
|
||||
<div className="flex-1 relative">
|
||||
<Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
|
||||
<Input
|
||||
placeholder="Search jobs by title, company, or skills..."
|
||||
@@ -209,8 +210,7 @@ export default function JobsPage({
|
||||
onChange={(e) => handleSearch(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="w-40">
|
||||
<Select value={locationFilter} onValueChange={handleLocationFilter}>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Location" />
|
||||
@@ -226,7 +226,7 @@ export default function JobsPage({
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
<div>
|
||||
<div className="w-40">
|
||||
<Select value={jobTypeFilter} onValueChange={handleJobTypeFilter}>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Job Type" />
|
||||
@@ -257,8 +257,7 @@ export default function JobsPage({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
{/* Stats */}
|
||||
<div className="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8">
|
||||
{/* Total Jobs Stat - Takes 1 column */}
|
||||
<Card className="bg-white shadow-sm">
|
||||
<CardContent className="p-6">
|
||||
<div className="flex items-center justify-between">
|
||||
@@ -271,6 +270,7 @@ export default function JobsPage({
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
{/* Active Companies Stat - Takes 1 column */}
|
||||
<Card className="bg-white shadow-sm">
|
||||
<CardContent className="p-6">
|
||||
<div className="flex items-center justify-between">
|
||||
@@ -284,32 +284,6 @@ export default function JobsPage({
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="bg-white shadow-sm">
|
||||
<CardContent className="p-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<p className="text-sm font-medium text-gray-600">Remote Jobs</p>
|
||||
<p className="text-3xl font-bold text-gray-800">
|
||||
{allJobs.filter((job) => job.location.toLowerCase().includes('remote')).length}
|
||||
</p>
|
||||
</div>
|
||||
<Users className="w-8 h-8 text-purple-600" />
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="bg-white shadow-sm">
|
||||
<CardContent className="p-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<p className="text-sm font-medium text-gray-600">Avg Salary</p>
|
||||
<p className="text-3xl font-bold text-gray-800">$28/hr</p>
|
||||
</div>
|
||||
<DollarSign className="w-8 h-8 text-orange-600" />
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
{/* Tabs */}
|
||||
|
||||
@@ -21,6 +21,7 @@ import {
|
||||
BookOpen
|
||||
} from 'lucide-react';
|
||||
import { signOutAction } from './actions';
|
||||
import Footer from '@/components/footer';
|
||||
|
||||
const navLinks = [
|
||||
{
|
||||
@@ -75,7 +76,7 @@ export default function MainLayout({ children }: { children: React.ReactNode })
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-gradient-to-br from-slate-50 via-blue-50 to-indigo-100 font-sans">
|
||||
<div className="min-h-screen bg-gradient-to-br from-slate-50 via-blue-50 to-indigo-100 font-sans flex flex-col">
|
||||
{/* Modern Student Navbar */}
|
||||
<header className={`sticky top-0 z-50 w-full transition-all duration-300 ${
|
||||
isScrolled
|
||||
@@ -290,10 +291,13 @@ export default function MainLayout({ children }: { children: React.ReactNode })
|
||||
</header>
|
||||
|
||||
{/* Main Content */}
|
||||
<main className="min-h-screen">
|
||||
<main className="flex-1">
|
||||
{children}
|
||||
</main>
|
||||
|
||||
{/* Footer */}
|
||||
<Footer />
|
||||
|
||||
{/* Click outside to close dropdowns */}
|
||||
{isProfileDropdownOpen && (
|
||||
<div
|
||||
|
||||
23
apps/student/components/footer.tsx
Normal file
23
apps/student/components/footer.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
export default function Footer() {
|
||||
return (
|
||||
<footer className="bg-white border-t border-gray-200 py-8 mt-auto">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center">
|
||||
{/* Main branding */}
|
||||
<p className="text-gray-600 text-sm font-medium mb-2">
|
||||
Developed and maintained by SwDC KJSSE
|
||||
</p>
|
||||
|
||||
{/* Developer names */}
|
||||
<div className="flex flex-wrap justify-center items-center gap-2 text-xs text-gray-500">
|
||||
<span>Om Dwivedi</span>
|
||||
<span className="text-gray-300">•</span>
|
||||
<span>Anushrut Pandit</span>
|
||||
<span className="text-gray-300">•</span>
|
||||
<span>Om Lanke</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user