odin-codespace/cv-project/src/components/experienceForm.jsx
Smig 592ddc4c1f
Cv project (#17)
* feat: updated component

* feat: added components

* feat: fixed

* refactor(feat): added button, renamed variables

* feat: updated education info component

* feat: experience component added

* refactor: modular

* feat: new components, style, etc

* refactor: remove unneccessary divs

* feat(styling): yep

* feat(style): new font added for resume

* feat(styling): colors, btns, etc

* feat: basically done
2024-06-23 20:10:32 -04:00

128 lines
3.4 KiB
JavaScript

import { useState } from "react";
import Input from "./input";
import Button from "./button";
export default function ExperienceForm(props) {
return (
<>
<JobForm
setJobs={props.setEmploymentHistory}
jobs={props.employmentHistory}
isActive={props.showJobForm}
/>
</>
);
}
function JobForm({ isActive, jobs, setJobs }) {
const [employer, setEmployer] = useState("");
const [jobTitle, setJobTitle] = useState("");
const [jobDescription, setJobDescription] = useState([]);
const [employmentStart, setEmploymentStart] = useState("");
const [employmentEnd, setEmploymentEnd] = useState("");
const formStyle = {
display: "flex",
flexDirection: "column",
};
function clear() {
setEmployer("");
setJobTitle("");
setJobDescription("");
setEmploymentEnd("");
setEmploymentStart("");
}
function handleSubmit(event, stuff) {
event.preventDefault();
const key = crypto.randomUUID();
const newJob = { ...stuff, id: key };
setJobs([...jobs, newJob]);
clear();
}
return (
<>
{isActive ? (
<div className="job-info-form">
<h2 className="general-info-header">Employment History</h2>
<form action="" style={formStyle}>
<Input
name="employer"
label={true}
labelName="Employer"
type="text"
placeholder=""
value={employer}
onChange={(e) => setEmployer(e.target.value)}
/>
<Input
name="jobTitle"
label={true}
labelName="Job title"
type="text"
placeholder=""
value={jobTitle}
onChange={(e) => setJobTitle(e.target.value)}
/>
<Input
name="startDate"
label={true}
labelName="Start date"
type="text"
placeholder=""
value={employmentStart}
onChange={(e) => setEmploymentStart(e.target.value)}
/>
<Input
name="endDate"
label={true}
labelName="End date"
type="text"
placeholder=""
value={employmentEnd}
onChange={(e) => setEmploymentEnd(e.target.value)}
/>
<div className="input">
<label>Description</label>
<textarea
name="jobDescription"
value={jobDescription}
onChange={(e) => setJobDescription(e.target.value)}
rows="5"
maxLength="400"
/>
</div>
<div className="btn-group">
<Button
onClick={(e) =>
handleSubmit(e, {
employer,
jobTitle,
jobDescription,
employmentStart,
employmentEnd,
})
}
className="submit-btn"
text="Submit"
/>
<Button
onClick={(e) => {
e.preventDefault();
clear();
}}
className="clear-btn"
text="Clear"
/>
</div>
</form>
</div>
) : null}
</>
);
}