mirror of
https://github.com/urosran/cally.git
synced 2025-07-10 15:17:17 +00:00
- Take turns implementation for the todos
This commit is contained in:
@ -2,7 +2,7 @@ import { useMutation, useQueryClient } from "react-query";
|
||||
import firestore from "@react-native-firebase/firestore";
|
||||
import {IToDo, REPEAT_TYPE} from "@/hooks/firebase/types/todoData";
|
||||
import {addDays, addMonths, addWeeks, addYears, compareAsc, format, subDays} from "date-fns";
|
||||
import {daysOfWeek} from "@/hooks/firebase/useCreateTodo";
|
||||
import {daysOfWeek, resolveTodoAlternatingAssignees} from "@/hooks/firebase/useCreateTodo";
|
||||
import {useAuthContext} from "@/contexts/AuthContext";
|
||||
|
||||
export const useUpdateTodo = () => {
|
||||
@ -79,18 +79,24 @@ export const useUpdateTodo = () => {
|
||||
}
|
||||
console.log(todosToAddCycles);
|
||||
let newDoc = firestore().collection("Todos").doc();
|
||||
const newTodo = { ...todoData, id: newDoc.id, date: todoData.date, connectedTodoId: newDoc?.id };
|
||||
batch.set(newDoc, newTodo);
|
||||
let originalTodo = { ...todoData, id: newDoc.id, date: todoData.date, connectedTodoId: newDoc?.id };
|
||||
originalTodo = resolveTodoAlternatingAssignees(todoData, originalTodo, 0);
|
||||
batch.set(newDoc, originalTodo);
|
||||
|
||||
console.log(dates);
|
||||
for (let i = 0; i < todosToAddCycles; i++) {
|
||||
let index = 1;
|
||||
for (let i = 0; i <= todosToAddCycles; i++) {
|
||||
dates?.forEach((dateToAdd) => {
|
||||
index++;
|
||||
let newTodoDate = addWeeks(dateToAdd, i);
|
||||
if (compareAsc(newTodoDate, originalTodo.date) !== 0) {
|
||||
|
||||
console.log("ENTER")
|
||||
let docRef = firestore().collection("Todos").doc();
|
||||
const newTodo = { ...todoData, id: docRef.id, date: newTodoDate, connectedTodoId: newDoc?.id };
|
||||
let newTodo = { ...todoData, id: docRef.id, date: newTodoDate, connectedTodoId: newDoc?.id };
|
||||
newTodo = resolveTodoAlternatingAssignees(todoData, newTodo, index);
|
||||
|
||||
batch.set(docRef, newTodo);
|
||||
}
|
||||
})
|
||||
}
|
||||
} else if (todoData.repeatType === REPEAT_TYPE.ONCE_A_MONTH) {
|
||||
@ -100,9 +106,10 @@ export const useUpdateTodo = () => {
|
||||
for (let i = 0; i < 12; i++) {
|
||||
let date = todoData?.date;
|
||||
const nextMonth = addMonths(date, i);
|
||||
const newTodo = { ...todoData, date: nextMonth, connectedTodoId: firstTodo?.connectedTodoId };
|
||||
|
||||
let docRef = firestore().collection("Todos").doc();
|
||||
let newTodo = { ...todoData, id: docRef.id, date: nextMonth, connectedTodoId: firstTodo?.connectedTodoId };
|
||||
newTodo = resolveTodoAlternatingAssignees(todoData, newTodo, i);
|
||||
batch.set(docRef, newTodo);
|
||||
}
|
||||
} else if (todoData.repeatType === REPEAT_TYPE.ONCE_A_YEAR) {
|
||||
@ -112,9 +119,10 @@ export const useUpdateTodo = () => {
|
||||
for (let i = 0; i < 5; i++) {
|
||||
let date = todoData?.date;
|
||||
const nextMonth = addYears(date, i);
|
||||
const newTodo = { ...todoData, date: nextMonth, connectedTodoId: firstTodo?.connectedTodoId };
|
||||
|
||||
let docRef = firestore().collection("Todos").doc();
|
||||
let newTodo = { ...todoData, id: docRef.id, date: nextMonth, connectedTodoId: firstTodo?.connectedTodoId };
|
||||
newTodo = resolveTodoAlternatingAssignees(todoData, newTodo, i);
|
||||
batch.set(docRef, newTodo);
|
||||
}
|
||||
}
|
||||
@ -179,11 +187,14 @@ const updateRepeatDaysTodos = async (batch: any, todoData: IToDo, firstTodo: ITo
|
||||
dates.push(newDate);
|
||||
});
|
||||
|
||||
let index = 0;
|
||||
for (let i = 0; i < todosToAddCycles; i++) {
|
||||
dates?.forEach((dateToAdd) => {
|
||||
index ++;
|
||||
let newTodoDate = addWeeks(dateToAdd, i);
|
||||
if (compareAsc(newTodoDate, firstTodo?.date) !== 0) {
|
||||
const newTodo = {...todoData, date: newTodoDate};
|
||||
let newTodo = {...todoData, date: newTodoDate};
|
||||
newTodo = resolveTodoAlternatingAssignees(todoData, newTodo, index);
|
||||
|
||||
let docRef = firestore().collection("Todos").doc();
|
||||
batch.set(docRef, newTodo);
|
||||
|
Reference in New Issue
Block a user