- {work.description}
+ {typeof work.description === "string" ? (
+ {work.description}
+ ) : (
+ work.description?.map((desc) => {
+ return (
+
+
+ {work?.customBullet || "•"}
+
+ {desc}
+
+ );
+ })
+ )}
);
@@ -177,7 +194,7 @@ export default function Page() {
title={project.title}
description={project.description}
tags={project.techStack}
- link={"link" in project ? project.link.href : undefined}
+ link={"link" in project ? project.link?.href : undefined}
/>
);
})}
diff --git a/src/data/resume-data.tsx b/src/data/resume-data.tsx
index bedfae6e..64968225 100644
--- a/src/data/resume-data.tsx
+++ b/src/data/resume-data.tsx
@@ -18,8 +18,9 @@ import {
YearProgressLogo,
} from "@/images/logos";
import { GitHubIcon, LinkedInIcon, XIcon } from "@/components/icons";
+import { ResumeData } from "./resume-data.types";
-export const RESUME_DATA = {
+export const RESUME_DATA: ResumeData = {
name: "Bartosz Jarocki",
initials: "BJ",
location: "Wrocław, Poland, CET",
diff --git a/src/data/resume-data.types.ts b/src/data/resume-data.types.ts
new file mode 100644
index 00000000..074ac2e6
--- /dev/null
+++ b/src/data/resume-data.types.ts
@@ -0,0 +1,64 @@
+import { StaticImageData } from "next/image";
+export type ResumeData = {
+ name: string;
+ initials: string;
+ location: string;
+ locationLink: string;
+ about: string;
+ summary: string;
+ avatarUrl: string;
+ personalWebsiteUrl: string;
+ contact: {
+ email: string;
+ tel: string;
+ social: {
+ name: string;
+ url: string;
+ icon: React.ComponentType;
+ }[];
+ };
+ education: {
+ school: string;
+ degree: string;
+ grade?: string;
+ start: string;
+ end: string;
+ }[];
+ work: {
+ company: string;
+ link: string;
+ badges: string[];
+ title: string;
+ logo: React.ComponentType<{}> | StaticImageData;
+ start: string;
+ end: string;
+ description: string | string[];
+ customBullet?: string;
+ }[];
+ skills: string[];
+ projects: {
+ title: string;
+ techStack: string[];
+ description: string;
+ logo: React.ComponentType<{}> | StaticImageData;
+ link?: {
+ label: string;
+ href: string;
+ };
+ }[];
+ certification?: {
+ name: string;
+ providerName: string;
+ link: string;
+ issueDate: string;
+ expirationDate: string;
+ certificateId: string;
+ }[];
+ publication?: {
+ name: string;
+ providerName: string;
+ link: string;
+ issueDate: string;
+ description: string;
+ }[];
+};