diff --git a/components/pages/(tablet_pages)/chores/SingleUserChoreList.tsx b/components/pages/(tablet_pages)/chores/SingleUserChoreList.tsx
index 38f246f..f05bfed 100644
--- a/components/pages/(tablet_pages)/chores/SingleUserChoreList.tsx
+++ b/components/pages/(tablet_pages)/chores/SingleUserChoreList.tsx
@@ -1,5 +1,5 @@
import { View, Text, TouchableOpacity, Icon } from "react-native-ui-lib";
-import React, { useState } from "react";
+import React, {useEffect, useState} from "react";
import { useToDosContext } from "@/contexts/ToDosContext";
import {
addDays,
@@ -20,7 +20,7 @@ const groupToDosByDate = (toDos: IToDo[]) => {
const dateB = b.date === null ? new Date() : b.date;
return dateA - dateB;
});
-
+
return sortedTodos.reduce(
(groups, toDo) => {
let dateKey;
@@ -44,7 +44,7 @@ const groupToDosByDate = (toDos: IToDo[]) => {
today.setHours(0, 0, 0, 0);
return date < today;
};
-
+
if (isOverdue(toDo.date) && !toDo.done) {
dateKey = "Overdue";
} else if (toDo.date === null || isToday(toDo.date)) {
@@ -95,8 +95,18 @@ const filterToDosByUser = (toDos: IToDo[], uid: string | undefined) => {
const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
const { toDos } = useToDosContext();
- const userTodos = filterToDosByUser(toDos, user.uid);
- const groupedToDos = groupToDosByDate(userTodos);
+ const [localTodos, setLocalTodos] = useState([]);
+ const [groupedToDos, setGroupedToDos] = useState([]);
+
+ useEffect(() => {
+ const userTodos = filterToDosByUser(toDos, user.uid);
+ setLocalTodos(userTodos);
+ }, [toDos, user]);
+
+ useEffect(() => {
+ const grouped = groupToDosByDate(localTodos);
+ setGroupedToDos(grouped);
+ }, [localTodos]);
const [expandedGroups, setExpandedGroups] = useState<{
[key: string]: boolean;
@@ -186,7 +196,12 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
{sortedItems.map((item) => (
-
+
))}
);
@@ -235,6 +250,8 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
key={item.id}
item={item}
is7Days={dateKey === "Next 7 Days"}
+ localTodos={localTodos}
+ setLocalTodos={setLocalTodos}
/>
))}
@@ -278,7 +295,7 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
{expandNoDate &&
noDateToDos
.sort((a, b) => Number(a.done) - Number(b.done))
- .map((item) => )}
+ .map((item) => )}
)}
diff --git a/hooks/firebase/useGetTodos.ts b/hooks/firebase/useGetTodos.ts
index f2f1ad5..481e846 100644
--- a/hooks/firebase/useGetTodos.ts
+++ b/hooks/firebase/useGetTodos.ts
@@ -11,7 +11,7 @@ export const useGetTodos = () => {
queryFn: async () => {
let snapshot;
- if (profileData?.userType === ProfileType.PARENT) {
+ if (profileData?.userType === ProfileType.PARENT || profileData?.userType === ProfileType.FAMILY_DEVICE) {
snapshot = await firestore()
.collection("Todos")
.where("familyId", "==", profileData?.familyId)