diff options
| author | Factiven <[email protected]> | 2023-10-22 19:43:17 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-22 19:43:17 +0700 |
| commit | f801f8f422954b884a6541321dba0669ee9d6173 (patch) | |
| tree | e0d5e106b99e9b4e0a4c4bf7bb0464617db85b8d /components/searchPalette.js | |
| parent | Bump @babel/traverse from 7.22.8 to 7.23.2 (#90) (diff) | |
| download | moopa-4.2.0.tar.xz moopa-4.2.0.zip | |
Update v4.2.0 (#93)v4.2.0
Diffstat (limited to 'components/searchPalette.js')
| -rw-r--r-- | components/searchPalette.js | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/components/searchPalette.js b/components/searchPalette.js index 38a0bc0..10b9003 100644 --- a/components/searchPalette.js +++ b/components/searchPalette.js @@ -1,4 +1,4 @@ -import { Fragment, useEffect, useState } from "react"; +import { Fragment, useEffect, useRef, useState } from "react"; import { Combobox, Dialog, Menu, Transition } from "@headlessui/react"; import useDebounce from "../lib/hooks/useDebounce"; import Image from "next/image"; @@ -8,6 +8,7 @@ import { ChevronDownIcon, ChevronRightIcon } from "@heroicons/react/24/outline"; import { BookOpenIcon, PlayIcon } from "@heroicons/react/20/solid"; import { useAniList } from "../lib/anilist/useAnilist"; import { getFormat } from "../utils/getFormat"; +import SearchByImage from "./search/searchByImage"; export default function SearchPalette() { const { isOpen, setIsOpen } = useSearch(); @@ -21,6 +22,7 @@ export default function SearchPalette() { const [nextPage, setNextPage] = useState(false); + let focusInput = useRef(null); const router = useRouter(); function closeModal() { @@ -44,6 +46,7 @@ export default function SearchPalette() { useEffect(() => { advance(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, [debounceSearch, type]); useEffect(() => { @@ -62,11 +65,17 @@ export default function SearchPalette() { return () => { window.removeEventListener("keydown", handleKeyDown); }; + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return ( <Transition appear show={isOpen} as={Fragment}> - <Dialog as="div" className="relative z-[6969]" onClose={closeModal}> + <Dialog + as="div" + className="relative z-[6969]" + initialFocus={focusInput} + onClose={closeModal} + > <Transition.Child as={Fragment} enter="ease-out duration-300" @@ -112,13 +121,13 @@ export default function SearchPalette() { <span>S</span> </div> </div> - <div> + <div className="flex gap-1 items-center"> <Menu as="div" className="relative inline-block text-left" > <div> - <Menu.Button className="capitalize bg-secondary inline-flex w-full justify-center rounded-md px-3 py-2 text-sm font-medium text-white hover:bg-opacity-80 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"> + <Menu.Button className="capitalize bg-secondary inline-flex w-full justify-center rounded px-3 py-2 text-sm font-medium text-white hover:bg-opacity-80 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"> {type.toLowerCase()} <ChevronDownIcon className="ml-2 -mr-1 h-5 w-5 text-violet-200 hover:text-violet-100" @@ -171,10 +180,15 @@ export default function SearchPalette() { </Menu.Items> </Transition> </Menu> + <SearchByImage + searchPalette={true} + setIsOpen={setIsOpen} + /> </div> </div> <div className="flex items-center text-base font-medium rounded bg-secondary"> <Combobox.Input + ref={focusInput} className="p-5 text-white w-full bg-transparent border-0 outline-none" placeholder="Search something..." onChange={(event) => setQuery(event.target.value)} |