import * as React from "react"; import Layout from "../layouts/default"; import PropTypes from "prop-types"; import * as styles from "./index.module.scss"; import * as projectStyles from "./projects.module.scss"; import { Trans, Link } from "gatsby-plugin-react-i18next"; import { graphql } from "gatsby"; import { MDXRenderer } from "gatsby-plugin-mdx"; import { GatsbyImage } from "gatsby-plugin-image"; import { ArrowRight, Briefcase, ExternalLink, GraduationCap, Loader, } from "lucide-react"; import { useTranslation } from "react-i18next"; import useSiteMetadata from "../helpers/useSiteMetadata"; export const query = graphql` query GetProjectsAndSkills($language: String) { allSkillsJson(sort: { fields: type, order: ASC }) { nodes { name type href } } allProjectsJson( filter: { lang: { eq: $language }, featured: { gte: 0 } } sort: { fields: featured, order: ASC } ) { nodes { lang urlname name image { childImageSharp { gatsbyImageData( placeholder: BLURRED layout: FULL_WIDTH ) } } shortDescription featured } } locales: allLocale(filter: { language: { eq: $language } }) { edges { node { ns data language } } } file( sourceInstanceName: { eq: "textblocks" } relativeDirectory: { eq: "home/about" } name: { eq: $language } ) { id childMdx { body } name } career: allCareerJson(sort: { order: DESC, fields: sortDate }) { nodes { id type sortDate title { de en } startDate { de en } endDate { de en } description { de en } externalLink } } } `; const AboutPage = (props) => { const { t, i18n } = useTranslation(); const { modules } = useSiteMetadata(); let file = props.data.file; const career = props.data.career.nodes; const lang = i18n.language; return (
{file.childMdx.body}

about.mySkills

{props.data.allSkillsJson.nodes.map((skill) => { return skill.href ? ( {skill.name} ) : ( {skill.name} ); })}

about.featuredProjects

{props.data.allProjectsJson.nodes.map((project) => { return (
{project.name} {project.shortDescription}
); })}
about.moreProjects

about.myCareer

about.birth
{career.map((careerEntry) => { return (
{careerEntry.startDate && careerEntry.startDate[lang] ? careerEntry.startDate[lang] : ""} {careerEntry.endDate && careerEntry.endDate[lang] ? " - " + careerEntry.endDate[lang] : ""} {careerEntry.type == "education" && ( )} {careerEntry.type == "job-experience" && ( )} {careerEntry.title[lang]} {careerEntry.description && careerEntry.description[lang] && (

{ careerEntry.description[ lang ] }

)} {careerEntry.externalLink && ( {(() => { // eslint-disable-next-line no-undef let url = new URL( careerEntry.externalLink ); return url.hostname; })()} )}
); })}
{modules.donation && (
about.donationCatchphrase
)}
); }; AboutPage.propTypes = { data: PropTypes.object.isRequired, }; export default AboutPage;