mirror of
https://github.com/urosran/cally.git
synced 2025-07-14 17:25:46 +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 { 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 { useToDosContext } from "@/contexts/ToDosContext";
|
||||||
import {
|
import {
|
||||||
addDays,
|
addDays,
|
||||||
@ -95,8 +95,18 @@ const filterToDosByUser = (toDos: IToDo[], uid: string | undefined) => {
|
|||||||
|
|
||||||
const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
||||||
const { toDos } = useToDosContext();
|
const { toDos } = useToDosContext();
|
||||||
const userTodos = filterToDosByUser(toDos, user.uid);
|
const [localTodos, setLocalTodos] = useState([]);
|
||||||
const groupedToDos = groupToDosByDate(userTodos);
|
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<{
|
const [expandedGroups, setExpandedGroups] = useState<{
|
||||||
[key: string]: boolean;
|
[key: string]: boolean;
|
||||||
@ -186,7 +196,12 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
|||||||
</View>
|
</View>
|
||||||
|
|
||||||
{sortedItems.map((item) => (
|
{sortedItems.map((item) => (
|
||||||
<ToDoItem key={item.id} item={item} is7Days={false} />
|
<ToDoItem
|
||||||
|
key={item.id}
|
||||||
|
item={item}
|
||||||
|
is7Days={false}
|
||||||
|
localTodos={localTodos}
|
||||||
|
setLocalTodos={setLocalTodos}/>
|
||||||
))}
|
))}
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
@ -235,6 +250,8 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
|||||||
key={item.id}
|
key={item.id}
|
||||||
item={item}
|
item={item}
|
||||||
is7Days={dateKey === "Next 7 Days"}
|
is7Days={dateKey === "Next 7 Days"}
|
||||||
|
localTodos={localTodos}
|
||||||
|
setLocalTodos={setLocalTodos}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</View>
|
</View>
|
||||||
@ -278,7 +295,7 @@ const SingleUserChoreList = ({ user }: { user: UserProfile }) => {
|
|||||||
{expandNoDate &&
|
{expandNoDate &&
|
||||||
noDateToDos
|
noDateToDos
|
||||||
.sort((a, b) => Number(a.done) - Number(b.done))
|
.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>
|
</View>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ export const useGetTodos = () => {
|
|||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
|
|
||||||
let snapshot;
|
let snapshot;
|
||||||
if (profileData?.userType === ProfileType.PARENT) {
|
if (profileData?.userType === ProfileType.PARENT || profileData?.userType === ProfileType.FAMILY_DEVICE) {
|
||||||
snapshot = await firestore()
|
snapshot = await firestore()
|
||||||
.collection("Todos")
|
.collection("Todos")
|
||||||
.where("familyId", "==", profileData?.familyId)
|
.where("familyId", "==", profileData?.familyId)
|
||||||
|
Reference in New Issue
Block a user