|
2 | 2 |
|
3 | 3 | import { useState, useRef, useEffect } from 'react' |
4 | 4 | import { useRouter, usePathname } from 'next/navigation' |
| 5 | +import Link from 'next/link' |
5 | 6 | import { Button } from '@/components/ui/button' |
6 | 7 | import { Input } from '@/components/ui/input' |
7 | 8 | import { Card } from '@/components/ui/card' |
@@ -826,42 +827,46 @@ export default function AIChatbot() { |
826 | 827 | 관련 채용 공고 ({message.jobPostings.length}개) |
827 | 828 | </div> |
828 | 829 | {message.jobPostings.map((job) => ( |
829 | | - <Card |
| 830 | + <Link |
830 | 831 | key={job.id} |
831 | | - className="p-3 border border-gray-200" |
| 832 | + href={`/dashboard/jobs/${job.id}`} |
| 833 | + className="block" |
832 | 834 | > |
833 | | - <div className="flex items-start gap-3"> |
834 | | - <div className="flex-1 min-w-0"> |
835 | | - <div className="flex items-start justify-between gap-2 mb-1"> |
836 | | - <h4 className="font-semibold text-sm text-gray-900 line-clamp-1"> |
837 | | - {job.title || '제목 없음'} |
838 | | - </h4> |
839 | | - </div> |
840 | | - {job.companyName && ( |
841 | | - <p className="text-xs text-gray-600 mb-1"> |
842 | | - {job.companyName} |
843 | | - </p> |
844 | | - )} |
845 | | - <div className="flex flex-wrap gap-2 mt-2"> |
846 | | - {job.role && ( |
847 | | - <span className="text-xs px-2 py-0.5 bg-blue-100 text-blue-700 rounded"> |
848 | | - {job.role} |
849 | | - </span> |
| 835 | + <Card className="p-3 border border-gray-200 hover:bg-gray-50 cursor-pointer transition-all hover:border-gray-300 hover:shadow-md"> |
| 836 | + <div className="flex items-start gap-3"> |
| 837 | + <div className="flex-1 min-w-0"> |
| 838 | + <div className="flex items-start justify-between gap-2 mb-1"> |
| 839 | + <h4 className="font-semibold text-sm text-gray-900 line-clamp-1"> |
| 840 | + {job.title || '제목 없음'} |
| 841 | + </h4> |
| 842 | + <ExternalLink className="w-3 h-3 text-gray-400 flex-shrink-0" /> |
| 843 | + </div> |
| 844 | + {job.companyName && ( |
| 845 | + <p className="text-xs text-gray-600 mb-1"> |
| 846 | + {job.companyName} |
| 847 | + </p> |
850 | 848 | )} |
851 | | - {job.experience && ( |
852 | | - <span className="text-xs px-2 py-0.5 bg-purple-100 text-purple-700 rounded"> |
853 | | - {job.experience} |
854 | | - </span> |
| 849 | + <div className="flex flex-wrap gap-2 mt-2"> |
| 850 | + {job.role && ( |
| 851 | + <span className="text-xs px-2 py-0.5 bg-blue-100 text-blue-700 rounded"> |
| 852 | + {job.role} |
| 853 | + </span> |
| 854 | + )} |
| 855 | + {job.experience && ( |
| 856 | + <span className="text-xs px-2 py-0.5 bg-purple-100 text-purple-700 rounded"> |
| 857 | + {job.experience} |
| 858 | + </span> |
| 859 | + )} |
| 860 | + </div> |
| 861 | + {job.postedAt && ( |
| 862 | + <p className="text-xs text-gray-500 mt-2"> |
| 863 | + 등록일: {job.postedAt.year}.{String(job.postedAt.month).padStart(2, '0')}.{String(job.postedAt.day).padStart(2, '0')} |
| 864 | + </p> |
855 | 865 | )} |
856 | 866 | </div> |
857 | | - {job.postedAt && ( |
858 | | - <p className="text-xs text-gray-500 mt-2"> |
859 | | - 등록일: {job.postedAt.year}.{String(job.postedAt.month).padStart(2, '0')}.{String(job.postedAt.day).padStart(2, '0')} |
860 | | - </p> |
861 | | - )} |
862 | 867 | </div> |
863 | | - </div> |
864 | | - </Card> |
| 868 | + </Card> |
| 869 | + </Link> |
865 | 870 | ))} |
866 | 871 | </div> |
867 | 872 | )} |
|
0 commit comments