"use client";

import { DonationCategory, DonationItem } from "@/types/donation";
import { createContext, useContext, useState } from "react";

interface DonationContextType {
  donations: DonationItem[];
  categories: DonationCategory[];
  setDonations: (d: DonationItem[]) => void;
  setCategories: (c: DonationCategory[]) => void;
}

const DonationContext = createContext<DonationContextType | null>(null);

export function DonationProvider({ children }: { children: React.ReactNode }) {
  const [donations, setDonations] = useState<DonationItem[]>([]);
  const [categories, setCategories] = useState<DonationCategory[]>([]);

  return (
    <DonationContext.Provider
      value={{ donations, categories, setDonations, setCategories }}
    >
      {children}
    </DonationContext.Provider>
  );
}

export const useDonations = () => {
  const ctx = useContext(DonationContext);
  if (!ctx) throw new Error("useDonations must be used inside provider");
  return ctx;
};
