added search functionality
This commit is contained in:
parent
9e72a0a2a7
commit
c757b2bfa6
|
@ -6,11 +6,20 @@ import AddModal from './componets/AddModal';
|
||||||
function App() {
|
function App() {
|
||||||
const [data, setData] = useState([]);
|
const [data, setData] = useState([]);
|
||||||
const [isAdding, setIsAdding] = useState(false);
|
const [isAdding, setIsAdding] = useState(false);
|
||||||
|
const [searchQuery, setSearchQuery] = useState('');
|
||||||
|
|
||||||
function exitAdding() {
|
function exitAdding() {
|
||||||
setIsAdding(!isAdding)
|
setIsAdding(!isAdding)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function search(e) {
|
||||||
|
setSearchQuery(e.target.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
const filteredData = data.filter((e) => {
|
||||||
|
return (e.name.toLowerCase().includes(searchQuery.toLowerCase()) || e.title.toLowerCase().includes(searchQuery.toLowerCase()) || e.tag.toLowerCase().includes(searchQuery.toLowerCase()))
|
||||||
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function fetchData() {
|
async function fetchData() {
|
||||||
const res = await fetch('/get');
|
const res = await fetch('/get');
|
||||||
|
@ -25,12 +34,11 @@ function App() {
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<div className="head">
|
<div className="head">
|
||||||
<input className="search" type="search" placeholder="Search bookmarks"/>
|
<input className="search" type="search" placeholder="Search for name/title/tag" onChange={search}/>
|
||||||
<button className="search-btn"><span className="material-icons-outlined md-36">search</span></button>
|
|
||||||
<button className="add-btn"><span className="material-icons-outlined md-36" onClick={() => setIsAdding(true)}>add</span></button>
|
<button className="add-btn"><span className="material-icons-outlined md-36" onClick={() => setIsAdding(true)}>add</span></button>
|
||||||
<button className="settings-btn"><span className="material-icons-outlined md-36">settings</span></button>
|
<button className="settings-btn"><span className="material-icons-outlined md-36">settings</span></button>
|
||||||
</div>
|
</div>
|
||||||
<List data={data} />
|
<List data={filteredData} />
|
||||||
{isAdding ? <AddModal onExit={exitAdding} /> : null}
|
{isAdding ? <AddModal onExit={exitAdding} /> : null}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,8 +10,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
border-top-left-radius: 10px;
|
border-radius: 10px;
|
||||||
border-bottom-left-radius: 10px;
|
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
width: 40%;
|
width: 40%;
|
||||||
|
|
Ŝarĝante…
Reference in New Issue