Allow setting job to "No job" after it has been set

This commit is contained in:
Justin Edmund 2022-12-23 15:34:13 -08:00
parent b329d2b27a
commit 2d2497b8da
2 changed files with 24 additions and 25 deletions

View file

@ -175,23 +175,26 @@ const CharacterGrid = (props: Props) => {
} }
// Methods: Saving job and job skills // Methods: Saving job and job skills
const saveJob = function (job: Job) { const saveJob = async function (job?: Job) {
const payload = { const payload = {
party: { party: {
job_id: job ? job.id : '', job_id: job ? job.id : -1,
}, },
} }
if (party.id && appState.party.editable) { if (party.id && appState.party.editable) {
api.updateJob({ partyId: party.id, params: payload }).then((response) => { const response = await api.updateJob({
const newParty = response.data partyId: party.id,
params: payload,
setJob(newParty.job)
appState.party.job = newParty.job
setJobSkills(newParty.job_skills)
appState.party.jobSkills = newParty.job_skills
}) })
const newParty = response.data
setJob(newParty.job)
appState.party.job = newParty.job
setJobSkills(newParty.job_skills)
appState.party.jobSkills = newParty.job_skills
} }
} }

View file

@ -18,7 +18,7 @@ interface Props {
job?: Job job?: Job
jobSkills: JobSkillObject jobSkills: JobSkillObject
editable: boolean editable: boolean
saveJob: (job: Job) => void saveJob: (job?: Job) => void
saveSkill: (skill: JobSkill, position: number) => void saveSkill: (skill: JobSkill, position: number) => void
} }
@ -41,17 +41,15 @@ const JobSection = (props: Props) => {
useEffect(() => { useEffect(() => {
// Set current job based on ID // Set current job based on ID
if (props.job) { setJob(props.job)
setJob(props.job) setSkills({
setSkills({ 0: props.jobSkills[0],
0: props.jobSkills[0], 1: props.jobSkills[1],
1: props.jobSkills[1], 2: props.jobSkills[2],
2: props.jobSkills[2], 3: props.jobSkills[3],
3: props.jobSkills[3], })
})
if (selectRef.current) selectRef.current.value = props.job.id if (selectRef.current && props.job) selectRef.current.value = props.job.id
}
}, [props]) }, [props])
useEffect(() => { useEffect(() => {
@ -68,10 +66,8 @@ const JobSection = (props: Props) => {
}, [job]) }, [job])
function receiveJob(job?: Job) { function receiveJob(job?: Job) {
if (job) { setJob(job)
setJob(job) props.saveJob(job)
props.saveJob(job)
}
} }
function generateImageUrl() { function generateImageUrl() {