feat(student): added footer and changed css in job client
This commit is contained in:
@@ -195,12 +195,13 @@ export default function JobsPage({
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Search and Filter Section */}
|
{/* Search and Stats Row */}
|
||||||
<Card className="bg-white shadow-sm mb-8">
|
<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">
|
<CardContent className="p-6">
|
||||||
<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
|
<div className="flex flex-col md:flex-row gap-3">
|
||||||
<div className="md:col-span-2">
|
<div className="flex-1 relative">
|
||||||
<div className="relative">
|
|
||||||
<Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
|
<Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
|
||||||
<Input
|
<Input
|
||||||
placeholder="Search jobs by title, company, or skills..."
|
placeholder="Search jobs by title, company, or skills..."
|
||||||
@@ -209,8 +210,7 @@ export default function JobsPage({
|
|||||||
onChange={(e) => handleSearch(e.target.value)}
|
onChange={(e) => handleSearch(e.target.value)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div className="w-40">
|
||||||
<div>
|
|
||||||
<Select value={locationFilter} onValueChange={handleLocationFilter}>
|
<Select value={locationFilter} onValueChange={handleLocationFilter}>
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Location" />
|
<SelectValue placeholder="Location" />
|
||||||
@@ -226,7 +226,7 @@ export default function JobsPage({
|
|||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div className="w-40">
|
||||||
<Select value={jobTypeFilter} onValueChange={handleJobTypeFilter}>
|
<Select value={jobTypeFilter} onValueChange={handleJobTypeFilter}>
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Job Type" />
|
<SelectValue placeholder="Job Type" />
|
||||||
@@ -257,8 +257,7 @@ export default function JobsPage({
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
{/* Stats */}
|
{/* Total Jobs Stat - Takes 1 column */}
|
||||||
<div className="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8">
|
|
||||||
<Card className="bg-white shadow-sm">
|
<Card className="bg-white shadow-sm">
|
||||||
<CardContent className="p-6">
|
<CardContent className="p-6">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
@@ -271,6 +270,7 @@ export default function JobsPage({
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
{/* Active Companies Stat - Takes 1 column */}
|
||||||
<Card className="bg-white shadow-sm">
|
<Card className="bg-white shadow-sm">
|
||||||
<CardContent className="p-6">
|
<CardContent className="p-6">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
@@ -284,32 +284,6 @@ export default function JobsPage({
|
|||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</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>
|
</div>
|
||||||
|
|
||||||
{/* Tabs */}
|
{/* Tabs */}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import {
|
|||||||
BookOpen
|
BookOpen
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import { signOutAction } from './actions';
|
import { signOutAction } from './actions';
|
||||||
|
import Footer from '@/components/footer';
|
||||||
|
|
||||||
const navLinks = [
|
const navLinks = [
|
||||||
{
|
{
|
||||||
@@ -75,7 +76,7 @@ export default function MainLayout({ children }: { children: React.ReactNode })
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
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 */}
|
{/* Modern Student Navbar */}
|
||||||
<header className={`sticky top-0 z-50 w-full transition-all duration-300 ${
|
<header className={`sticky top-0 z-50 w-full transition-all duration-300 ${
|
||||||
isScrolled
|
isScrolled
|
||||||
@@ -290,10 +291,13 @@ export default function MainLayout({ children }: { children: React.ReactNode })
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
{/* Main Content */}
|
{/* Main Content */}
|
||||||
<main className="min-h-screen">
|
<main className="flex-1">
|
||||||
{children}
|
{children}
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
{/* Footer */}
|
||||||
|
<Footer />
|
||||||
|
|
||||||
{/* Click outside to close dropdowns */}
|
{/* Click outside to close dropdowns */}
|
||||||
{isProfileDropdownOpen && (
|
{isProfileDropdownOpen && (
|
||||||
<div
|
<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