From bbd63400f94b43fde04449e0c71d14763d893e6a Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Thu, 19 May 2022 19:46:24 +0200 Subject: refactor: rewrite Prism hooks and providers It avoid some hydratation errors on project pages (not in article however) and the hooks are now reusable. --- src/utils/hooks/use-query-selector-all.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/utils/hooks/use-query-selector-all.tsx') diff --git a/src/utils/hooks/use-query-selector-all.tsx b/src/utils/hooks/use-query-selector-all.tsx index dbeec90..6ac8a08 100644 --- a/src/utils/hooks/use-query-selector-all.tsx +++ b/src/utils/hooks/use-query-selector-all.tsx @@ -1,14 +1,22 @@ +import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; +/** + * Use `document.querySelectorAll`. + * + * @param {string} query - A query. + * @returns {NodeListOf} - The node list. + */ const useQuerySelectorAll = ( query: string -) => { +): NodeListOf | undefined => { const [elements, setElements] = useState>(); + const { asPath } = useRouter(); useEffect(() => { setElements(document.querySelectorAll(query)); - }, [query]); + }, [asPath, query]); return elements; }; -- cgit v1.2.3