diff options
| author | real-zephex <[email protected]> | 2024-05-29 01:04:20 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-05-29 01:04:20 +0530 |
| commit | e28fba92670b5c2775a512511346136991698cbc (patch) | |
| tree | 5d40f1b802af30859b06e4c7f577fd50f3cc74cb /src/app/web-series/components/search.jsx | |
| parent | Merge pull request #39 from real-zephex/homepage-redesign (diff) | |
| parent | ✨ feat(series): rewrite series page and drop manga support (diff) | |
| download | dramalama-e28fba92670b5c2775a512511346136991698cbc.tar.xz dramalama-e28fba92670b5c2775a512511346136991698cbc.zip | |
Merge pull request #41 from real-zephex/series-overhaul
✨ feat(series): rewrite series page and drop manga support
Diffstat (limited to 'src/app/web-series/components/search.jsx')
| -rw-r--r-- | src/app/web-series/components/search.jsx | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/app/web-series/components/search.jsx b/src/app/web-series/components/search.jsx new file mode 100644 index 0000000..ecf392c --- /dev/null +++ b/src/app/web-series/components/search.jsx @@ -0,0 +1,57 @@ +"use client"; + +import { useState } from "react"; +import { Input, Progress } from "@nextui-org/react"; + +import { SEARCH_TV } from "./data-fetch"; +import SeriesSearchFormatter from "./seriesSearchFormatter"; +import PreFecthSeriesInfo from "./cacher"; +// import { SearchMovie } from "./requestsHandler"; +// import MovieSearchFormatter from "./searchFormatter"; + +const SeriesSearchBar = () => { + const [seriesTitle, setSeriesTitle] = useState(""); + const [loading, setLoading] = useState(<></>); + const [seriesResults, setSeriesResults] = useState(<></>); + + async function handleInputChange() { + setLoading( + <Progress + size="sm" + isIndeterminate + aria-label="Loading..." + className="w-full" + /> + ); + const data = await SEARCH_TV(seriesTitle); + PreFecthSeriesInfo(data); + setLoading(<></>); + setSeriesResults(await SeriesSearchFormatter(data)); + } + + return ( + <section> + <div className="flex flex-col w-full md:flex-nowrap gap-2 lg:w-1/2"> + <Input + type="text" + label="Search for series" + placeholder="Enter series title" + onChange={(event) => { + if (event.target.value.trim() !== "") { + setSeriesTitle(event.target.value); + } + }} + onKeyDown={async (event) => { + if (event.key === "Enter" || event.code === "Enter") { + await handleInputChange(); + } + }} + /> + {loading} + </div> + <div className="mt-2">{seriesResults}</div> + </section> + ); +}; + +export default SeriesSearchBar; |