diff options
author | Mo Tarbin <mhed.t91@gmail.com> | 2024-08-10 02:08:49 -0400 |
---|---|---|
committer | Mo Tarbin <mhed.t91@gmail.com> | 2024-08-10 02:08:49 -0400 |
commit | e9745683748ac5ecfdf704607441a3204d8c5516 (patch) | |
tree | 34004796c608c7c287402582fc23e2a0c8ba1e86 /src | |
parent | b5f17dc7a6f706a302d01fc129f5bf7edf6d8471 (diff) | |
download | donetick-frontend-e9745683748ac5ecfdf704607441a3204d8c5516.tar.gz donetick-frontend-e9745683748ac5ecfdf704607441a3204d8c5516.tar.bz2 donetick-frontend-e9745683748ac5ecfdf704607441a3204d8c5516.zip |
Update Fetcher.jsx to include UpdateChoreAssignee function and ChoreCard.jsx to handle assignee change
Diffstat (limited to 'src')
-rw-r--r-- | src/utils/Fetcher.jsx | 10 | ||||
-rw-r--r-- | src/views/Chores/ChoreCard.jsx | 23 | ||||
-rw-r--r-- | src/views/Modals/Inputs/SelectModal.jsx | 4 | ||||
-rw-r--r-- | src/views/components/NavBar.jsx | 10 |
4 files changed, 33 insertions, 14 deletions
diff --git a/src/utils/Fetcher.jsx b/src/utils/Fetcher.jsx index 17b6cd9..5b3bbd9 100644 --- a/src/utils/Fetcher.jsx +++ b/src/utils/Fetcher.jsx @@ -83,6 +83,15 @@ const SkipChore = id => { body: JSON.stringify({}), }) } + +const UpdateChoreAssignee = (id, assignee) => { + return Fetch(`${API_URL}/chores/${id}/assignee`, { + method: 'PUT', + headers: HEADERS(), + body: JSON.stringify({ assignee:Number(assignee) }), + }) +} + const CreateChore = chore => { return Fetch(`${API_URL}/chores/`, { method: 'POST', @@ -306,4 +315,5 @@ export { UpdateChoreHistory, UpdateThingState, UpdateUserDetails, + UpdateChoreAssignee, } diff --git a/src/views/Chores/ChoreCard.jsx b/src/views/Chores/ChoreCard.jsx index 97e407a..fdf025e 100644 --- a/src/views/Chores/ChoreCard.jsx +++ b/src/views/Chores/ChoreCard.jsx @@ -39,7 +39,7 @@ import moment from 'moment' import React, { useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { API_URL } from '../../Config' -import { MarkChoreComplete, SkipChore } from '../../utils/Fetcher' +import { MarkChoreComplete, SkipChore, UpdateChoreAssignee } from '../../utils/Fetcher' import { Fetch } from '../../utils/TokenManager' import ConfirmationModal from '../Modals/Inputs/ConfirmationModal' import DateModal from '../Modals/Inputs/DateModal' @@ -219,7 +219,16 @@ const ChoreCard = ({ }) } const handleAssigneChange = assigneeId => { - // TODO: Implement assignee change + UpdateChoreAssignee(chore.id, assigneeId).then(response => { + if (response.ok) { + response.json().then(data => { + const newChore = data.res + onChoreUpdate(newChore, 'assigned') + }) + } + } + ) + } const handleCompleteWithNote = note => { Fetch(`${API_URL}/chores/${chore.id}/do`, { @@ -547,10 +556,6 @@ const ChoreCard = ({ <RecordVoiceOver /> Delegate to someone else </MenuItem> - <MenuItem> - <HowToReg /> - Complete as someone else - </MenuItem> <Divider /> <MenuItem onClick={() => { @@ -620,10 +625,14 @@ const ChoreCard = ({ options={performers} displayKey='displayName' title={`Delegate to someone else`} + placeholder={'Select a performer'} onClose={() => { setIsChangeAssigneeModalOpen(false) }} - onSave={handleAssigneChange} + onSave={(selected)=>{ + handleAssigneChange(selected.id) + } + } /> <ConfirmationModal config={confirmModelConfig} /> <TextModal diff --git a/src/views/Modals/Inputs/SelectModal.jsx b/src/views/Modals/Inputs/SelectModal.jsx index 61e7ae9..f879bf0 100644 --- a/src/views/Modals/Inputs/SelectModal.jsx +++ b/src/views/Modals/Inputs/SelectModal.jsx @@ -9,7 +9,7 @@ import { } from '@mui/joy' import React from 'react' -function SelectModal({ isOpen, onClose, onSave, options, title, displayKey }) { +function SelectModal({ isOpen, onClose, onSave, options, title, displayKey,placeholder }) { const [selected, setSelected] = React.useState(null) const handleSave = () => { onSave(options.find(item => item.id === selected)) @@ -20,7 +20,7 @@ function SelectModal({ isOpen, onClose, onSave, options, title, displayKey }) { <Modal open={isOpen} onClose={onClose}> <ModalDialog> <Typography variant='h4'>{title}</Typography> - <Select> + <Select placeholder={placeholder}> {options.map((item, index) => ( <Option value={item.id} diff --git a/src/views/components/NavBar.jsx b/src/views/components/NavBar.jsx index 832a112..5537246 100644 --- a/src/views/components/NavBar.jsx +++ b/src/views/components/NavBar.jsx @@ -30,11 +30,11 @@ const links = [ label: 'Home', icon: <HomeOutlined />, }, - { - to: '/chores', - label: 'Desktop View', - icon: <ListAltRounded />, - }, + // { + // to: '/chores', + // label: 'Desktop View', + // icon: <ListAltRounded />, + // }, { to: '/things', label: 'Things', |