diff options
| author | Adam Mathes <adam@adammathes.com> | 2026-02-13 17:02:58 -0800 |
|---|---|---|
| committer | Adam Mathes <adam@adammathes.com> | 2026-02-13 17:02:58 -0800 |
| commit | 2d1b58d49c99d2cbecc253b655ee583880156f40 (patch) | |
| tree | 88a4c2a33bc950cd6ac744785afc8d1f570d2ddf /frontend/src/components/FeedList.tsx | |
| parent | 9bea34af348e5ffb614769cd9020b3692b281823 (diff) | |
| download | neko-2d1b58d49c99d2cbecc253b655ee583880156f40.tar.gz neko-2d1b58d49c99d2cbecc253b655ee583880156f40.tar.bz2 neko-2d1b58d49c99d2cbecc253b655ee583880156f40.zip | |
feat(v2): implement search functionality (NK-shpyxh)
Diffstat (limited to 'frontend/src/components/FeedList.tsx')
| -rw-r--r-- | frontend/src/components/FeedList.tsx | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/frontend/src/components/FeedList.tsx b/frontend/src/components/FeedList.tsx index 91d927c..4e7b040 100644 --- a/frontend/src/components/FeedList.tsx +++ b/frontend/src/components/FeedList.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react'; -import { Link } from 'react-router-dom'; +import { Link, useNavigate } from 'react-router-dom'; import type { Feed, Category } from '../types'; import './FeedList.css'; @@ -8,6 +8,15 @@ export default function FeedList() { const [tags, setTags] = useState<Category[]>([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); + const [searchQuery, setSearchQuery] = useState(''); + const navigate = useNavigate(); + + const handleSearch = (e: React.FormEvent) => { + e.preventDefault(); + if (searchQuery.trim()) { + navigate(`/?q=${encodeURIComponent(searchQuery.trim())}`); + } + }; useEffect(() => { Promise.all([ @@ -36,6 +45,17 @@ export default function FeedList() { return ( <div className="feed-list"> + <div className="search-section"> + <form onSubmit={handleSearch} className="search-form"> + <input + type="search" + placeholder="Search items..." + value={searchQuery} + onChange={(e) => setSearchQuery(e.target.value)} + className="search-input" + /> + </form> + </div> <div className="filter-section"> <ul className="filter-list"> <li><Link to="/?filter=unread">Unread</Link></li> |
