From 7327a69b55a20b99b14ee0803d6cf5f8b88c45ef Mon Sep 17 00:00:00 2001 From: Factiven Date: Wed, 13 Sep 2023 00:45:53 +0700 Subject: Update v4 - Merge pre-push to main (#71) * Create build-test.yml * initial v4 commit * update: github workflow * update: push on branch * Update .github/ISSUE_TEMPLATE/bug_report.md * configuring next.config.js file --- components/search/dropdown/singleSelector.js | 98 ++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 components/search/dropdown/singleSelector.js (limited to 'components/search/dropdown/singleSelector.js') diff --git a/components/search/dropdown/singleSelector.js b/components/search/dropdown/singleSelector.js new file mode 100644 index 0000000..ec8afe0 --- /dev/null +++ b/components/search/dropdown/singleSelector.js @@ -0,0 +1,98 @@ +import { Fragment, useState } from "react"; +import { Combobox, Listbox, Transition } from "@headlessui/react"; +import { CheckIcon, ChevronDownIcon } from "@heroicons/react/20/solid"; +import React from "react"; + +export default function SingleSelector({ data, label, selected, setSelected }) { + // const [selected, setSelected] = useState(); + const [query, setQuery] = useState(""); + + const filteredData = + query === "" + ? data + : data.filter((item) => + item.name + .toLowerCase() + .replace(/\s+/g, "") + .includes(query.toLowerCase().replace(/\s+/g, "")) + ); + + return ( + +
+
{label}
+
+ {/* item.name} + placeholder="Any" + onChange={(event) => setQuery(event.target.value)} + /> */} + + {selected?.name || "Any"} +
+
+
+
+ setQuery("")} + > + + {filteredData.length === 0 && query !== "" ? ( +
+ Nothing found. +
+ ) : ( + filteredData.map((item) => ( + + `relative cursor-pointer select-none py-2 px-2 ml-2 mr-1 rounded-md ${ + active ? "bg-white/5 text-action" : "text-gray-300" + }` + } + value={item} + > + {({ selected, active }) => ( + + + {item.name} + + {selected ? ( + + + ) : null} + + )} + + )) + )} +
+
+
+
+ ); +} -- cgit v1.2.3