Add sticker context.
This commit is contained in:
@@ -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}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user