'use client'

import { useEffect } from 'react'

/**
 * Reaplica el tratamiento de wowhead (color por calidad, icono y nombre automático)
 * a los enlaces que React acaba de montar. `tooltips.js` solo recorre el DOM al
 * cargar, así que los enlaces de un post (inyectados con dangerouslySetInnerHTML) o
 * los de una página abierta por navegación SPA se quedan sin procesar sin esto.
 * Es lo mismo que hace la tienda con $WowheadPower.refreshLinks() (ver StoreBrowser).
 *
 * Se reintenta un rato porque tooltips.js carga `afterInteractive` y puede no estar
 * listo justo al montar. `dep` (p.ej. tema+página) fuerza que se repita tras navegar.
 */
export function WowheadRefresh({ dep }: { dep?: string | number }) {
  useEffect(() => {
    let tries = 0
    let timer: ReturnType<typeof setTimeout>
    const run = () => {
      const wp = (window as unknown as { $WowheadPower?: { refreshLinks?: () => void } }).$WowheadPower
      if (wp?.refreshLinks) {
        wp.refreshLinks()
        return
      }
      if (tries++ < 25) timer = setTimeout(run, 150)
    }
    run()
    return () => clearTimeout(timer)
  }, [dep])
  return null
}
