aboutsummaryrefslogtreecommitdiff
path: root/src/app/search/page.js
diff options
context:
space:
mode:
authorreal-zephex <[email protected]>2024-03-16 15:32:44 +0530
committerreal-zephex <[email protected]>2024-03-16 15:32:44 +0530
commit5fc30a26612f11c4a4ec5de1a98562712802f5df (patch)
treea78b63473160e8a424cf7ae2a538adc64e98477a /src/app/search/page.js
parentminor fixes for vercel (diff)
downloaddramalama-5fc30a26612f11c4a4ec5de1a98562712802f5df.tar.xz
dramalama-5fc30a26612f11c4a4ec5de1a98562712802f5df.zip
feature added: search anime by title
Diffstat (limited to 'src/app/search/page.js')
-rw-r--r--src/app/search/page.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/app/search/page.js b/src/app/search/page.js
new file mode 100644
index 0000000..cb571b3
--- /dev/null
+++ b/src/app/search/page.js
@@ -0,0 +1,75 @@
+"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 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(res => res.json())
+ .then(
+ data => {
+ setSearch(data)
+ console.log(search1)
+ }
+ )
+ }
+
+ 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>
+
+ <div className='animeEntry'>
+ {search1 && search1.results.map((item, index) => (
+ <Link href={`/info/${item.id}`} style={{textDecoration: "none"}}>
+ <div key={index} className='anime'>
+ <p>{item.title}</p>
+ <Image
+ src={item.image}
+ className='animeImage'
+ width={120}
+ height={160}
+ />
+ </div>
+ </Link>
+ ))}
+ </div>
+ </div>
+
+ )
+} \ No newline at end of file