aboutsummaryrefslogtreecommitdiff
path: root/src/app/web-series/components/search.jsx
diff options
context:
space:
mode:
authorreal-zephex <[email protected]>2024-05-29 01:04:20 +0530
committerGitHub <[email protected]>2024-05-29 01:04:20 +0530
commite28fba92670b5c2775a512511346136991698cbc (patch)
tree5d40f1b802af30859b06e4c7f577fd50f3cc74cb /src/app/web-series/components/search.jsx
parentMerge pull request #39 from real-zephex/homepage-redesign (diff)
parent✨ feat(series): rewrite series page and drop manga support (diff)
downloaddramalama-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.jsx57
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;