From 61f39673d035165086102b5bab25c58ace2d0aeb Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 1 Jan 2023 20:26:33 +0100 Subject: [PATCH] Added query support to the LinkContext.jsx --- .../src/common/contexts/Link/LinkContext.jsx | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/admin/src/common/contexts/Link/LinkContext.jsx b/admin/src/common/contexts/Link/LinkContext.jsx index 78d08e8..bb7be9e 100644 --- a/admin/src/common/contexts/Link/LinkContext.jsx +++ b/admin/src/common/contexts/Link/LinkContext.jsx @@ -8,20 +8,32 @@ export const LinkProvider = (props) => { const [currentDomain] = useContext(DomainContext); const [links, setLinks] = useState([]); - const [query, setQuery] = useState(""); // TODO + const [query, setQuery] = useState({}); + const [searchContainer, setSearchContainer] = useState(""); - const updateLinks = () => jsonRequest(`/link/${currentDomain}/list`) - .then(json => setLinks(json)); + const generateQuery = () => { + 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(() => { updateLinks(); const interval = setInterval(() => updateLinks(), 15000); return () => clearInterval(interval); - }, [currentDomain]); + }, [currentDomain, query]); return ( - + {props.children} )