import React from "react"
import { useStaticQuery, graphql } from "gatsby"
import Img from "gatsby-image"

/*
 * This component is built using `gatsby-image` to automatically serve optimized
 * images with lazy loading and reduced file sizes. The image is loaded using a
 * `useStaticQuery`, which allows us to load the image from directly within this
 * component, rather than having to pass the image data down from pages.
 *
 * For more information, see the docs:
 * - `gatsby-image`: https://gatsby.dev/gatsby-image
 * - `useStaticQuery`: https://www.gatsbyjs.com/docs/use-static-query/
 */

const Image = props => {
  const type = props.type || "fluid"
  const data = useStaticQuery(graphql`
    query {
      placeholderImage: file(relativePath: { eq: "gatsby-astronaut.png" }) {
        childImageSharp {
          fluid(maxWidth: 300) {
            ...GatsbyImageSharpFluid
          }
        }
      }
      logoImage: file(relativePath: { eq: "logo-isnur-slim.png" }) {
        childImageSharp {
          fixed(height: 65, fit: CONTAIN) {
            ...GatsbyImageSharpFixed
          }
        }
      }
    }
  `)

  if (!data[props.name]?.childImageSharp[type]) {
    return <div>Picture not found</div>
  }

  return (
    <Img {...{ [type]: data[props.name].childImageSharp[type] }} {...props} />
  )
}

export default Image
