From 1cde93b3e72f6616673d501536e4910697991df6 Mon Sep 17 00:00:00 2001 From: H Date: Wed, 19 Jul 2023 13:54:51 +1000 Subject: [PATCH] Added Placeholder Get Started modal to Singleton --- src/components/Hero.jsx | 7 ++++- src/pages/SingletonContextProvider.jsx | 41 ++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/components/Hero.jsx b/src/components/Hero.jsx index ccd2bf7..57f70fc 100644 --- a/src/components/Hero.jsx +++ b/src/components/Hero.jsx @@ -34,10 +34,15 @@ export const FancyUnderline = ({ className, children, ...props }) => { export function Hero() { - // const { state, setState } = useSingletonContext(); + const { openGetStartedModal } = useSingletonContext(); return ( + {/*

{ + openGetStartedModal(); + }}> + Test Button +

*/}

The {" "} diff --git a/src/pages/SingletonContextProvider.jsx b/src/pages/SingletonContextProvider.jsx index 5a4b5b2..bb0f17a 100644 --- a/src/pages/SingletonContextProvider.jsx +++ b/src/pages/SingletonContextProvider.jsx @@ -1,21 +1,37 @@ import { createContext, useState, useContext } from 'react'; +import { useDisclosure } from '@chakra-ui/react' +import { Modal, ModalOverlay, ModalContent, ModalHeader, ModalFooter, ModalBody, ModalCloseButton } from '@chakra-ui/react' +import { Text, Icon, Spacer, Button } from '@chakra-ui/react' + // Create a context const SingletonContext = createContext(); // Create a provider export function SingletonContextProvider({ children }) { - const [state, setState] = useState('singleton'); + const [state, setState] = useState('singleton'); // dummy example + + const getStartedDisclosure = useDisclosure(); // make sure state is only created once let contextValue = useContext(SingletonContext); if (!contextValue) { - contextValue = { state, setState }; + contextValue = { state, setState, openGetStartedModal }; + } + + function openGetStartedModal() { + console.log('openGetStartedModal()'); + getStartedDisclosure.onOpen(); } return ( {children} + ); } @@ -23,4 +39,25 @@ export function SingletonContextProvider({ children }) { // Create a hook to use the SingletonContext, this is just to simplify using the context. export function useSingletonContext() { return useContext(SingletonContext); +} + +export function GetStartedModal( {isOpen, onOpen, onClose}) { + return ( + + + + Title - Get Started + + + Modal Body + + + + + + + + ) } \ No newline at end of file