From 220df963ca4c989a1b7e0af22fb086e58c4007c4 Mon Sep 17 00:00:00 2001 From: Lucid Kobold Date: Wed, 5 Jan 2022 12:22:53 -0600 Subject: [PATCH] Modal opens and closes properly when dates are clicked. Removed todos. --- components/calender/Day.tsx | 11 +++---- components/calender/modals/AddSticker.tsx | 38 +++++++++++++++-------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/components/calender/Day.tsx b/components/calender/Day.tsx index 1ec205f..2c028e6 100644 --- a/components/calender/Day.tsx +++ b/components/calender/Day.tsx @@ -1,7 +1,7 @@ import { Box, Text } from "@chakra-ui/react"; import { add, getYear, getMonth, sub, getDate } from "date-fns"; import router from "next/router"; -import React, { Fragment } from "react"; +import React, { Fragment, useState } from "react"; import AddSticker from "./modals/AddSticker"; interface DayProps { @@ -35,6 +35,8 @@ const Day = (props: DayProps): JSX.Element => { } }; + const [isOpen, setIsOpen] = useState(false); + return ( {isOverflow && ( @@ -61,13 +63,10 @@ const Day = (props: DayProps): JSX.Element => { border="2px solid #0068ff" w="100%" h="100%" - /** - * TODO: Add an onClick that will trigger the opening of a modal. - * Update the modal to take in an isOpen bool that will handle the open state. - */ + onClick={() => setIsOpen(true)} > {`Day ${getDate(date)}`} - + )} diff --git a/components/calender/modals/AddSticker.tsx b/components/calender/modals/AddSticker.tsx index 1f6552d..b48a5d8 100644 --- a/components/calender/modals/AddSticker.tsx +++ b/components/calender/modals/AddSticker.tsx @@ -6,25 +6,37 @@ import { ModalHeader, ModalCloseButton, ModalBody, - ModalFooter - // Lorem + ModalFooter, + Heading } from "@chakra-ui/react"; -import React, { Fragment, useState } from "react"; +import React, { Fragment } from "react"; +import { format } from "date-fns"; -const AddSticker = (): JSX.Element => { - const [isOpen, setIsOpen] = useState(false); +interface AddStickerProps { + isOpen: boolean; + updateIsOpen: React.Dispatch>; + date: Date; +} + +const AddSticker = (props: AddStickerProps): JSX.Element => { + const { isOpen, updateIsOpen, date } = props; return ( - {/** - * TODO: Add prop that will be the trigger for opening the modal. - * - */} - - setIsOpen(!isOpen)}> + updateIsOpen(!isOpen)} + motionPreset="slideInBottom" + scrollBehavior="inside" + > - Modal Title + + + {format(date, "LLLL do, y")} + + @@ -32,7 +44,7 @@ const AddSticker = (): JSX.Element => {