import { useState } from "react"; import { MWMediaType, MWQuery } from "@/providers"; import { useTranslation } from "react-i18next"; import { DropdownButton } from "./buttons/DropdownButton"; import { Icon, Icons } from "./Icon"; import { TextInputControl } from "./text-inputs/TextInputControl"; export interface SearchBarProps { buttonText?: string; placeholder?: string; onChange: (value: MWQuery, force: boolean) => void; onUnFocus: () => void; value: MWQuery; } export function SearchBarInput(props: SearchBarProps) { const { t } = useTranslation(); const [dropdownOpen, setDropdownOpen] = useState(false); function setSearch(value: string) { props.onChange( { ...props.value, searchQuery: value, }, false ); } function setType(type: string) { props.onChange( { ...props.value, type: type as MWMediaType, }, true ); } return (
setSearch(val)} value={props.value.searchQuery} className="w-full flex-1 bg-transparent px-4 py-4 pl-12 text-white placeholder-denim-700 focus:outline-none sm:py-4 sm:pr-2" placeholder={props.placeholder} />
setDropdownOpen(val)} selectedItem={props.value.type} setSelectedItem={(val) => setType(val)} options={[ { id: MWMediaType.MOVIE, name: t("searchBar.movie"), icon: Icons.FILM, }, { id: MWMediaType.SERIES, name: t("searchBar.series"), icon: Icons.CLAPPER_BOARD, }, // { // id: MWMediaType.ANIME, // name: "Anime", // icon: Icons.DRAGON, // }, ]} onClick={() => setDropdownOpen((old) => !old)} > {props.buttonText || t("searchBar.search")}
); }