diff --git a/src/models/Dev.ts b/src/models/Dev.ts index 6283b84..6bddd26 100644 --- a/src/models/Dev.ts +++ b/src/models/Dev.ts @@ -81,6 +81,7 @@ export const dummyDev: Dev = { 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Blanditiis unde quae vero enim adipisci voluptas magni sapiente reprehenderit error minima.', experiences: [ { + id: 1, company: 'Microsoft', from: new Date(2011, 10), to: 'Current', @@ -90,6 +91,7 @@ export const dummyDev: Dev = { 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Voluptas corrupti rem eius, accusantium ipsum vel eveniet magnam voluptatum? Minus, voluptatum!', }, { + id: 0, company: 'Sun Microsystems', location: 'USA', from: new Date(2004, 10), @@ -101,6 +103,7 @@ export const dummyDev: Dev = { ], educations: [ { + id: 0, school: 'University of Washington', from: new Date(1993, 9), to: new Date(1999, 6), diff --git a/src/pages/AddEducation.tsx b/src/pages/AddEducation.tsx index d927097..bdfb2c8 100644 --- a/src/pages/AddEducation.tsx +++ b/src/pages/AddEducation.tsx @@ -62,6 +62,7 @@ const AddEducation: FC = ({firebase, educations}) => { }: FormData): Education => { if (current) to = 'Current'; const newEdu: Education = { + id: educations.length, school, degree, field, diff --git a/src/pages/AddExperience.tsx b/src/pages/AddExperience.tsx index 6ee63e9..7382cab 100644 --- a/src/pages/AddExperience.tsx +++ b/src/pages/AddExperience.tsx @@ -64,6 +64,7 @@ const AddExperience: FC = ({firebase, experiences}) => { }: FormData): Experience => { if (current) to = 'Current'; const newExp: Experience = { + id: experiences.length, position, company, location, @@ -74,7 +75,6 @@ const AddExperience: FC = ({firebase, experiences}) => { return newExp; }; const newExp = makeExperience(formData); - console.log(JSON.stringify(newExp, null, 4)); try { firebase.updateProfile( diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 3b24af1..4332655 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -1,4 +1,4 @@ -import React, {FC} from 'react'; +import React, {FC, MouseEvent} from 'react'; // Redux import {WithFirebaseProps} from 'react-redux-firebase'; import {enhance} from '../store/firebase'; @@ -32,6 +32,32 @@ const Dashboard: FC = ({ educations, }) => { const logout = () => firebase.logout(); + + /** + * + * @param id key of the entry to remove + * @param entries array of credential educations + */ + const deleteEduEntry = (id: number, entries: Education[]) => ( + e: MouseEvent, + ) => { + firebase.updateProfile({ + educations: entries.filter((e: Education) => e.id !== id), + }); + }; + /** + * + * @param id key of the entry to remove + * @param entries array of credential experiences + */ + const deleteExpEntry = (id: number, entries: Experience[]) => ( + e: MouseEvent, + ) => { + firebase.updateProfile({ + experiences: entries.filter((e: Experience) => e.id !== id), + }); + }; + return (
@@ -58,13 +84,18 @@ const Dashboard: FC = ({ - {experiences?.map((exp: Experience, i: number) => ( - + {experiences?.map((exp: Experience) => ( + {exp.company} {exp.position} {getTimePeriod(exp.from, exp.to)} - + ))} @@ -83,12 +114,17 @@ const Dashboard: FC = ({ {educations?.map((edu: Education, i: number) => ( - + {edu.school} {edu.degree} {getTimePeriod(edu.from, edu.to)} - + ))} diff --git a/src/types/Education.ts b/src/types/Education.ts index 4d454ec..b696b38 100644 --- a/src/types/Education.ts +++ b/src/types/Education.ts @@ -1,6 +1,7 @@ import TimePeriod from '../types/TimePeriod'; interface Education { + id: number; school: string; degree: string; from: TimePeriod; diff --git a/src/types/Experience.ts b/src/types/Experience.ts index 9d28bfd..3eda35c 100644 --- a/src/types/Experience.ts +++ b/src/types/Experience.ts @@ -1,6 +1,7 @@ import TimePeriod from '../types/TimePeriod'; interface Experience { + id: number; company: string; from: TimePeriod; to: TimePeriod;