feat: streamline experience section
- Jobs can now be added by changing jobs.json
This commit is contained in:
@@ -1,34 +0,0 @@
|
||||
import { For } from "solid-js";
|
||||
import JobCard from "./JobCard";
|
||||
import { createSignal } from "solid-js";
|
||||
|
||||
const Experience = () => {
|
||||
const [jobs, _] = createSignal([
|
||||
{
|
||||
title: "Software Developer Engineer Intern",
|
||||
company: "Amazon Canada",
|
||||
location: "Toronto, Ontario, Canada",
|
||||
range: "May 2025 - August 2025",
|
||||
url: "https://flex.amazon.ca/",
|
||||
},
|
||||
{
|
||||
title: "Software Engineer Intern",
|
||||
company: "Cisco Canada",
|
||||
location: "Remote",
|
||||
range: "January 2023 - May 2023",
|
||||
url: "https://developer.cisco.com/docs/modeling-labs/cat-9000v/",
|
||||
},
|
||||
]);
|
||||
|
||||
return (
|
||||
<section class="mt-16 px-4">
|
||||
<h2 class="text-xl text-nord-1 font-bold mb-6">Experience</h2>
|
||||
|
||||
<div class="!flex !flex-col !gap-0.5v ml-2h">
|
||||
<For each={jobs()}>{(job) => <JobCard job={job} />}</For>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default Experience;
|
||||
17
src/components/Experience.tsx
Normal file
17
src/components/Experience.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import { For } from "solid-js";
|
||||
import JobCard from "./JobCard";
|
||||
import { jobs } from "~/data/jobs";
|
||||
|
||||
const Experience = () => {
|
||||
return (
|
||||
<section class="mt-16 px-4">
|
||||
<h2 class="text-xl text-nord-1 font-bold mb-6">Experience</h2>
|
||||
|
||||
<div class="!flex !flex-col !gap-0.5v ml-2h">
|
||||
<For each={jobs}>{(job) => <JobCard job={job} />}</For>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default Experience;
|
||||
@@ -1,4 +1,10 @@
|
||||
const JobCard = (props) => {
|
||||
import type { Job } from "~/types";
|
||||
|
||||
interface JobCardProps {
|
||||
job: Job;
|
||||
}
|
||||
|
||||
const JobCard = (props: JobCardProps) => {
|
||||
return (
|
||||
<div class="p-4">
|
||||
<h3 class="font-bold text-xl">
|
||||
16
src/data/jobs.json
Normal file
16
src/data/jobs.json
Normal file
@@ -0,0 +1,16 @@
|
||||
[
|
||||
{
|
||||
"title": "Software Developer Engineer Intern",
|
||||
"company": "Amazon Canada",
|
||||
"location": "Toronto, Ontario, Canada",
|
||||
"range": "May 2025 - August 2025",
|
||||
"url": "https://flex.amazon.ca/"
|
||||
},
|
||||
{
|
||||
"title": "Software Engineer Intern",
|
||||
"company": "Cisco Canada",
|
||||
"location": "Remote",
|
||||
"range": "January 2023 - May 2023",
|
||||
"url": "https://developer.cisco.com/docs/modeling-labs/cat-9000v/"
|
||||
}
|
||||
]
|
||||
4
src/data/jobs.ts
Normal file
4
src/data/jobs.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import Jobs from "./jobs.json";
|
||||
import type { Job } from "~/types";
|
||||
|
||||
export const jobs: Job[] = Jobs;
|
||||
@@ -8,6 +8,14 @@ export type Post = {
|
||||
description: string;
|
||||
};
|
||||
|
||||
export type Job = {
|
||||
title: string;
|
||||
company: string;
|
||||
location: string;
|
||||
range: string;
|
||||
url: string;
|
||||
};
|
||||
|
||||
export type Tag = {
|
||||
// id/name of tag
|
||||
id: string;
|
||||
|
||||
Reference in New Issue
Block a user