Added query support to the LinkContext.jsx

This commit is contained in:
2023-01-01 20:26:33 +01:00
parent 4c0005d66c
commit 61f39673d0

View File

@ -8,20 +8,32 @@ export const LinkProvider = (props) => {
const [currentDomain] = useContext(DomainContext); const [currentDomain] = useContext(DomainContext);
const [links, setLinks] = useState([]); const [links, setLinks] = useState([]);
const [query, setQuery] = useState(""); // TODO const [query, setQuery] = useState({});
const [searchContainer, setSearchContainer] = useState("");
const updateLinks = () => jsonRequest(`/link/${currentDomain}/list`) const generateQuery = () => {
.then(json => setLinks(json)); const finalJson = {};
if (query.tag) finalJson.tags = query.tag;
if (query.creator) finalJson.creator = query.creator;
if (query.title) finalJson.title = query.title;
return new URLSearchParams(finalJson).toString();
}
const updateLinks = () => jsonRequest(`/link/${currentDomain}/list?${generateQuery()}`).then(json => {
if (!json.message) setLinks(json);
});
useEffect(() => { useEffect(() => {
updateLinks(); updateLinks();
const interval = setInterval(() => updateLinks(), 15000); const interval = setInterval(() => updateLinks(), 15000);
return () => clearInterval(interval); return () => clearInterval(interval);
}, [currentDomain]); }, [currentDomain, query]);
return ( return (
<LinkContext.Provider value={[links, updateLinks, setQuery]}> <LinkContext.Provider value={[links, updateLinks, setQuery, query, searchContainer, setSearchContainer]}>
{props.children} {props.children}
</LinkContext.Provider> </LinkContext.Provider>
) )