Advertisement
Guest User

Untitled

a guest
May 26th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. /**
  2. * Required plugins: gatsby-source-filesystem and gatsby-plugin-sharp
  3. *
  4. * Basic Hook Usage:
  5. *
  6. * import useImgSrc from '../utils/useImgSrc';
  7. *
  8. * const Image = ({img}) => {
  9. * const imgSrc = useImgSrc(img);
  10. *
  11. * return (
  12. * <img src={imgSrc} />
  13. * )
  14. * }
  15. *
  16. * <Image img="example.png" />
  17. */
  18.  
  19. import { graphql, useStaticQuery } from 'gatsby';
  20.  
  21. interface IImgSharp {
  22. node: {
  23. fluid: {
  24. src: string;
  25. };
  26. };
  27. }
  28.  
  29. const useImgSrc = (img: string) => {
  30. const { allImageSharp } = useStaticQuery(
  31. graphql`
  32. query {
  33. allImageSharp {
  34. edges {
  35. node {
  36. fluid {
  37. src
  38. }
  39. }
  40. }
  41. }
  42. }
  43. `,
  44. );
  45.  
  46. const imgSrc = allImageSharp.edges.filter((image: IImgSharp) => {
  47. return image.node.fluid.src.includes(img);
  48. });
  49.  
  50. return imgSrc[0].node.fluid.src;
  51. };
  52.  
  53. export default useImgSrc;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement