"use client";

import { createContext, useContext, useState, useCallback } from "react";

interface SearchPopupContextType {
  isOpen: boolean;
  toggle: () => void;
  close: () => void;
}

const SearchPopupContext = createContext<SearchPopupContextType>({
  isOpen: false,
  toggle: () => {},
  close: () => {},
});

export function SearchPopupProvider({ children }: { children: React.ReactNode }) {
  const [isOpen, setIsOpen] = useState(false);
  const toggle = useCallback(() => setIsOpen((prev) => !prev), []);
  const close = useCallback(() => setIsOpen(false), []);

  return (
    <SearchPopupContext.Provider value={{ isOpen, toggle, close }}>
      {children}
    </SearchPopupContext.Provider>
  );
}

export function useSearchPopup() {
  return useContext(SearchPopupContext);
}
