import useSWR from 'swr'; import { convertPostToArticle, fetchPost } from '../../../services/graphql'; import type { Article, Maybe, WPPost } from '../../../types'; export type UseArticleReturn> = { article: T extends undefined ? Maybe
: Article; isError: boolean; isLoading: boolean; isValidating: boolean; }; export const useArticle = >( slug: string, fallback?: T ): UseArticleReturn => { const { data, error, isLoading, isValidating } = useSWR(slug, fetchPost, { fallbackData: fallback, }); if (error) console.error(error); return { article: data ? convertPostToArticle(data) : undefined, isError: !!error, isLoading, isValidating, } as UseArticleReturn; };