"use client";

import Script from "next/script";
import React from "react";

interface ScriptData {
  code: string;
  type?: string;
}

interface ScriptsProps {
  scripts: Record<string, string | ScriptData>;
}

export const DynamicBodyScripts: React.FC<ScriptsProps> = ({ scripts }) => {
  if (!scripts) return null;

  return (
    <>
      {Object.entries(scripts).map(([key, scriptData]) => {
        const isObject = typeof scriptData === "object" && scriptData !== null;
        const code = isObject ? scriptData.code : scriptData;
        const type = isObject ? scriptData.type : undefined;

        if (!code) return null;

        if (type === "application/ld+json") {
          return <Script key={key} id={`jsonld-${key}`} type="application/ld+json" dangerouslySetInnerHTML={{ __html: code }} />;
        }

        return <Script key={key} id={`inline-${key}`} strategy="afterInteractive" dangerouslySetInnerHTML={{ __html: code }} />;
      })}
    </>
  );
};
