el.xwx.moe/webmarker/src/App.js

48 lines
1.5 KiB
JavaScript
Raw Normal View History

2022-04-16 12:50:42 -05:00
import { useEffect, useState } from 'react';
2022-04-22 07:13:22 -05:00
import './styles/App.css';
2022-04-16 12:50:42 -05:00
import List from './componets/List';
2022-04-22 07:13:22 -05:00
import AddModal from './componets/AddModal';
2022-04-09 03:14:50 -05:00
function App() {
2022-04-16 12:50:42 -05:00
const [data, setData] = useState([]);
2022-04-22 07:13:22 -05:00
const [isAdding, setIsAdding] = useState(false);
2022-04-24 18:34:30 -05:00
const [searchQuery, setSearchQuery] = useState('');
2022-04-22 07:13:22 -05:00
function exitAdding() {
setIsAdding(!isAdding)
}
2022-04-16 12:50:42 -05:00
2022-04-24 18:34:30 -05:00
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()))
});
2022-04-16 12:50:42 -05:00
useEffect(() => {
async function fetchData() {
2022-04-19 07:22:53 -05:00
const res = await fetch('/get');
2022-04-16 12:50:42 -05:00
const resJSON = await res.json();
2022-04-22 07:13:22 -05:00
const Data = resJSON.sort((a, b) => { return b-a });
setData(Data);
2022-04-16 12:50:42 -05:00
}
fetchData();
}, []);
2022-04-09 03:14:50 -05:00
return (
<div className="App">
2022-04-14 09:10:27 -05:00
<div className="head">
2022-04-24 18:34:30 -05:00
<input className="search" type="search" placeholder="Search for name/title/tag" onChange={search}/>
2022-04-22 07:13:22 -05:00
<button className="add-btn"><span className="material-icons-outlined md-36" onClick={() => setIsAdding(true)}>add</span></button>
2022-04-16 12:50:42 -05:00
<button className="settings-btn"><span className="material-icons-outlined md-36">settings</span></button>
2022-04-14 09:10:27 -05:00
</div>
2022-04-24 18:34:30 -05:00
<List data={filteredData} />
2022-04-22 07:13:22 -05:00
{isAdding ? <AddModal onExit={exitAdding} /> : null}
2022-04-09 03:14:50 -05:00
</div>
);
}
2022-04-19 07:22:53 -05:00
export default App;