| import { Search } from "lucide-react"; | |
| import { Input } from "@/components/ui/input"; | |
| import { Link } from "react-router-dom"; | |
| import { CalendarDays } from "lucide-react"; | |
| interface HeaderProps { | |
| onSearch: (query: string) => void; | |
| showEmptyMessage?: boolean; | |
| } | |
| const Header = ({ onSearch, showEmptyMessage = false }: HeaderProps) => { | |
| return ( | |
| <header className="bg-white border-b border-neutral-200"> | |
| <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div className="flex items-center justify-between h-16"> | |
| <div className="flex items-center gap-8"> | |
| <Link to="/" className="flex items-center gap-2"> | |
| <img | |
| src="https://huggingface.co/front/assets/huggingface_logo.svg" | |
| alt="Hugging Face Logo" | |
| className="h-8 w-8" | |
| /> | |
| <span className="text-2xl font-bold text-primary"> | |
| AI Conference Deadlines | |
| </span> | |
| </Link> | |
| <nav className="hidden md:flex space-x-4"> | |
| <Link | |
| to="/calendar" | |
| className="text-neutral-600 hover:text-primary flex items-center gap-2" | |
| > | |
| <CalendarDays className="h-5 w-5" /> | |
| Calendar | |
| </Link> | |
| </nav> | |
| </div> | |
| <div className="max-w-lg w-full lg:max-w-xs"> | |
| <div className="relative"> | |
| <div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <Search className="h-5 w-5 text-neutral-400" /> | |
| </div> | |
| <Input | |
| type="search" | |
| placeholder="Search conferences..." | |
| className="pl-10" | |
| onChange={(e) => onSearch(e.target.value)} | |
| /> | |
| </div> | |
| </div> | |
| </div> | |
| {showEmptyMessage && ( | |
| <div className="max-w-4xl mx-auto mt-2 mb-0 text-center"> | |
| <p className="text-sm bg-amber-50 text-amber-800 py-2 px-4 rounded-md inline-block"> | |
| There are no upcoming conferences for the selected categories - enable "Show past conferences" to see previous ones | |
| </p> | |
| </div> | |
| )} | |
| <div className="max-w-4xl mx-auto text-center"> | |
| <p className="text-sm text-neutral-600 py-4"> | |
| Countdowns to top CV/NLP/ML/Robotics/AI conference deadlines. To add/edit a conference, send in a{' '} | |
| <a | |
| href="https://github.com/huggingface/ai-deadlines" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-primary hover:underline" | |
| > | |
| pull request | |
| </a>. | |
| <br /> | |
| P.S. Is your paper already on Arxiv? Feel free to{' '} | |
| <a | |
| href="https://hf.co/papers/submit" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-primary hover:underline" | |
| > | |
| submit | |
| </a> | |
| {' '}it to{' '} | |
| <a | |
| href="https://hf.co/papers" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-primary hover:underline" | |
| > | |
| hf.co/papers | |
| </a> | |
| {' '}and upload your artifacts such as{' '} | |
| <a | |
| href="https://huggingface.co/docs/hub/en/models-uploading" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-primary hover:underline" | |
| > | |
| models | |
| </a> | |
| {', '} | |
| <a | |
| href="https://huggingface.co/docs/datasets/loading" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-primary hover:underline" | |
| > | |
| datasets | |
| </a> | |
| {' '}and{' '} | |
| <a | |
| href="https://huggingface.co/docs/hub/en/spaces-sdks-gradio" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-primary hover:underline" | |
| > | |
| demos | |
| </a> | |
| </p> | |
| </div> | |
| </div> | |
| </header> | |
| ); | |
| }; | |
| export default Header; | |