// "use client";

// import { useEffect } from "react";

// export default function DynamicFavicon() {
//   // useEffect(() => {
//   //   const updateFavicon = () => {
//   //     const settings = localStorage.getItem("general-settings");
      
//   //     if (!settings) return;

//   //     const data = JSON.parse(settings);
//   //     // console.log('Settings', data?.favicon)
//   //     if (!data?.favicon) return;

//   //     let link = document.querySelector(
//   //       "link[rel='icon']",
//   //     ) as HTMLLinkElement | null;

//   //     if (!link) {
//   //       link = document.createElement("link");
//   //       link.rel = "icon";
//   //       document.head.appendChild(link);
//   //     }

//   //     link.href = `${data.favicon}?v=${Date.now()}`;

//   //   };

//   //   updateFavicon();

//   //   const interval = setInterval(updateFavicon, 1000);

//   //   return () => clearInterval(interval);
//   // }, []);

//   useEffect(() => {
//     let attempts = 0;

//     const timer = setInterval(() => {
//       attempts++;

//       const settings = localStorage.getItem("general-settings");

//       if (!settings) {
//         if (attempts > 10) clearInterval(timer); // stop after 10 sec
//         return;
//       }

//       const data = JSON.parse(settings);

//       if (!data?.favicon) {
//         if (attempts > 10) clearInterval(timer);
//         return;
//       }

//       let link = document.querySelector(
//         'link[rel="icon"]'
//       ) as HTMLLinkElement | null;

//       if (!link) {
//         link = document.createElement("link");
//         link.rel = "icon";
//         document.head.appendChild(link);
//       }

//       link.href = data.favicon;

//       clearInterval(timer); // done
//     }, 500);

//     return () => clearInterval(timer);
//   }, []);

//   return null;
// }


// New
"use client";

import { useEffect } from "react";

export default function DynamicFavicon() {
  useEffect(() => {
    const applyFavicon = () => {
      const settings = localStorage.getItem("general-settings");
      if (!settings) return;

      const { favicon } = JSON.parse(settings);
      if (!favicon) return;

      let link = document.querySelector(
        'link[rel="icon"]'
      ) as HTMLLinkElement | null;

      if (!link) {
        link = document.createElement("link");
        link.rel = "icon";
        document.head.appendChild(link);
      }

      link.href = favicon;
    };

    applyFavicon();

    window.addEventListener("settings-loaded", applyFavicon);

    return () => {
      window.removeEventListener("settings-loaded", applyFavicon);
    };
  }, []);

  return null;
}
