"use client";

import React, { createContext, useContext, useState } from "react";
import { ContactForm } from "@/components/ContactForm";

type Ctx = {
  openForm: (source?: string) => void;
  closeForm: () => void;
};

const ContactFormContext = createContext<Ctx | null>(null);

export function ContactFormProvider({ children }: { children: React.ReactNode }) {
  const [open, setOpen] = useState(false);

  const openForm = (source?: string) => {
    // optional: console.log("opened from:", source);
    setOpen(true);
  };

  const closeForm = () => setOpen(false);

  return (
    <ContactFormContext.Provider value={{ openForm, closeForm }}>
      {children}
      <ContactForm open={open} onClose={closeForm} />
    </ContactFormContext.Provider>
  );
}

export function useContactForm() {
  const ctx = useContext(ContactFormContext);
  if (!ctx) throw new Error("useContactForm must be used within ContactFormProvider");
  return ctx;
}
