Structured Content 2022: Join our conference to explore fresh perspectives on content and digital experiences →

Hi, I'm trying to make a simple blog using Sanity and I'm stuck on post retrieval on my index page. I'm currently writing this code in typescript + nextjs and here's a snippet...

9 replies
Last updated: Jan 1, 2021

Hi, I'm trying to make a simple blog using Sanity and I'm stuck on post retrieval on my index page. I'm currently writing this code in typescript + nextjs and here's a snippet on what I'm having problems with. I don't know how to specify a type for Posts. Is there an inbuilt type or do I have to make my own?

export default function Index(props) {
  return (
    <div>
      <h1>Welcome to a blog!</h1>
      {props.posts.map(
        ({ _id, title = '', slug = '', _updatedAt = '' }) =>
          slug && (
            <li key={_id}>
              <Link href="/blog/post/[slug]" as={`/blog/post/${slug.current}`}>
                <a>{title}</a>
              </Link>{' '}
              ({new Date(_updatedAt).toDateString()})
            </li>
          )
      )}
    </div>
  );
}

export async function getStaticProps() {
  const posts = await sanity.fetch(`*[_type == "post"]|order(publishedAt desc)`);

  console.log(posts);

  console.log(typeof posts);

  return {
    props: {
      posts: posts
    }
  };
}

Jan 1, 2021, 9:33 PM

you have to make your own, or use a tool that generate types. you could try out https://github.com/ricokahler/sanity-codegen if you don't want to type your own

Jan 1, 2021, 9:35 PM

I really appreciate that. Thank you!

Jan 1, 2021, 9:38 PM

Follow up question: Where can I find documentation about schemas since this generator requires a schema path?

Jan 1, 2021, 9:40 PM

do you mean general sanity schemas docs?

Jan 1, 2021, 9:41 PM

I believe that's what it requires, so yes

Jan 1, 2021, 9:42 PM

https://www.sanity.io/docs/schema-types
https://www.sanity.io/guides/how-to-configure-schemas
there are two sources about schema & their types, I guess you can find much more on
sanity.io site

Jan 1, 2021, 9:46 PM

Ok, the second one is what I needed, thank you!

Jan 1, 2021, 9:47 PM

No worries!

Jan 1, 2021, 9:47 PM

Wasn't sure how to configure/structure schemas

Jan 1, 2021, 9:47 PM

Sanity.io: Get the most out of your content

Sanity.io is a platform to build websites and applications. It comes with great APIs that let you treat content like data. Give your team exactly what they need to edit and publish their content with the customizable Sanity Studio. Get real-time collaboration out of the box. Sanity.io comes with a hosted datastore for JSON documents, query languages like GROQ and GraphQL, CDNs, on-demand asset transformations, presentation agnostic rich text, plugins, and much more.

Don't compromise on developer experience. Join thousands of developers and trusted companies and power your content with Sanity.io. Free to get started, pay-as-you-go on all plans.