Update userLabels state in ChoreEdit component
This commit is contained in:
parent
7c36e2d641
commit
43608a3744
2 changed files with 23 additions and 5 deletions
|
@ -46,6 +46,7 @@ const ASSIGN_STRATEGIES = [
|
||||||
'least_assigned',
|
'least_assigned',
|
||||||
'least_completed',
|
'least_completed',
|
||||||
'keep_last_assigned',
|
'keep_last_assigned',
|
||||||
|
'random_except_last_assigned',
|
||||||
]
|
]
|
||||||
const REPEAT_ON_TYPE = ['interval', 'days_of_the_week', 'day_of_the_month']
|
const REPEAT_ON_TYPE = ['interval', 'days_of_the_week', 'day_of_the_month']
|
||||||
|
|
||||||
|
@ -88,7 +89,15 @@ const ChoreEdit = () => {
|
||||||
const [snackbarMessage, setSnackbarMessage] = useState('')
|
const [snackbarMessage, setSnackbarMessage] = useState('')
|
||||||
const [snackbarColor, setSnackbarColor] = useState('warning')
|
const [snackbarColor, setSnackbarColor] = useState('warning')
|
||||||
const [addLabelModalOpen, setAddLabelModalOpen] = useState(false)
|
const [addLabelModalOpen, setAddLabelModalOpen] = useState(false)
|
||||||
const { data: userLabels, isLoading: isUserLabelsLoading } = useLabels()
|
const { data: userLabelsRaw, isLoading: isUserLabelsLoading } = useLabels()
|
||||||
|
|
||||||
|
const [userLabels, setUserLabels] = useState([])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (userLabelsRaw) {
|
||||||
|
setUserLabels(userLabelsRaw)
|
||||||
|
}
|
||||||
|
}, [userLabelsRaw])
|
||||||
|
|
||||||
const Navigate = useNavigate()
|
const Navigate = useNavigate()
|
||||||
|
|
||||||
|
@ -938,7 +947,13 @@ const ChoreEdit = () => {
|
||||||
<LabelModal
|
<LabelModal
|
||||||
isOpen={addLabelModalOpen}
|
isOpen={addLabelModalOpen}
|
||||||
onSave={label => {
|
onSave={label => {
|
||||||
setLabels([...labels, label])
|
console.log('label', label)
|
||||||
|
|
||||||
|
const newLabels = [...labelsV2]
|
||||||
|
newLabels.push(label)
|
||||||
|
setUserLabels([...userLabels, label])
|
||||||
|
|
||||||
|
setLabelsV2([...labelsV2, label])
|
||||||
setAddLabelModalOpen(false)
|
setAddLabelModalOpen(false)
|
||||||
}}
|
}}
|
||||||
onClose={() => setAddLabelModalOpen(false)}
|
onClose={() => setAddLabelModalOpen(false)}
|
||||||
|
|
|
@ -40,7 +40,6 @@ function LabelModal({ isOpen, onClose, onSave, label }) {
|
||||||
setError('Name cannot be empty')
|
setError('Name cannot be empty')
|
||||||
return false
|
return false
|
||||||
} else if (
|
} else if (
|
||||||
!label ||
|
|
||||||
userLabels.some(
|
userLabels.some(
|
||||||
userLabel => userLabel.name === labelName && userLabel.id !== label.id,
|
userLabel => userLabel.name === labelName && userLabel.id !== label.id,
|
||||||
)
|
)
|
||||||
|
@ -69,8 +68,12 @@ function LabelModal({ isOpen, onClose, onSave, label }) {
|
||||||
setError('Failed to save label. Please try again.')
|
setError('Failed to save label. Please try again.')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
queryClient.invalidateQueries('labels').then(() => {
|
res.json().then(data => {
|
||||||
onSave({ id: label?.id, name: labelName, color })
|
if (data.error) {
|
||||||
|
setError('Failed to save label. Please try again.')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
onSave({ id: data?.res?.id, name: labelName, color })
|
||||||
onClose()
|
onClose()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Reference in a new issue