diff --git a/src/app/(public)/about/free-time/page.tsx b/src/app/(public)/about/free-time/page.tsx index 753bab6..4d7267f 100644 --- a/src/app/(public)/about/free-time/page.tsx +++ b/src/app/(public)/about/free-time/page.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; +import { flattenToArray } from '@/lib/graphqlUtils'; import { shuffleArray } from '@/lib/helper'; import { QuizData, QuizOption } from '@/components/molecules/RandomFacts/Quiz'; @@ -10,8 +11,8 @@ import RandomFacts from '@/components/organisms/about-free-time/RandomFacts'; import TvSeries from '@/components/organisms/about-free-time/TvSeries'; import VideoGames from '@/components/organisms/about-free-time/VideoGames'; -import { booksQuery } from '@/queries/books'; -import { podcastsQuery } from '@/queries/podcasts'; +import { booksQueryQL } from '@/queries/books'; +import { podcastsQueryQL } from '@/queries/podcasts'; import { falseRandomFactsQuery, selectedTrueRandomFactsQuery, @@ -19,24 +20,34 @@ import { } from '@/queries/random-facts'; import { tvSeriesQuery } from '@/queries/tv-series'; import { videoGamesQuery } from '@/queries/video-games'; -import { Book } from '@/sanityTypes/Book'; -import { Podcast } from '@/sanityTypes/Podcast'; import { RandomFact } from '@/sanityTypes/RandomFact'; import { TvShow } from '@/sanityTypes/TvSeries'; import { VideoGame } from '@/sanityTypes/VideoGame'; +import apolloClient from '../../../../../apollo/apollo-client'; import { sanityClient } from '../../../../../sanity/lib/client'; +import { Book } from '@/types/Book'; +import { Podcast } from '@/types/Podcast'; + export const metadata = { title: 'About my Free Time | MartaCodes.it', description: 'About page', }; -const getData = async () => { - const books: Book[] = await sanityClient.fetch(booksQuery); +async function queryBooks() { + const { data } = await apolloClient.query({ query: booksQueryQL }); + + return flattenToArray(data.books); +} + +async function queryPodcasts() { + const { data } = await apolloClient.query({ query: podcastsQueryQL }); - const podcasts: Podcast[] = await sanityClient.fetch(podcastsQuery); + return flattenToArray(data.podcasts); +} +const getData = async () => { const tvSeries: TvShow[] = await sanityClient.fetch(tvSeriesQuery); const videoGames: VideoGame[] = await sanityClient.fetch(videoGamesQuery); @@ -44,14 +55,22 @@ const getData = async () => { const randomFacts: QuizData = await loadRandomFactsForQuiz(); return { - books, - podcasts, tvSeries, videoGames, randomFacts, }; }; +const queryData = async () => { + const books = await queryBooks(); + const podcasts = await queryPodcasts(); + + return { + books, + podcasts, + }; +}; + const loadRandomFactsForQuiz = async () => { const falseFacts: RandomFact[] = await sanityClient.fetch( falseRandomFactsQuery @@ -103,8 +122,9 @@ const loadRandomFactsForQuiz = async () => { }; const AboutFreeTimePage = async () => { - const { books, podcasts, tvSeries, videoGames, randomFacts } = - await getData(); + const { tvSeries, videoGames, randomFacts } = await getData(); + + const { books, podcasts } = await queryData(); return (
diff --git a/src/components/organisms/about-free-time/Books.tsx b/src/components/organisms/about-free-time/Books.tsx index 6c5e37f..e35dc5a 100644 --- a/src/components/organisms/about-free-time/Books.tsx +++ b/src/components/organisms/about-free-time/Books.tsx @@ -3,7 +3,7 @@ import Image from 'next/image'; import * as React from 'react'; -import { Book } from '@/sanityTypes/Book'; +import { Book } from '@/types/Book'; export interface BookProps { books: Book[]; @@ -19,7 +19,7 @@ const Books = ({ books }: BookProps) => {