diff --git a/src/assets/data/team.json b/src/assets/data/team.json new file mode 100644 index 0000000..cff7068 --- /dev/null +++ b/src/assets/data/team.json @@ -0,0 +1,79 @@ +[ + { + "img": "/src/assets/img/team/Benjamin Frost.webp", + "name": "Benjamin Frost", + "lastRole": { "de": "Jury", "en": "Jury" }, + "hasMultipleRoles": true + }, + { + "img": "/src/assets/img/team/Jonas Wanke.webp", + "name": "Jonas Wanke", + "lastRole": { "en": "Expert", "de": "Bundestrainer" }, + "skill": { + "de": "App-Entwicklung", + "en": "Mobile Applications Development" + }, + "hasMultipleRoles": true + }, + { + "img": "/src/assets/img/team/Dr. Olaf Kappler.webp", + "name": "Dr. Olaf Kappler", + "lastRole": { "en": "Expert", "de": "Bundestrainer" }, + "skill": { + "de": "Software-Entwicklung", + "en": "Software Applications Development" + } + }, + { + "img": "/src/assets/img/team/Doreen Kappler.webp", + "name": "Doreen Kappler", + "lastRole": { "de": "Good Fairy", "en": "Good Fairy" } + }, + { + "img": "/src/assets/img/team/Glenn Skrzypczak.webp", + "name": "Glenn Skrzypczak", + "lastRole": { "en": "Expert", "de": "Bundestrainer" }, + "skill": { + "de": "Web-Entwicklung", + "en": "Web Technologies" + }, + "hasMultipleRoles": true + }, + { + "img": "/src/assets/img/team/Elisa Boose.webp", + "name": "Elisa Boose", + "lastRole": { "en": "Trainer", "de": "Trainer" } + }, + { + "img": "/src/assets/img/team/Michael Boose.webp", + "name": "Michael Boose", + "lastRole": { "en": "Trainer", "de": "Trainer" } + }, + { + "img": "/src/assets/img/team/Joachim Schiller.webp", + "name": "Joachim Schiller", + "lastRole": { "de": "Jury", "en": "Jury" }, + "hasMultipleRoles": true + }, + { + "img": "/src/assets/img/team/Justin Konratt.webp", + "name": "Justin Konratt", + "lastRole": { "de": "Jury", "en": "Jury" }, + "hasMultipleRoles": true + }, + { + "img": "/src/assets/img/team/Kai Redmann.webp", + "name": "Kai Redmann", + "lastRole": { "en": "Workshop-Manager", "de": "Workshop Manager" } + }, + { + "img": "/src/assets/img/team/Lukas Fischer.webp", + "name": "Lukas Fischer", + "lastRole": { "en": "Workshop-Manager", "de": "Workshop Manager" } + }, + { + "img": "/src/assets/img/team/Thomas Steinfeld.webp", + "name": "Thomas Steinfeld", + "lastRole": { "en": "Mr. Speed Programming", "de": "Mr. Speed Programming" } + } +] diff --git a/src/assets/img/team.webp b/src/assets/img/team.webp new file mode 100644 index 0000000..06c68b9 Binary files /dev/null and b/src/assets/img/team.webp differ diff --git a/src/assets/img/team/Benjamin Frost.webp b/src/assets/img/team/Benjamin Frost.webp new file mode 100644 index 0000000..3b893d0 Binary files /dev/null and b/src/assets/img/team/Benjamin Frost.webp differ diff --git a/src/assets/img/team/Doreen Kappler.webp b/src/assets/img/team/Doreen Kappler.webp new file mode 100644 index 0000000..367ad76 Binary files /dev/null and b/src/assets/img/team/Doreen Kappler.webp differ diff --git a/src/assets/img/team/Dr. Olaf Kappler.webp b/src/assets/img/team/Dr. Olaf Kappler.webp new file mode 100644 index 0000000..d95a7ca Binary files /dev/null and b/src/assets/img/team/Dr. Olaf Kappler.webp differ diff --git a/src/assets/img/team/Elisa Boose.webp b/src/assets/img/team/Elisa Boose.webp new file mode 100644 index 0000000..56e8c57 Binary files /dev/null and b/src/assets/img/team/Elisa Boose.webp differ diff --git a/src/assets/img/team/Glenn Skrzypczak.webp b/src/assets/img/team/Glenn Skrzypczak.webp new file mode 100644 index 0000000..781d312 Binary files /dev/null and b/src/assets/img/team/Glenn Skrzypczak.webp differ diff --git a/src/assets/img/team/Joachim Schiller.webp b/src/assets/img/team/Joachim Schiller.webp new file mode 100644 index 0000000..08cfc01 Binary files /dev/null and b/src/assets/img/team/Joachim Schiller.webp differ diff --git a/src/assets/img/team/Jonas Wanke.webp b/src/assets/img/team/Jonas Wanke.webp new file mode 100644 index 0000000..4e6f63c Binary files /dev/null and b/src/assets/img/team/Jonas Wanke.webp differ diff --git a/src/assets/img/team/Justin Konratt.webp b/src/assets/img/team/Justin Konratt.webp new file mode 100644 index 0000000..3abb48f Binary files /dev/null and b/src/assets/img/team/Justin Konratt.webp differ diff --git a/src/assets/img/team/Kai Redmann.webp b/src/assets/img/team/Kai Redmann.webp new file mode 100644 index 0000000..bd06396 Binary files /dev/null and b/src/assets/img/team/Kai Redmann.webp differ diff --git a/src/assets/img/team/Lukas Fischer.webp b/src/assets/img/team/Lukas Fischer.webp new file mode 100644 index 0000000..c3f5172 Binary files /dev/null and b/src/assets/img/team/Lukas Fischer.webp differ diff --git a/src/assets/img/team/Michael Boose.webp b/src/assets/img/team/Michael Boose.webp new file mode 100644 index 0000000..7c7a4a0 Binary files /dev/null and b/src/assets/img/team/Michael Boose.webp differ diff --git a/src/assets/img/team/Thomas Steinfeld.webp b/src/assets/img/team/Thomas Steinfeld.webp new file mode 100644 index 0000000..ea24f2f Binary files /dev/null and b/src/assets/img/team/Thomas Steinfeld.webp differ diff --git a/src/components/Header.astro b/src/components/Header.astro index 47ec657..2ef6258 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -24,7 +24,7 @@ const skills = [ { name: t({ de: "Web-Entwicklung", - en: "Web Technologies" + en: "Web Technologies", }), href: getRelativeLocaleUrl(lang, "web-technologies"), }, @@ -46,13 +46,12 @@ const skills = [ - +

& { +interface Props { name: string; - img: string; - info?: string; -}; + lastRole: Record; + img?: string; + skill?: Record; + hasMultipleRoles?: boolean; +} -const { name, img, info, links = [] } = Astro.props; +const { name, img, lastRole, skill, hasMultipleRoles = false } = Astro.props; + +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); ---
- -
-
-

{name}

- {info &&

{info}

} + +
+

{name}

+
+

+ {t(lastRole)} +

+

+ {hasMultipleRoles && t({ de: "und mehr", en: "and more" })} +

- +

+ {skill ||
} +

diff --git a/src/components/team/PersonImage.tsx b/src/components/team/PersonImage.tsx new file mode 100644 index 0000000..1919fb5 --- /dev/null +++ b/src/components/team/PersonImage.tsx @@ -0,0 +1,18 @@ +import clsx from "clsx"; + +export type PersonImageProps = { + img?: string; +}; + +export const PersonImage = ({ img }: PersonImageProps) => { + return ( + + ); +}; diff --git a/src/components/team/Team.astro b/src/components/team/Team.astro index 78c968d..1a29970 100644 --- a/src/components/team/Team.astro +++ b/src/components/team/Team.astro @@ -1,23 +1,24 @@ --- -import type { ComponentProps } from "astro/types"; import Person from "./Person.astro"; - -interface Props { - members: ComponentProps[]; -} - -const { members } = Astro.props; +import team from "~/assets/data/team.json"; --- -
    - { - members.map((member) => ( -
  • - -
  • - )) - } -
+
+
+ { + team + .sort((first, second) => first["name"].localeCompare(second["name"])) + .map((member) => ( + + )) + } +
+
diff --git a/src/layouts/SkillPage.astro b/src/layouts/SkillPage.astro index 438dbfe..364d588 100644 --- a/src/layouts/SkillPage.astro +++ b/src/layouts/SkillPage.astro @@ -7,7 +7,6 @@ import HeadedSection from "~/components/sections/HeadedSection.astro"; import WavedSection from "~/components/sections/WavedSection.astro"; import SkillInformation from "~/components/skill/SkillInformation.astro"; import SkillRoadmap from "~/components/skill/SkillRoadmap.astro"; -import type Person from "~/components/team/Person.astro"; import TimeLine from "~/components/timeline/TimeLine.astro"; import { getLangFromUrl, useTranslations } from "~/i18n"; import Layout from "./Layout.astro"; @@ -18,7 +17,6 @@ interface Props { skillInformation: ComponentProps; img: ImageMetadata; contact: string; - nationalTeam: ComponentProps[]; timelineEntries: ComponentProps["entries"]; additionalLinks: ComponentProps[]; } @@ -28,7 +26,6 @@ const { skillDescription, skillInformation, img, - nationalTeam, timelineEntries, additionalLinks, contact, diff --git a/src/pages/[lang]/our-team.astro b/src/pages/[lang]/our-team.astro new file mode 100644 index 0000000..1cccc77 --- /dev/null +++ b/src/pages/[lang]/our-team.astro @@ -0,0 +1,17 @@ +--- +import { getLangFromUrl, localeParams, useTranslations } from "~/i18n/utils"; +import Hero from "../../components/Hero.astro"; +import TeamPage from "../../components/team/Team.astro"; +import Layout from "../../layouts/Layout.astro"; +import TeamImage from "~/assets/img/team.webp"; + +export const getStaticPaths = localeParams; + +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +--- + + + + + diff --git a/src/pages/en/it-software-solutions-for-business.astro b/src/pages/en/it-software-solutions-for-business.astro index fb2383e..59b1136 100644 --- a/src/pages/en/it-software-solutions-for-business.astro +++ b/src/pages/en/it-software-solutions-for-business.astro @@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill09"]; }} img={Skill09Image} contact="mailto:skills@kapplers.de" - nationalTeam={[]} timelineEntries={Object.values(historyData)} additionalLinks={[ { diff --git a/src/pages/en/mobile-applications-development.astro b/src/pages/en/mobile-applications-development.astro index 6ff13f5..3cbdcf5 100644 --- a/src/pages/en/mobile-applications-development.astro +++ b/src/pages/en/mobile-applications-development.astro @@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill08"]; }} img={Skill08Image} contact="mailto:worldskills@jonas-wanke.de" - nationalTeam={[]} timelineEntries={Object.values(historyData)} additionalLinks={[ { diff --git a/src/pages/en/web-technologies.astro b/src/pages/en/web-technologies.astro index 1d6d52a..d486ca1 100644 --- a/src/pages/en/web-technologies.astro +++ b/src/pages/en/web-technologies.astro @@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill17"]; }} img={Skill09Image} contact="mailto:glenn.skrzypczak@gmail.com" - nationalTeam={[]} timelineEntries={Object.values(historyData)} additionalLinks={[ { diff --git a/src/pages/it-software-solutions-for-business.astro b/src/pages/it-software-solutions-for-business.astro index 87e0753..e9c85e9 100644 --- a/src/pages/it-software-solutions-for-business.astro +++ b/src/pages/it-software-solutions-for-business.astro @@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill09"]; }} img={Skill09Image} contact="mailto:skills@kapplers.de" - nationalTeam={[]} timelineEntries={Object.values(historyData)} additionalLinks={[ { diff --git a/src/pages/mobile-applications-development.astro b/src/pages/mobile-applications-development.astro index 7ff2133..1280463 100644 --- a/src/pages/mobile-applications-development.astro +++ b/src/pages/mobile-applications-development.astro @@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill08"]; }} img={Skill08Image} contact="mailto:worldskills@jonas-wanke.de" - nationalTeam={[]} timelineEntries={Object.values(historyData)} additionalLinks={[ { diff --git a/src/pages/web-technologies.astro b/src/pages/web-technologies.astro index 82232b1..ec6f784 100644 --- a/src/pages/web-technologies.astro +++ b/src/pages/web-technologies.astro @@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill17"]; }} img={Skill09Image} contact="mailto:glenn.skrzypczak@gmail.com" - nationalTeam={[]} timelineEntries={Object.values(historyData)} additionalLinks={[ {