diff --git a/src/assets/data/team.json b/src/assets/data/team.json new file mode 100644 index 0000000..e00e476 --- /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/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/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/olaf-kappler.webp b/src/assets/img/team/olaf-kappler.webp new file mode 100644 index 0000000..d95a7ca Binary files /dev/null and b/src/assets/img/team/olaf-kappler.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 817226e..3377fd3 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -46,13 +46,12 @@ const skills = [ - +

& { +interface Props { name: string; - img: string; - info?: string; -}; + lastRole: Record; + imagePath?: string; + skill?: Record; + hasMultipleRoles?: boolean; +} -const { name, img, info, links = [] } = Astro.props; +const { + name, + imagePath, + 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.astro b/src/components/team/PersonImage.astro new file mode 100644 index 0000000..c73d804 --- /dev/null +++ b/src/components/team/PersonImage.astro @@ -0,0 +1,23 @@ +--- +import { Image } from "astro:assets"; +import { clsx } from "clsx"; +import WsgHandsImage from "~/assets/img/wsg-hands.svg"; + +interface Props { + imagePath?: string; +} + +const { imagePath } = Astro.props; +const images = import.meta.glob<{ default: ImageMetadata }>( + "/src/assets/**/*.{jpeg,jpg,png,gif,webp}", +); +--- + + diff --git a/src/components/team/Team.astro b/src/components/team/Team.astro index 78c968d..e653b5a 100644 --- a/src/components/team/Team.astro +++ b/src/components/team/Team.astro @@ -1,23 +1,24 @@ --- -import type { ComponentProps } from "astro/types"; +import team from "~/assets/data/team.json"; import Person from "./Person.astro"; - -interface Props { - members: ComponentProps[]; -} - -const { members } = Astro.props; --- -
    - { - 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..d710bbc --- /dev/null +++ b/src/pages/[lang]/our-team.astro @@ -0,0 +1,17 @@ +--- +import TeamImage from "~/assets/img/team.webp"; +import { getLangFromUrl, localeParams, useTranslations } from "~/i18n/utils"; +import Hero from "../../components/Hero.astro"; +import TeamList from "../../components/team/Team.astro"; +import Layout from "../../layouts/Layout.astro"; + +export const getStaticPaths = localeParams; + +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +--- + + + + + 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/software-applications-development.astro b/src/pages/en/software-applications-development.astro index db005ec..1724c38 100644 --- a/src/pages/en/software-applications-development.astro +++ b/src/pages/en/software-applications-development.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/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/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/software-applications-development.astro b/src/pages/software-applications-development.astro index 87e0753..e9c85e9 100644 --- a/src/pages/software-applications-development.astro +++ b/src/pages/software-applications-development.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/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={[ {