aboutsummaryrefslogtreecommitdiff
path: root/src/app/search/page.jsx
diff options
context:
space:
mode:
authorreal-zephex <[email protected]>2024-03-18 14:03:32 +0530
committerreal-zephex <[email protected]>2024-03-18 14:03:32 +0530
commitb1f4f412059760d85f531c3d6e2ee626c9002d28 (patch)
treedbbb23233b9388170d52fb67de6c5f48a16c30d7 /src/app/search/page.jsx
parentfixed a minor bug (diff)
downloaddramalama-b1f4f412059760d85f531c3d6e2ee626c9002d28.tar.xz
dramalama-b1f4f412059760d85f531c3d6e2ee626c9002d28.zip
fixes: change the file extension to .jsx and fixed the video player sizes for tablets
Diffstat (limited to 'src/app/search/page.jsx')
-rw-r--r--src/app/search/page.jsx92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/app/search/page.jsx b/src/app/search/page.jsx
new file mode 100644
index 0000000..e6d4f08
--- /dev/null
+++ b/src/app/search/page.jsx
@@ -0,0 +1,92 @@
+"use client";
+
+import "./search.css";
+import { FaSearch } from "react-icons/fa"; // Import the search icon from react-icons library
+import { useState } from "react";
+import Image from "next/image";
+import Link from "next/link";
+
+export default function Input() {
+ const [searchedAnime, setSearchedAnime] = useState(null);
+ const [loading, setLoading] = useState(null);
+
+ const handleKeyPress = (event) => {
+ if (
+ (event.code === "Enter" ||
+ event.key === "Enter" ||
+ event.code === 13) &&
+ searchedAnime != ""
+ ) {
+ fetch_animes(searchedAnime);
+ } else if (
+ (event.code === "Enter" ||
+ event.key === "Enter" ||
+ event.code === 13) &&
+ searchedAnime === ""
+ ) {
+ alert("Input cannot be empty");
+ }
+ };
+
+ const [search1, setSearch] = useState(null);
+ const fetch_animes = (title) => {
+ fetch("https://dramalama-api.vercel.app/anime/gogoanime/" + title)
+ .then(setLoading(true))
+ .then((res) => res.json())
+ .then((data) => {
+ setSearch(data);
+ setLoading(false);
+ });
+ };
+
+ return (
+ <div>
+ <div className="inputContainer">
+ <div className="searchContainer">
+ <FaSearch className="searchIcon" />
+ <input
+ onChange={(event) =>
+ setSearchedAnime(event.target.value)
+ }
+ onKeyDown={(event) => handleKeyPress(event)}
+ placeholder="Enter anime title"
+ ></input>
+ </div>
+ </div>
+
+ {loading && (
+ <p style={{ color: "white", textAlign: "center" }}>
+ Please wait while we crunch all the data for you.
+ </p>
+ )}
+ <div className="animeEntry">
+ {search1 ? (
+ search1.results && search1.results.length > 0 ? (
+ search1.results.map((item, index) => (
+ <Link
+ key={index}
+ href={`/info/${item.id}`}
+ style={{ textDecoration: "none" }}
+ >
+ <div className="anime">
+ <p>{item.title}</p>
+ <Image
+ src={item.image}
+ className="animeImage"
+ width={120}
+ height={160}
+ alt="Drama Poster"
+ />
+ </div>
+ </Link>
+ ))
+ ) : (
+ <div style={{ margin: "0px auto" }}>
+ <p style={{ color: "white" }}>No results found</p>
+ </div>
+ )
+ ) : null}
+ </div>
+ </div>
+ );
+}