-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-pages-templates-projects-tsx-05e1354e259380d8d7ed.js.map
1 lines (1 loc) · 13.4 KB
/
component---src-pages-templates-projects-tsx-05e1354e259380d8d7ed.js.map
1
{"version":3,"file":"component---src-pages-templates-projects-tsx-05e1354e259380d8d7ed.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./src/components/common/button.tsx","webpack://code-cave/./src/components/common/pagination.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/pagesTemplates/projects.tsx","webpack://code-cave/./src/types/common.type.ts"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","import React from \"react\";\n\nimport { Theme } from \"../../types/common.type\";\n\ninterface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n theme: Theme;\n onClick?: () => any;\n className?: string;\n border?: boolean;\n}\n\nconst Button = (props: React.PropsWithChildren<IButtonProps>) => {\n const { theme, onClick, className, children, border, ...attr } = props;\n\n const colorClasses = `${\n theme === Theme.dark\n ? \"bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70\"\n : \"bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30\"\n }`;\n\n return (\n <button\n onClick={onClick}\n className={`flex min-w-10 items-center justify-center rounded-lg border-solid ${\n border ? \"border\" : \"\"\n } ${colorClasses} ${className}`}\n {...attr}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n nextPageTitle,\n className,\n}: {\n section: \"projects\" | `blog${string}`;\n pagesQuantity: number;\n currentPage: number;\n nextPageTitle?: string;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n <div className={`flex justify-center w-full gap-6 ${className}`}>\n {currentPage < pagesQuantity ? (\n <Link to={`/${section}/page/${nextPage}`} className=\"w-max shrink-0\">\n <Button\n theme={Theme.light}\n border\n aria-label={nextPageTitle ?? \"Next page\"}\n className=\"whitespace-nowrap h-10 px-5 font-bold\"\n >\n {nextPageTitle ?? \"Next page\"}\n </Button>\n </Link>\n ) : null}\n\n <nav className=\"shrink-0 flex gap-2\">\n {pagesQuantity > 1\n ? pages.map((page) => (\n <Link\n key={`pagination-link-${page}`}\n to={`/${section}/page/${page}`}\n >\n <Button\n theme={Theme.light}\n border={page === currentPage}\n aria-label=\"view page\"\n className=\"h-10 font-bold\"\n >\n {page}\n </Button>\n </Link>\n ))\n : null}\n </nav>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst ProjectPreview = ({\n project,\n className,\n theme,\n lang,\n}: {\n project: IProjectPreviewQueryResult;\n className?: string;\n theme: Theme;\n lang: TLang;\n}) => {\n const cover = getImage(project.frontmatter.cover);\n const { title, teamSize, duration } = project.frontmatter;\n\n const fontColorClass10 =\n theme === Theme.light ? \"text-main-100\" : \"text-secondary-100\";\n const bgColors =\n theme === Theme.light\n ? \"bg-secondary-100 hover:bg-secondary-100\"\n : \"bg-main-100 hover:bg-main-100\";\n\n return (\n <Link\n to={`/projects/${project.id}`}\n className={`${bgColors} ${fontColorClass10} flex flex-col justify-between rounded-2xl p-2.5 gap-2.5 ${className}`}\n itemScope\n itemType=\"https://schema.org/CreativeWork\"\n >\n <div className=\"group flex-1 relative\">\n {cover ? (\n <div className=\"w-full rounded-[10px] overflow-hidden\">\n <GatsbyImage\n image={cover}\n alt=\"cover\"\n itemProp=\"image\"\n className=\"object-contain w-full rounded-[10px] grayscale transition-all group-hover:scale-[1.05]\"\n />\n </div>\n ) : null}\n <div className=\"absolute left-2 bottom-2 flex items-center gap-2.5 z-10\">\n <p className=\"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg\">\n {duration}\n </p>\n <p className=\"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg\">\n {teamSize}\n </p>\n </div>\n </div>\n <div className=\"flex px-2.5 py-1 items-center grow\">\n <h2\n className=\"text-base grow font-medium h-full\"\n itemProp=\"description\"\n >\n {title}\n </h2>\n <BsArrowUpRight size={20} />\n </div>\n <LocalBusinessMetadata itemProp=\"author\" lang={lang} />\n </Link>\n );\n};\n\nexport default ProjectPreview;\n","import React from \"react\";\n\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IProjectsPageContext, IProjectsPageData } from \"../types/project.type\";\nimport { Theme } from \"../types/common.type\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ProjectPreview from \"../components/projects/projectPreview\";\nimport Pagination from \"../components/common/pagination\";\nimport { HeadSeo } from \"../components/common/metadata\";\n\nconst Projects = ({\n data,\n pageContext,\n}: PageProps<IProjectsPageData, IProjectsPageContext>) => {\n const projects = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity, lang, markupData } = pageContext;\n\n return (\n <div className=\"flex w-full justify-center bg-main-100\">\n <h1 className=\"hidden\">{markupData.head}</h1>\n {/* <h2 className=\"hidden\">{markupData.bannerTitle}</h2> */}\n <ContentContainer maxWidthClass=\"max-w-4.5xl\" className=\"flex-col py-16\">\n <div className=\"w-full grid grid-cols-1 sm:grid-cols-2 gap-x-14 gap-y-8\">\n {projects\n ? projects.map((project) => (\n <ProjectPreview\n key={project.id}\n project={project}\n lang={lang}\n theme={Theme.light}\n />\n ))\n : null}\n </div>\n {pagesQuantity > 1 ? (\n <Pagination\n section={\"projects\"}\n pagesQuantity={pagesQuantity}\n currentPage={currentPage}\n nextPageTitle={pageContext.pagination.next}\n />\n ) : null}\n </ContentContainer>\n </div>\n );\n};\n\nexport default Projects;\n\nexport const Head: HeadFC<IProjectsPageData, IProjectsPageContext> = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps<IProjectsPageData, IProjectsPageContext>) => (\n <HeadSeo\n title={`${markupData.head} | ${markupData.bannerTitle.toUpperCase()}`}\n siteUrl={site.siteUrl}\n description={site.description}\n path={location.pathname}\n lang={lang}\n />\n);\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!, $lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: $lang } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\n title\n teamSize\n duration\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 600\n )\n }\n }\n }\n }\n }\n }\n`;\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult<T extends object> {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analytics: { gtagId: string; clarityId: string };\n commentsSetup: ICommentsSetup;\n}\n\nexport interface ICommentsSetup {\n repo: `${string}/${string}`;\n repoId: string;\n categoryId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n"],"names":["GenIcon","module","exports","props","theme","onClick","className","children","border","attr","colorClasses","Theme","dark","___EmotionJSX","_extends","_ref","section","pagesQuantity","currentPage","nextPageTitle","pages","Array","from","length","_","i","nextPage","Link","to","Button","light","map","page","key","project","lang","cover","getImage","frontmatter","title","teamSize","duration","fontColorClass10","bgColors","id","itemScope","itemType","GatsbyImage","image","alt","itemProp","BsArrowUpRight","size","LocalBusinessMetadata","data","pageContext","projects","allMarkdownRemark","nodes","markupData","head","ContentContainer","maxWidthClass","ProjectPreview","Pagination","pagination","next","Head","_ref2","site","location","HeadSeo","bannerTitle","toUpperCase","siteUrl","description","path","pathname"],"sourceRoot":""}