diff --git a/app/(guest)/jobs/components/available-jobs.js b/app/(guest)/jobs/components/available-jobs.js index f6e76394..09962816 100644 --- a/app/(guest)/jobs/components/available-jobs.js +++ b/app/(guest)/jobs/components/available-jobs.js @@ -39,6 +39,7 @@ export default function AvailableJobs({ initialData }) { ? '&date=' + searchQueries.date : '' }` + getJobs({ url: jobsInfo?.next_page_url?.slice(33) + searchUrl || '/jobs', setLoading, diff --git a/app/(guest)/jobs/components/dropdown.js b/app/(guest)/jobs/components/dropdown.js index 5b0e8705..6a8c15f0 100644 --- a/app/(guest)/jobs/components/dropdown.js +++ b/app/(guest)/jobs/components/dropdown.js @@ -1,41 +1,79 @@ -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select' +'use client' +import { useRef, useState, useEffect } from 'react' + +import { ChevronDown } from 'lucide-react' +import { AnimatePresence, motion } from 'framer-motion' export default function DropdownMenu({ value, onChange, list, placeholder }) { + const [open, setOpen] = useState(false) + const dropdownRef = useRef(null) + + // Function to handle clicks outside the dropdown + const handleClickOutside = event => { + if ( + dropdownRef.current && + !dropdownRef.current.contains(event.target) + ) { + setOpen(false) + } + } + + // Add and clean up event listener for clicks outside + useEffect(() => { + if (open) { + document.addEventListener('mousedown', handleClickOutside) + } else { + document.removeEventListener('mousedown', handleClickOutside) + } + + return () => { + document.removeEventListener('mousedown', handleClickOutside) + } + }, [open]) + return ( -