Merge branch 'dev'

This commit is contained in:
Milan Paunovic
2025-02-15 21:08:30 +01:00
7 changed files with 55 additions and 19 deletions

View File

@ -70,9 +70,9 @@ if (Platform.OS === 'ios') {
}
if (__DEV__) {
// functions().useEmulator("localhost", 5001);
// firestore().useEmulator("localhost", 5471);
// auth().useEmulator("http://localhost:9099");
functions().useEmulator("localhost", 5001);
firestore().useEmulator("localhost", 5471);
auth().useEmulator("http://localhost:9099");
}
type TextStyleBase =

View File

@ -174,7 +174,8 @@ const AddChoreDialog = (addChoreDialogProps: IAddChoreDialog) => {
updateToDo({
...todo,
points: points,
assignees: selectedAssignees
assignees: selectedAssignees,
currentAssignee: selectedAssignees[0],
});
} else {
return;
@ -186,6 +187,7 @@ const AddChoreDialog = (addChoreDialogProps: IAddChoreDialog) => {
done: false,
points: points,
assignees: selectedAssignees,
currentAssignee: selectedAssignees[0],
repeatDays: todo.repeatDays ?? []
});
} else {

View File

@ -231,6 +231,13 @@ const ToDoItem = (props: {
</View>
<View row style={{ gap: 3 }}>
{selectedMembers?.map((member) => {
let currentAssignee = props?.item?.currentAssignee;
let opacity = 1;
if (selectedMembers?.length > 1 && currentAssignee !== member?.uid) {
opacity = 0.4;
}
return member?.pfp ? (
<ImageBackground
key={member?.uid}
@ -242,6 +249,7 @@ const ToDoItem = (props: {
overflow: "hidden",
borderWidth: 2,
borderColor: member.eventColor || "transparent",
opacity: opacity
}}
/>
) : (
@ -254,6 +262,7 @@ const ToDoItem = (props: {
borderWidth: 2,
borderRadius: 100,
borderColor: member.eventColor || "#ccc",
opacity: opacity
}}
>
<View

View File

@ -11,6 +11,7 @@ export interface IToDo {
creatorId?: string;
familyId?: string;
assignees?: string[]; // Optional list of assignees
currentAssignee?: string,
connectedTodoId?: string;
}

View File

@ -130,7 +130,7 @@ export const useCreateTodo = () => {
let assignee;
if (todoData.assignees && todoData.rotate && todoData?.assignees?.length !== 0) {
assignee = todoData.assignees[index % todoData.assignees.length];
assignee = todoData.assignees[(index + 1) % todoData.assignees.length];
}
const nextTodo = {
@ -140,7 +140,8 @@ export const useCreateTodo = () => {
familyId: profileData?.familyId,
creatorId: currentUser?.uid,
connectedTodoId: ruleDocRef.id,
assignees: assignee ? [assignee] : todoData.assignees
assignees: todoData.assignees,
currentAssignee: assignee
}
batch.set(newDocRef, nextTodo)

View File

@ -1,30 +1,49 @@
import {useMutation} from "@tanstack/react-query";
import auth from "@react-native-firebase/auth";
import firestore from "@react-native-firebase/firestore";
import {ProfileType, useAuthContext} from "@/contexts/AuthContext";
import {useSetUserData} from "./useSetUserData";
import {uuidv4} from "@firebase/util";
import * as Localization from "expo-localization";
export const useSignUp = () => {
const {setRedirectOverride} = useAuthContext()
const {setRedirectOverride} = useAuthContext();
const {mutateAsync: setUserData} = useSetUserData();
const createHouseholdIfNeeded = async (familyId: string, lastName: string) => {
try {
const householdRef = firestore().collection("Households");
const snapshot = await householdRef.where("familyId", "==", familyId).get();
if (snapshot.empty) {
await householdRef.add({
familyId,
name: lastName
});
}
} catch (error) {
console.error("Error creating household:", error);
throw error;
}
};
return useMutation({
mutationKey: ["signUp"],
mutationFn: async ({
email,
password,
firstName,
lastName,
birthday
}: {
email,
password,
firstName,
lastName,
birthday
}: {
email: string;
password: string;
firstName: string;
lastName: string;
birthday: Date;
}) => {
setRedirectOverride(true)
setRedirectOverride(true);
const familyId = uuidv4();
await auth()
.createUserWithEmailAndPassword(email, password)
@ -35,12 +54,14 @@ export const useSignUp = () => {
userType: ProfileType.PARENT,
firstName: firstName,
lastName: lastName,
familyId: uuidv4(),
familyId: familyId,
timeZone: Localization.getCalendars()[0].timeZone,
birthday: birthday
},
customUser: res.user,
});
await createHouseholdIfNeeded(familyId, lastName);
} catch (error) {
console.error(error);
}

View File

@ -59,14 +59,15 @@ export const useUpdateTodo = () => {
const newDate = nextDates[index];
let assignee;
if (todoData.assignees && todoData.rotate && todoData?.assignees?.length !== 0) {
assignee = todoData.assignees[index % todoData.assignees.length];
assignee = todoData.assignees[(index + 1) % todoData.assignees.length];
}
if (newDate) {
const nextTodo = {
...todoData,
date: newDate,
assignees: assignee ? [assignee] : todoData.assignees
assignees: todoData.assignees,
currentAssignee: assignee
}
let docRef = todo.ref;
batch.update(docRef, nextTodo)
@ -83,7 +84,7 @@ export const useUpdateTodo = () => {
let assignee;
if (todoData.assignees && todoData.rotate && todoData?.assignees?.length !== 0) {
assignee = todoData.assignees[index % todoData.assignees.length];
assignee = todoData.assignees[(index + 1) % todoData.assignees.length];
}
const nextTodo = {
@ -93,7 +94,8 @@ export const useUpdateTodo = () => {
familyId: profileData?.familyId,
creatorId: currentUser?.uid,
connectedTodoId: todoData.connectedTodoId,
assignees: assignee ? [assignee] : todoData.assignees
assignees: todoData.assignees,
currentAssignee: assignee
}
batch.set(newDocRef, nextTodo)