mirror of
https://github.com/urosran/cally.git
synced 2025-11-26 00:24:53 +00:00
changes to groceries, todos
This commit is contained in:
@ -56,6 +56,7 @@ interface IGroceryContext {
|
||||
updateGroceryItem: (id: number, changes: Partial<IGrocery>) => void;
|
||||
isAddingGrocery: boolean;
|
||||
setIsAddingGrocery: (value: boolean) => void;
|
||||
addGrocery: (grocery: IGrocery) => void;
|
||||
}
|
||||
|
||||
const GroceryContext = createContext<IGroceryContext | undefined>(undefined);
|
||||
@ -103,6 +104,17 @@ export const GroceryProvider: React.FC<{ children: React.ReactNode }> = ({
|
||||
},
|
||||
]);
|
||||
|
||||
const addGrocery = (grocery: IGrocery) => {
|
||||
setGroceries((prevGroceries) => [
|
||||
...prevGroceries,
|
||||
{
|
||||
...grocery,
|
||||
id: prevGroceries.length ? prevGroceries[prevGroceries.length - 1].id + 1 : 0,
|
||||
},
|
||||
]);
|
||||
};
|
||||
|
||||
|
||||
const updateGroceryItem = (id: number, changes: Partial<IGrocery>) => {
|
||||
setGroceries((prevGroceries) =>
|
||||
prevGroceries.map((grocery) =>
|
||||
@ -113,7 +125,7 @@ export const GroceryProvider: React.FC<{ children: React.ReactNode }> = ({
|
||||
|
||||
return (
|
||||
<GroceryContext.Provider
|
||||
value={{ groceries, iconMapping, updateGroceryItem, isAddingGrocery, setIsAddingGrocery }}
|
||||
value={{ groceries, iconMapping, updateGroceryItem, isAddingGrocery, setIsAddingGrocery, addGrocery }}
|
||||
>
|
||||
{children}
|
||||
</GroceryContext.Provider>
|
||||
|
||||
@ -1,12 +1,22 @@
|
||||
import { createContext, FC, ReactNode, useContext, useState } from "react";
|
||||
|
||||
export interface IToDo {
|
||||
id: number;
|
||||
title: string;
|
||||
done: boolean;
|
||||
date: Date;
|
||||
date: Date | null;
|
||||
points?: number;
|
||||
rotate: boolean;
|
||||
repeatType: string;
|
||||
}
|
||||
|
||||
export const repeatOptions = [
|
||||
{ label: "None", value: "None" },
|
||||
{ label: "Every week", value: "Every week" },
|
||||
{ label: "Once a month", value: "Once a month" },
|
||||
{ label: "Once a year", value: "Once a year" },
|
||||
];
|
||||
|
||||
interface IToDosContext {
|
||||
toDos: IToDo[];
|
||||
updateToDo: (id: number, changes: Partial<IToDo>) => void;
|
||||
@ -25,6 +35,7 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
done: false,
|
||||
date: new Date(),
|
||||
rotate: true,
|
||||
repeatType: "Every week"
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
@ -32,6 +43,7 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
done: false,
|
||||
date: new Date(),
|
||||
rotate: false,
|
||||
repeatType: "Every week"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
@ -39,6 +51,7 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
done: false,
|
||||
date: new Date(),
|
||||
rotate: true,
|
||||
repeatType: "Every week"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
@ -47,6 +60,7 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
date: new Date(Date.now() + 86400000),
|
||||
points: 40,
|
||||
rotate: false,
|
||||
repeatType: "Every week"
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
@ -54,6 +68,7 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
done: false,
|
||||
date: new Date(Date.now() + 86400000),
|
||||
rotate: false,
|
||||
repeatType: "Once a Month"
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
@ -61,6 +76,7 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
done: false,
|
||||
date: new Date(Date.now() + 2 * 86400000),
|
||||
rotate: true,
|
||||
repeatType: "Once a Month"
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
@ -68,6 +84,23 @@ export const ToDosContextProvider: FC<{ children: ReactNode }> = ({
|
||||
done: false,
|
||||
date: new Date(Date.now() + 3 * 86400000),
|
||||
rotate: false,
|
||||
repeatType: "Once a year"
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
title: "Buy Nautica Voyage",
|
||||
done: false,
|
||||
date: null,
|
||||
rotate: false,
|
||||
repeatType: "None"
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
title: "Sell Dan's Xbox",
|
||||
done: false,
|
||||
date: null,
|
||||
rotate: false,
|
||||
repeatType: "None"
|
||||
},
|
||||
]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user