{"version":3,"file":"component---src-templates-blog-index-tsx-1d065f853ed00dc4dbd1.js","mappings":"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","sources":["webpack://devheroes-blog/./src/components/SvgIcon/SvgIcon.tsx","webpack://devheroes-blog/./src/components/icons/Github/Github.tsx","webpack://devheroes-blog/./src/components/icons/Twitter/Twitter.tsx","webpack://devheroes-blog/./src/components/icons/YouTube/YouTube.tsx","webpack://devheroes-blog/./src/components/Footer/Footer.tsx","webpack://devheroes-blog/./src/templates/blog-index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport styled from 'styled-components';\n\ntype Props = {\n children: ReactNode;\n color?: string;\n size?: string;\n titleAccess?: string;\n viewBox?: string;\n};\n\nexport default function SvgIcon({\n children,\n color,\n size = '24px',\n titleAccess,\n viewBox = '0 0 24 24',\n ...rest\n}: Props) {\n return (\n \n );\n}\n\nconst Svg = styled.svg`\n width: 1em;\n height: 1em;\n display: block;\n flex-shrink: 0;\n font-size: ${(props) => props.size};\n color: ${(props) => (props.color ? props.color : 'var(--bg-inverted)')};\n`;\n","import React from 'react';\n\nimport SvgIcon from '../../SvgIcon';\n\ntype Props = {\n size?: string;\n color?: string;\n};\n\nexport default function Github({ color, size }: Props) {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nimport SvgIcon from '../../SvgIcon';\n\ntype Props = {\n size?: string;\n color?: string;\n};\n\nexport default function Twitter({ color, size }: Props) {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nimport SvgIcon from '../../SvgIcon';\n\ntype Props = {\n size?: string;\n color?: string;\n};\n\nexport default function YouTube({ color, size }: Props) {\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport Github from '../icons/Github';\nimport Twitter from '../icons/Twitter';\nimport YouTube from '../icons/YouTube';\nimport { rhythm } from '../../utils/typography';\n\nexport default function Footer() {\n const date = new Date();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n \n );\n}\n\nconst FooterStyles = styled.footer`\n margin-top: ${rhythm(2.5)};\n padding-top: ${rhythm(1)};\n`;\n\nconst Row = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n padding-bottom: 32px;\n\n &:last-child {\n padding-bottom: 0px;\n }\n`;\n\nconst Icons = styled.div`\n display: flex;\n\n a {\n box-shadow: none;\n margin-right: 32px;\n }\n`;\n","import { Link, graphql } from 'gatsby';\nimport styled from 'styled-components';\nimport { GatsbyImage, getImage, IGatsbyImageData } from 'gatsby-plugin-image';\n\nimport { formatPostDate, formatReadingTime } from '../utils/helpers';\n\nimport Footer from '../components/Footer';\nimport Layout from '../layouts/Layout';\nimport Panel from '../components/Panel';\nimport React from 'react';\nimport SEO from '../components/SEO';\nimport { rhythm } from '../utils/typography';\n\nimport { authors } from '../utils/authors';\n\ntype Props = {\n location: {\n pathname: string;\n };\n data: {\n site: {\n siteMetadata: {\n title: string;\n };\n };\n allMarkdownRemark: {\n edges: Array<{\n node: {\n frontmatter: {\n author: string;\n date: string;\n spoiler: string;\n title: string;\n };\n fields: {\n slug: string;\n };\n timeToRead: number;\n };\n }>;\n };\n avatars: {\n edges: Array<{\n node: {\n childImageSharp: {\n gatsbyImageData: IGatsbyImageData;\n };\n };\n }>;\n };\n };\n pageContext: {\n langKey: string;\n };\n};\n\nexport default function BlogIndexTemplate({\n location,\n data,\n pageContext,\n}: Props) {\n const siteTitle = data.site.siteMetadata.title;\n const langKey = pageContext.langKey;\n\n const posts = data.allMarkdownRemark.edges;\n\n return (\n \n \n \n {langKey !== 'pt-br' && (\n \n Esses artigos foram{' '}\n \n traduzidos pela comunidade\n \n .\n \n )}\n\n {posts.map(({ node }) => {\n const title = node.frontmatter.title || node.fields.slug;\n const author = node.frontmatter.author;\n const avatar = data.avatars.edges.find((avatar) =>\n avatar.node.childImageSharp.gatsbyImageData.images.fallback?.src.includes(\n author\n )\n );\n const image =\n avatar && getImage(avatar.node.childImageSharp.gatsbyImageData);\n\n return (\n \n \n \n \n {title}\n \n
\n \n {avatar && image && (\n \n )}\n \n {authors[author].name}\n {` • ${formatPostDate(node.frontmatter.date, langKey)}`}\n {` • ${formatReadingTime(node.timeToRead)}`}\n \n \n \n \n \n );\n })}\n \n \n \n );\n}\n\nconst ArticleInfo = styled.div`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n small {\n margin-left: 16px;\n }\n img {\n border-radius: 50%;\n }\n`;\n\nexport const pageQuery = graphql`\n query ($langKey: String!) {\n site {\n siteMetadata {\n title\n description\n }\n }\n allMarkdownRemark(\n filter: { fields: { langKey: { eq: $langKey } } }\n sort: { fields: [frontmatter___date], order: DESC }\n ) {\n edges {\n node {\n fields {\n slug\n langKey\n }\n timeToRead\n frontmatter {\n author\n date(formatString: \"MMMM DD, YYYY\")\n title\n spoiler\n }\n }\n }\n }\n avatars: allFile(filter: { relativePath: { regex: \"/authors/\" } }) {\n edges {\n node {\n childImageSharp {\n gatsbyImageData(\n width: 32\n placeholder: BLURRED\n formats: [AUTO, WEBP, AVIF]\n )\n }\n }\n }\n }\n }\n`;\n"],"names":["SvgIcon","children","color","size","titleAccess","viewBox","rest","Svg","focusable","undefined","role","xmlns","fill","styled","props","Github","d","Twitter","YouTube","Footer","date","Date","FooterStyles","Row","Icons","href","target","rel","getFullYear","title","rhythm","BlogIndexTemplate","location","data","pageContext","siteTitle","site","siteMetadata","langKey","posts","allMarkdownRemark","edges","Layout","SEO","Panel","map","node","frontmatter","fields","slug","author","avatar","avatars","find","childImageSharp","gatsbyImageData","images","fallback","src","includes","image","getImage","key","style","fontFamily","fontSize","marginBottom","Link","boxShadow","to","ArticleInfo","G","alt","authors","name","formatPostDate","formatReadingTime","timeToRead","dangerouslySetInnerHTML","__html","spoiler"],"sourceRoot":""}