aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/hooks/use-article.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-07-23 15:31:45 +0200
committerArmand Philippot <git@armandphilippot.com>2022-07-23 15:31:45 +0200
commitbaac7d6eeaf522ff5faa28906cb1200e60a19c07 (patch)
tree1fd9f74eb0cdbabaae24a88406d82dfb9b589ba5 /src/utils/hooks/use-article.tsx
parentde9a9eac060974a7878f2bb5577f2b135596a555 (diff)
fix(article): prevent TypeError on build
By switching to custom hooks for revalidating articles and comments, everything was working on development mode but articles failed to build for production.
Diffstat (limited to 'src/utils/hooks/use-article.tsx')
-rw-r--r--src/utils/hooks/use-article.tsx16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/utils/hooks/use-article.tsx b/src/utils/hooks/use-article.tsx
index 3a173dd..6281a54 100644
--- a/src/utils/hooks/use-article.tsx
+++ b/src/utils/hooks/use-article.tsx
@@ -5,16 +5,26 @@ import { Article } from '@ts/types/app';
import { RawArticle } from '@ts/types/raw-data';
import useSWR from 'swr';
+export type UseArticleConfig = {
+ fallback?: Article;
+ slug?: string;
+};
+
/**
* Retrieve an article by slug.
*
* @param {string} slug - The article slug.
* @param {Article} fallback - A fallback article.
- * @returns {Article} The matching article.
+ * @returns {Article|undefined} The matching article if it exists.
*/
-const useArticle = (slug: string, fallback: Article): Article => {
+const useArticle = ({
+ slug,
+ fallback,
+}: UseArticleConfig): Article | undefined => {
const { data } = useSWR(
- { api: getAPIUrl(), query: articleBySlugQuery, variables: { slug } },
+ slug
+ ? { api: getAPIUrl(), query: articleBySlugQuery, variables: { slug } }
+ : null,
fetchAPI<RawArticle, typeof articleBySlugQuery>
);