ide-redesign-switcher-context.tsx 940 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import {
  2. createContext,
  3. Dispatch,
  4. FC,
  5. SetStateAction,
  6. useContext,
  7. useState,
  8. } from 'react'
  9. type IdeRedesignSwitcherContextValue = {
  10. showSwitcherModal: boolean
  11. setShowSwitcherModal: Dispatch<SetStateAction<boolean>>
  12. }
  13. export const IdeRedesignSwitcherContext = createContext<
  14. IdeRedesignSwitcherContextValue | undefined
  15. >(undefined)
  16. export const IdeRedesignSwitcherProvider: FC = ({ children }) => {
  17. const [showSwitcherModal, setShowSwitcherModal] = useState(false)
  18. return (
  19. <IdeRedesignSwitcherContext.Provider
  20. value={{ showSwitcherModal, setShowSwitcherModal }}
  21. >
  22. {children}
  23. </IdeRedesignSwitcherContext.Provider>
  24. )
  25. }
  26. export const useIdeRedesignSwitcherContext = () => {
  27. const context = useContext(IdeRedesignSwitcherContext)
  28. if (!context) {
  29. throw new Error(
  30. 'useIdeRedesignSwitcherContext is only available inside IdeRedesignSwitcherProvider'
  31. )
  32. }
  33. return context
  34. }