"use client";

import { CompanySettingsView } from "@/components/dashboard/settings/company-settings-view";
import { useCompanySettings, updateCompanySettings } from "@/lib/api/dashboard/settings-api";
import { useRouter } from "next/navigation";
import { useState, useEffect } from "react";
import type { AdminCompanySettings } from "@/components/dashboard/settings/settings-api-types";

export function CompanySettingsContainer() {
  const { companySettings, isLoading, error } = useCompanySettings();
  const router = useRouter();
  
  const [formData, setFormData] = useState<Partial<AdminCompanySettings>>({});
  const [isSaving, setIsSaving] = useState(false);

  useEffect(() => {
    if (companySettings) {
      setFormData(companySettings);
    }
  }, [companySettings]);

  const handleSubmit = async () => {
    setIsSaving(true);
    try {
      await updateCompanySettings(formData);
      router.refresh();
    } catch (err) {
      // Error handling done by API client
    } finally {
      setIsSaving(false);
    }
  };

  return (
    <CompanySettingsView 
      companySettings={companySettings}
      isLoading={isLoading}
      error={error}
      formData={formData}
      onChangeForm={setFormData}
      onSubmit={handleSubmit}
      isSaving={isSaving}
    />
  );
}
