"use client";

import { createContext, useState, type ReactNode } from "react";

const initialValue = {
  isOpen: false,
  onCloseFilter: () => {
    /* empty */
  },
  onToggleFilter: () => {
    /* empty */
  },
};

const FilterPanelContext = createContext(initialValue);

function FilterPanelProvider({ children }: { children: ReactNode }) {
  const [isOpen, setIsOpen] = useState(initialValue.isOpen);

  function handleCloseFilter() {
    setIsOpen(false);
  }

  function handleToggleFilter() {
    setIsOpen((isOpen) => !isOpen);
  }

  return (
    <FilterPanelContext.Provider
      value={{
        isOpen,
        onCloseFilter: handleCloseFilter,
        onToggleFilter: handleToggleFilter,
      }}
    >
      {children}
    </FilterPanelContext.Provider>
  );
}

export { FilterPanelContext, FilterPanelProvider };
