1
0

LayoutProvider.tsx 754 B

12345678910111213141516171819202122232425262728
  1. "use client";
  2. import React, { createContext, useContext, useState } from "react";
  3. interface LayoutContextType {
  4. mobileMenuOpen: boolean;
  5. setMobileMenuOpen: (open: boolean) => void;
  6. }
  7. const LayoutContext = createContext<LayoutContextType | undefined>(undefined);
  8. export function LayoutProvider({ children }: { children: React.ReactNode }) {
  9. const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
  10. return (
  11. <LayoutContext.Provider value={{ mobileMenuOpen, setMobileMenuOpen }}>
  12. {children}
  13. </LayoutContext.Provider>
  14. );
  15. }
  16. export function useLayout() {
  17. const context = useContext(LayoutContext);
  18. if (context === undefined) {
  19. throw new Error("useLayout must be used within a LayoutProvider");
  20. }
  21. return context;
  22. }