aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/src/components/FeedList.tsx
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 17:02:58 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 17:02:58 -0800
commit2d1b58d49c99d2cbecc253b655ee583880156f40 (patch)
tree88a4c2a33bc950cd6ac744785afc8d1f570d2ddf /frontend/src/components/FeedList.tsx
parent9bea34af348e5ffb614769cd9020b3692b281823 (diff)
downloadneko-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.tsx22
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>