From 8a7adba7f263b6645d46b9853d4108a48e283e6c Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Sat, 2 Apr 2022 23:51:31 -0500 Subject: [PATCH] Added a sticker selector componenet. --- components/calender/Day.tsx | 6 ++ components/calender/modals/AddSticker.tsx | 76 +++++-------------- .../calender/modals/StickerSelector.tsx | 61 +++++++++++++++ 3 files changed, 85 insertions(+), 58 deletions(-) create mode 100644 components/calender/modals/StickerSelector.tsx diff --git a/components/calender/Day.tsx b/components/calender/Day.tsx index 79b91fd..7fcc09f 100644 --- a/components/calender/Day.tsx +++ b/components/calender/Day.tsx @@ -66,6 +66,9 @@ const Day = ({ // The step the modal is at. const [step, setStep] = useState(0); + // The current selected sticker. + const [selectedSticker, setSelectedSticker] = useState(null); + /** * TODO: Add logic to remove the onClick within overflow dates. * Do not give dates for the next month an onClick. @@ -119,6 +122,7 @@ const Day = ({ h="100%" onClick={() => { setStep(0); + setSelectedSticker(null); setIsOpen(true); }} alignContent="center" @@ -165,6 +169,8 @@ const Day = ({ currSticker={stickerState} step={step} updateStep={setStep} + selectedSticker={selectedSticker} + updateSelectedSticker={setSelectedSticker} /> )} diff --git a/components/calender/modals/AddSticker.tsx b/components/calender/modals/AddSticker.tsx index 807ad37..43214a7 100644 --- a/components/calender/modals/AddSticker.tsx +++ b/components/calender/modals/AddSticker.tsx @@ -12,8 +12,8 @@ import { } from "@chakra-ui/react"; import React, { useState, useContext } from "react"; import { format, isSameDay } from "date-fns"; -import DemoStickers from "../stickers/DemoStickers"; import { StickersContext } from "../../../contexts/StickerContext"; +import StickerSelector from "./StickerSelector"; interface AddStickerProps { isOpen: boolean; @@ -23,6 +23,8 @@ interface AddStickerProps { currSticker: StickerVal; step: number; updateStep: React.Dispatch>; + selectedSticker: StickerVal; + updateSelectedSticker: React.Dispatch>; } /** @@ -42,7 +44,9 @@ const AddSticker = ({ updateSticker, currSticker, step, - updateStep + updateStep, + selectedSticker, + updateSelectedSticker }: AddStickerProps): JSX.Element => { // TODO: Import the stickers array from the calender context. @@ -54,8 +58,6 @@ const AddSticker = ({ * Show a message when a date before the current date is selected. */ - const [selectedSticker, setSelectedSticker] = useState(null); - const { addEditSticker } = useContext(StickersContext); const [modalVariant] = useState<"currDate" | "notCurrDate">( @@ -65,7 +67,6 @@ const AddSticker = ({ // ! Step is not setting back to 0 when modal is closet. Try to move out of this component and take it in as an arg. const handleClose = () => { - setSelectedSticker(null); updateIsOpen(false); }; @@ -88,41 +89,12 @@ const AddSticker = ({ { header: `Which sticker did you earn for ${format(date, "LLL d, y")}?`, body: ( - - - - - + ), footer: ( + + + + ) + }; + + return stickers[stickerSet]; +}; + +export default StickerSelector;