From 296b9862c9a880bf03778e25684f7ba5ab518f0f Mon Sep 17 00:00:00 2001 From: Dejvino Date: Fri, 26 May 2023 05:43:18 +0200 Subject: [PATCH] Add Education --- src/PersonalData.ts | 14 +++++++++- src/PersonalDataTypes.ts | 3 +++ src/app/components/Education.tsx | 16 ++++++++++++ src/app/components/JobCard.tsx | 2 +- .../{JobsHistory.tsx => JobHistory.tsx} | 26 +++++++++++++------ src/app/components/WorkExperience.tsx | 16 ++++++++++++ src/app/page.tsx | 7 +++-- 7 files changed, 72 insertions(+), 12 deletions(-) create mode 100644 src/app/components/Education.tsx rename src/app/components/{JobsHistory.tsx => JobHistory.tsx} (51%) create mode 100644 src/app/components/WorkExperience.tsx diff --git a/src/PersonalData.ts b/src/PersonalData.ts index 6ae0b5c..15baa73 100644 --- a/src/PersonalData.ts +++ b/src/PersonalData.ts @@ -7,7 +7,9 @@ export const personalData: PersonalData = { contacts: [ {icon: 'browser-firefox', text: 'www.dejvino.cz'}, {icon: 'envelope-at', text: 'explosive@dejvino.cz'}, - {icon: 'git', text: 'https://git.dejvino.cz'} + {icon: 'git', text: 'https://git.dejvino.cz'}, + {icon: 'telephone', text: '+420 111 222 333'}, + {icon: 'geo-alt', text: 'Brno, Czechia'} ], jobs: { current: { @@ -25,6 +27,16 @@ export const personalData: PersonalData = { } ] }, + education: { + previous: [ + { + position: 'Information Technology (unfinished)', + company: 'University of Benimoto', + timerange: '2010 - 2017', + description: '', + } + ] + }, skills: { primary: ['Java', 'TypeScript', 'JavaScript'], secondary: ['Kotlin', 'Go'], diff --git a/src/PersonalDataTypes.ts b/src/PersonalDataTypes.ts index 85e8a5c..cdceffc 100644 --- a/src/PersonalDataTypes.ts +++ b/src/PersonalDataTypes.ts @@ -15,6 +15,8 @@ export type Jobs = { previous?: Job[] } +export type Education = Jobs; + export type Skills = { primary: string[], secondary?: string[], @@ -26,6 +28,7 @@ export type PersonalData = { brief: string, contacts: Contact[], jobs: Jobs, + education?: Education, skills: Skills, interests: string[] } diff --git a/src/app/components/Education.tsx b/src/app/components/Education.tsx new file mode 100644 index 0000000..227795e --- /dev/null +++ b/src/app/components/Education.tsx @@ -0,0 +1,16 @@ + +import React from 'react'; +import { usePersonContext } from './PersonContext'; +import JobHistory from './JobHistory'; + +export default function WorkExperience() { + const person = usePersonContext() + + return person.education && ( + + ) +} diff --git a/src/app/components/JobCard.tsx b/src/app/components/JobCard.tsx index 5af9179..806feaf 100644 --- a/src/app/components/JobCard.tsx +++ b/src/app/components/JobCard.tsx @@ -11,7 +11,7 @@ export type Props = { }; export default function JobCard(props: Props) { - const focusRef = useAutoFocus('position ' + [props.position, props.company].join(', ')) + const focusRef = useAutoFocus([props.position, props.company, props.timerange].join(' - ')) return ( {props.heading && ( diff --git a/src/app/components/JobsHistory.tsx b/src/app/components/JobHistory.tsx similarity index 51% rename from src/app/components/JobsHistory.tsx rename to src/app/components/JobHistory.tsx index 1192a95..f56f340 100644 --- a/src/app/components/JobsHistory.tsx +++ b/src/app/components/JobHistory.tsx @@ -4,25 +4,35 @@ import Container from 'react-bootstrap/Container'; import Col from 'react-bootstrap/Col'; import Row from 'react-bootstrap/Row'; import JobCard from './JobCard'; -import { usePersonContext } from './PersonContext'; import { partition } from '../utils'; +import { Jobs } from '@/PersonalDataTypes'; -const entriesPerRow = 2 +export type Props = { + jobs: Jobs, + heading: string, + entriesPerRow?: number, + currentHeading?: string, +} -export default function JobsHistory() { - const person = usePersonContext() +const defaultProps = { + entriesPerRow: 2, + currentHeading: 'Currently', +} +export default function JobHistory(props: Props) { + const jobs = props.jobs + const config = {...defaultProps, ...props} return ( -

Experience

- {person.jobs.current && ( +

{config.heading}

+ {jobs.current && ( - + )} - {partition(person.jobs.previous, entriesPerRow).map((jobs, index) => ( + {partition(jobs.previous, config.entriesPerRow).map((jobs, index) => ( {(jobs.map((job, subindex) => ( diff --git a/src/app/components/WorkExperience.tsx b/src/app/components/WorkExperience.tsx new file mode 100644 index 0000000..0ec6d22 --- /dev/null +++ b/src/app/components/WorkExperience.tsx @@ -0,0 +1,16 @@ + +import React from 'react'; +import { usePersonContext } from './PersonContext'; +import JobHistory from './JobHistory'; + +export default function WorkExperience() { + const person = usePersonContext() + + return ( + + ) +} diff --git a/src/app/page.tsx b/src/app/page.tsx index aae3a45..d8a61fd 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,10 +1,12 @@ 'use client' import React from 'react'; import Container from 'react-bootstrap/Container'; -import JobsHistory from './components/JobsHistory'; +import JobsHistory from './components/WorkExperience'; import AboutBrief from './components/AboutBrief'; import Skills from './components/Skills'; import { Contacts } from './components/Contacts'; +import WorkExperience from './components/WorkExperience'; +import Education from './components/Education'; export default function Home() { return ( @@ -12,7 +14,8 @@ export default function Home() { - + + )