diff --git a/contexts/StickerContext.tsx b/contexts/StickerContext.tsx index 16edc9d..3e5066e 100644 --- a/contexts/StickerContext.tsx +++ b/contexts/StickerContext.tsx @@ -1,4 +1,5 @@ import React, { createContext, useState, ReactNode } from "react"; +import { format, getDate, isBefore, startOfDay } from "date-fns"; import stickersSeeder from "../data/stickerSeeder"; const StickersContext = createContext({} as StickersContextState); @@ -13,11 +14,39 @@ const StickersContextProvider = ({ ); // TODO: Add stickers functions here. (Add and edit stickers). + const addEditSticker = (date: Date, sticker: ValidStickerVal): void => { + const newStickersMonth = [...stickersMonth]; + const index = getDate(date) - 1; + const currDate = newStickersMonth[index]; + + const edited = currDate.edited + ? true + : isBefore(currDate.date, startOfDay(new Date())) + ? true + : false; + currDate.edited = edited; + // Add manual here when necessary. + + const id = format(date, "yyyyddLL") + sticker; + + const newSticker: Sticker = { + id: id, + date: date, + sticker: sticker, + edited: edited, + manual: false + } + + newStickersMonth[index] = newSticker; + + setStickersMonth(newStickersMonth); + }; // TODO: Add stickers validation function here. const stickersContextValues = { - stickersMonth + stickersMonth, + addEditSticker }; return (