Add sticker context.

This commit is contained in:
Lucid Kobold
2022-02-03 13:39:42 -06:00
parent 1510f6725c
commit 4c3ef736fc

View File

@@ -2,11 +2,13 @@ import React, { useContext, useEffect } from "react";
import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react"; import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react";
import CalenderNav from "./CalenderNav"; import CalenderNav from "./CalenderNav";
import { CalenderContext } from "../../contexts/CalenderContext"; import { CalenderContext } from "../../contexts/CalenderContext";
import { format } from "date-fns"; import { StickersContext } from "../../contexts/StickerContext";
import { format, isSameDay } from "date-fns";
import Day from "./Day"; import Day from "./Day";
const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { const Calender = (newDate?: UpdateCalendarProps): JSX.Element => {
const { selectedDate, layout, updateDate } = useContext(CalenderContext); const { selectedDate, layout, updateDate } = useContext(CalenderContext);
const { stickersMonth } = useContext(StickersContext);
useEffect(() => { useEffect(() => {
if (newDate) { if (newDate) {
@@ -31,6 +33,10 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => {
// TODO: Move the weekdays into it's own component for responsiveness. // TODO: Move the weekdays into it's own component for responsiveness.
useEffect(() => {
console.log("Stickers month updated");
}, [stickersMonth]);
return ( return (
<VStack h="91vh" w="100%"> <VStack h="91vh" w="100%">
<CalenderNav /> <CalenderNav />
@@ -67,7 +73,19 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => {
const thisWeek = month[week]; const thisWeek = month[week];
return thisWeek.map((day: MonthDay) => { return thisWeek.map((day: MonthDay) => {
const { sticker, date, isOverflow, overflowDirection } = day; const { date, isOverflow, overflowDirection } = day;
let sticker = null;
let id = "";
stickersMonth.map((stickerDay) => {
if (isSameDay(stickerDay.date, date)) {
sticker = stickerDay.sticker;
id = stickerDay.id;
}
});
return ( return (
<Day <Day
@@ -76,7 +94,7 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => {
sticker={sticker} sticker={sticker}
date={date} date={date}
selectedDate={selectedDate} selectedDate={selectedDate}
key={format(date, "P")} key={id}
/> />
); );
}); });