mirror of
https://github.com/urosran/cally.git
synced 2025-07-10 15:17:17 +00:00
- Fixed issue with family device not being able to see todos of the family
- Fixed issue with todos not being able to update on family device
This commit is contained in:
@ -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,
|
||||
@ -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 }) => {
|
||||
</View>
|
||||
|
||||
{sortedItems.map((item) => (
|
||||
<ToDoItem key={item.id} item={item} is7Days={false} />
|
||||
<ToDoItem
|
||||
key={item.id}
|
||||
item={item}
|
||||
is7Days={false}
|
||||
localTodos={localTodos}
|
||||
setLocalTodos={setLocalTodos}/>
|
||||
))}
|
||||
</View>
|
||||
);
|
||||
@ -235,6 +250,8 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
||||
key={item.id}
|
||||
item={item}
|
||||
is7Days={dateKey === "Next 7 Days"}
|
||||
localTodos={localTodos}
|
||||
setLocalTodos={setLocalTodos}
|
||||
/>
|
||||
))}
|
||||
</View>
|
||||
@ -278,7 +295,7 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
||||
{expandNoDate &&
|
||||
noDateToDos
|
||||
.sort((a, b) => Number(a.done) - Number(b.done))
|
||||
.map((item) => <ToDoItem key={item.id} item={item} />)}
|
||||
.map((item) => <ToDoItem key={item.id} item={item} localTodos={localTodos} setLocalTodos={setLocalTodos} />)}
|
||||
</View>
|
||||
)}
|
||||
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user