"use client";

import { useEffect } from "react";
import { hexToOklch, calculateBrightness } from "@/lib/helpers/colorUtils";

interface UseThemeColorProps {
  primaryColor?: string | null;
  enabled?: boolean;
}

/**
 * هوک برای تغییر دینامیک رنگ primary بر اساس رنگ دریافتی از about
 */
export function useThemeColor({
  primaryColor,
  enabled = true,
}: UseThemeColorProps) {
  useEffect(() => {
    if (!enabled || !primaryColor) return;

    try {
      const root = document.documentElement;

      // اگر رنگ hex هست، آن را به oklch تبدیل می‌کنیم
      if (primaryColor.startsWith("#")) {
        const oklchColor = hexToOklch(primaryColor);
        
        if (oklchColor) {
          // اعمال رنگ primary
          root.style.setProperty("--primary", oklchColor);

          // محاسبه رنگ foreground متناسب
          const brightness = calculateBrightness(primaryColor);
          const foregroundOklch =
            brightness > 0.5 ? "oklch(0 0 0)" : "oklch(1 0 0)";
          root.style.setProperty("--primary-foreground", foregroundOklch);
        }
      }
    } catch (error) {
      console.error("Error setting theme color:", error);
    }
  }, [primaryColor, enabled]);
}
