Spaces:
Sleeping
Sleeping
| import { Button, Card } from '@/components/base'; | |
| import { Clock, Globe } from 'lucide-react'; | |
| import Image from 'next/image'; | |
| type JobCardProps = { | |
| job: { | |
| id: number; | |
| title: string; | |
| company: string; | |
| logo: string; | |
| location: string; | |
| type: string; | |
| postedAt: string; | |
| }; | |
| }; | |
| export default function JobCard({ job }: JobCardProps) { | |
| return ( | |
| <Card className="rounded-lg border bg-card p-6"> | |
| <div className="flex items-start gap-4"> | |
| <div className="relative size-12 overflow-hidden rounded-full border"> | |
| <Image src={job.logo || '/placeholder.svg'} alt={`${job.company} logo`} fill className="object-cover" /> | |
| </div> | |
| <div className="flex-1"> | |
| <h3 className="text-lg font-semibold">{job.title}</h3> | |
| <p className="text-muted-foreground">{job.company}</p> | |
| <div className="mt-2 flex items-center gap-4 text-sm text-muted-foreground"> | |
| <div className="flex items-center gap-1"> | |
| <Globe className="size-4" /> | |
| {job.location} | |
| </div> | |
| <div className="flex items-center gap-1"> | |
| <Clock className="size-4" /> | |
| {job.type} | |
| </div> | |
| </div> | |
| </div> | |
| <div className="flex flex-col gap-2"> | |
| <Button variant="outline">View</Button> | |
| <Button>Apply</Button> | |
| </div> | |
| </div> | |
| </Card> | |
| ); | |
| } | |