"use client";

import { createContext, useContext, useEffect, useState } from "react";
import type { GeneralSettings } from "@/services/settings";

interface AdminSettingsContextValue {
  settings: GeneralSettings | null;
}

const AdminSettingsContext = createContext<AdminSettingsContextValue>({ settings: null });

export function useAdminSettings() {
  return useContext(AdminSettingsContext);
}

export function AdminSettingsProvider({ children }: { children: React.ReactNode }) {
  const [settings, setSettings] = useState<GeneralSettings | null>(null);

  useEffect(() => {
    const BASE_URL = process.env.NEXT_PUBLIC_API_URL || "";
    fetch(`${BASE_URL}/api/public-pages/general-settings`)
      .then((res) => (res.ok ? res.json() : null))
      .then((data) => setSettings(data))
      .catch(() => null);
  }, []);

  return (
    <AdminSettingsContext.Provider value={{ settings }}>
      {children}
    </AdminSettingsContext.Provider>
  );
}
