import { graphql , useStaticQuery } from 'gatsby' ; type Distinct = string ; interface Edge { node : { id : string ; html : string ; frontmatter : { title : string ; bad ? : { id : string ; childMarkdownRemark : { html : string ; } ; } ; good ? : { id : string ; childMarkdownRemark : { html : string ; } ; } ; } ; } ; } interface Group { edges : Edge [ ] ; fieldValue : string ; } interface IndexPageQuery { allMarkdownRemark : { distinct : Distinct [ ] ; group : Group [ ] ; } ; site : { siteMetadata : { description : string ; github : { url : string ; } ; title : string ; } ; } ; } export function useIndexPage ( ) { return useStaticQuery < IndexPageQuery > ( graphql `
    query {
      allMarkdownRemark {
        distinct(field: frontmatter___categories)
        group(field: frontmatter___categories) {
          edges {
            node {
              id
              html
              frontmatter {
                title
                bad {
                  id
                  childMarkdownRemark {
                    html
                  }
                }
                good {
                  childMarkdownRemark {
                    html
                  }
                }
              }
            }
          }
          fieldValue
        }
      }
      site {
        siteMetadata {
          description
          github {
            url
          }
          title
        }
      }
    }
  ` ) ; }