diff --git a/src/views/ChoreEdit/ChoreEdit.jsx b/src/views/ChoreEdit/ChoreEdit.jsx
index e3eec30..62c39fe 100644
--- a/src/views/ChoreEdit/ChoreEdit.jsx
+++ b/src/views/ChoreEdit/ChoreEdit.jsx
@@ -22,6 +22,7 @@ import {
Snackbar,
Stack,
Switch,
+ Textarea,
Typography,
} from '@mui/joy'
import moment from 'moment'
@@ -61,6 +62,7 @@ const ChoreEdit = () => {
const [userHistory, setUserHistory] = useState({})
const { choreId } = useParams()
const [name, setName] = useState('')
+ const [description, setDescription] = useState('')
const [confirmModelConfig, setConfirmModelConfig] = useState({})
const [assignees, setAssignees] = useState([])
const [performers, setPerformers] = useState([])
@@ -186,6 +188,7 @@ const ChoreEdit = () => {
const chore = {
id: Number(choreId),
name: name,
+ description: description,
assignees: assignees,
dueDate: dueDate ? new Date(dueDate).toISOString() : null,
frequencyType: frequencyType,
@@ -241,6 +244,7 @@ const ChoreEdit = () => {
.then(data => {
setChore(data.res)
setName(data.res.name ? data.res.name : '')
+ setDescription(data.res.description ? data.res.description : '')
setAssignees(data.res.assignees ? data.res.assignees : [])
setAssignedTo(data.res.assignedTo)
setFrequencyType(
@@ -379,11 +383,22 @@ const ChoreEdit = () => {
Title :
- What is this chore about?
+ What is the name of this chore?
setName(e.target.value)} />
{errors.name}
+
+
+ Details:
+ What is this chore about?
+
+
Assignees :
Who can do this chore?
diff --git a/src/views/ChoreEdit/ChoreView.jsx b/src/views/ChoreEdit/ChoreView.jsx
index 82e2828..2ce44fd 100644
--- a/src/views/ChoreEdit/ChoreView.jsx
+++ b/src/views/ChoreEdit/ChoreView.jsx
@@ -3,9 +3,11 @@ import {
CancelScheduleSend,
Check,
Checklist,
+ CloseFullscreen,
Edit,
History,
LowPriority,
+ OpenInFull,
PeopleAlt,
Person,
SwitchAccessShortcut,
@@ -21,6 +23,7 @@ import {
Dropdown,
FormControl,
Grid,
+ IconButton,
Input,
ListItem,
ListItemContent,
@@ -74,6 +77,7 @@ const ChoreView = () => {
const [completedDate, setCompletedDate] = useState(null)
const [confirmModelConfig, setConfirmModelConfig] = useState({})
const [chorePriority, setChorePriority] = useState(null)
+ const [isDescriptionOpen, setIsDescriptionOpen] = useState(false)
useEffect(() => {
Promise.all([
GetChoreDetailById(choreId).then(resp => {
@@ -420,6 +424,47 @@ const ChoreView = () => {
+ {chore.description && (
+ <>
+
+ Description :
+
+
+
+ {
+ setIsDescriptionOpen(!isDescriptionOpen)
+ }}
+ size='sm'
+ sx={{
+ position: 'absolute',
+ bottom: 5,
+ right: 5,
+ }}
+ >
+ {isDescriptionOpen ? : }
+
+
+
+ {chore.description || '--'}
+
+
+
+ >
+ )}
+
{chore.notes && (
<>
diff --git a/src/views/components/AddTaskModal.jsx b/src/views/components/AddTaskModal.jsx
index fcc1bf5..26174d9 100644
--- a/src/views/components/AddTaskModal.jsx
+++ b/src/views/components/AddTaskModal.jsx
@@ -195,6 +195,11 @@ const TaskInput = ({ autoFocus, onChoreUpdate }) => {
regex: /(every day|daily)$/i,
name: 'Every day',
},
+ {
+ frequencyType: 'daily:time',
+ regex: /every (morning|noon|afternoon|evening|night)$/i,
+ name: 'Every {time} daily',
+ },
{
frequencyType: 'weekly',
regex: /(every week|weekly)$/i,
@@ -324,6 +329,17 @@ const TaskInput = ({ autoFocus, onChoreUpdate }) => {
name: pattern.name,
cleanedSentence: inputSentence.replace(match[0], '').trim(),
}
+ case 'daily:time':
+ result.frequency = 1
+ result.frequencyMetadata.unit = 'days'
+ result.frequencyType = 'daily'
+ return {
+ result,
+ name: pattern.name.replace('{time}', match[1]),
+ // replace every x with ''
+
+ cleanedSentence: inputSentence.replace(match[0], '').trim(),
+ }
case 'day_of_the_month:every':
result.frequency = parseInt(match[1], 10)