diff --git a/src/views/ChoreEdit/ChoreEdit.jsx b/src/views/ChoreEdit/ChoreEdit.jsx index 0954c81..519df4c 100644 --- a/src/views/ChoreEdit/ChoreEdit.jsx +++ b/src/views/ChoreEdit/ChoreEdit.jsx @@ -46,7 +46,7 @@ const ASSIGN_STRATEGIES = [ 'least_assigned', 'least_completed', 'keep_last_assigned', - 'random_except_last_assigned' + 'random_except_last_assigned', ] const REPEAT_ON_TYPE = ['interval', 'days_of_the_week', 'day_of_the_month'] @@ -89,7 +89,15 @@ const ChoreEdit = () => { const [snackbarMessage, setSnackbarMessage] = useState('') const [snackbarColor, setSnackbarColor] = useState('warning') 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() @@ -939,7 +947,13 @@ const ChoreEdit = () => { { - setLabels([...labels, label]) + console.log('label', label) + + const newLabels = [...labelsV2] + newLabels.push(label) + setUserLabels([...userLabels, label]) + + setLabelsV2([...labelsV2, label]) setAddLabelModalOpen(false) }} onClose={() => setAddLabelModalOpen(false)} diff --git a/src/views/Modals/Inputs/LabelModal.jsx b/src/views/Modals/Inputs/LabelModal.jsx index 2fc03fb..3021611 100644 --- a/src/views/Modals/Inputs/LabelModal.jsx +++ b/src/views/Modals/Inputs/LabelModal.jsx @@ -40,7 +40,6 @@ function LabelModal({ isOpen, onClose, onSave, label }) { setError('Name cannot be empty') return false } else if ( - !label || userLabels.some( 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.') return } - queryClient.invalidateQueries('labels').then(() => { - onSave({ id: label?.id, name: labelName, color }) + res.json().then(data => { + if (data.error) { + setError('Failed to save label. Please try again.') + return + } + onSave({ id: data?.res?.id, name: labelName, color }) onClose() }) })