Untitled

mail@pastecode.io avatarunknown
tsx
2 months ago
855 B
3
Indexable
Never
export const getServerSideProps = async (ctx: any): Promise<any> => {
  // fetch single-book data / fetch tags for single book
  const [singleBookData, tagsForSingleBookData] = await Promise.all([
    APIfetchSingleBook({ bookName: ctx.params.bookName }),
    APIfetchTagsForSingleBook({ bookName: ctx.params.bookName }),
  ]);
  // for fetch similar-books
  let similarBooksData = null;

  // if book not-found re-direct to 404 page
  if (!singleBookData) {
    return {
      redirect: {
        permanent: false,
        destination: '/404',
      },
    };
  } else {
    // fetch similar-books
    similarBooksData = await APIfetchSimilarBooks({
      categoryName: singleBookData.categories,
    });
  }

  return {
    props: {
      singleBookData,
      tagsForSingleBookData,
      similarBooksData,
    },
  };
};