diff --git a/web-next/app/forum.css b/web-next/app/forum.css index 72c3d6c..852e0ef 100644 --- a/web-next/app/forum.css +++ b/web-next/app/forum.css @@ -200,7 +200,14 @@ h3.post_field dd { margin: 0; } /* Enlaces normales del post en dorado; los de wowhead (data-wowhead) se dejan con SU color de calidad e icono, sin subrayado, para que se vean como en el tooltip. */ .topic_post .right_side .post_container a:not([data-wowhead]) { color: var(--forum-gold-soft); text-decoration: underline; } -.topic_post .right_side .post_container a[data-wowhead] { text-decoration: none; } +/* enlaces de wowhead sin subrayado, tanto en el post como en la vista previa */ +.post_container a[data-wowhead] { text-decoration: none; } + +/* Vista previa bajo el editor (se ve como el post publicado, con icono/nombre/calidad). */ +.forum-preview { margin-top: 14px; border: 1px solid #2a2723; border-radius: 3px; background: rgba(0, 0, 0, .18); padding: 10px 14px; } +.forum-preview-label { font-size: 11px; text-transform: uppercase; color: #8a8578; margin-bottom: 8px; } +.forum-preview .post_container { color: #b5b1a3; font-size: 13px; } +.forum-preview .post_container img { max-width: 100%; height: auto; } /* Colores de calidad de WoW. theme.css solo trae q3..q6, así que aquí se completan q0..q2 y q7 (con !important para ganar al color del enlace del post). Sin esto, diff --git a/web-next/components/ForumEditor.tsx b/web-next/components/ForumEditor.tsx index 9dd3962..4dc6326 100644 --- a/web-next/components/ForumEditor.tsx +++ b/web-next/components/ForumEditor.tsx @@ -1,5 +1,6 @@ 'use client' +import { useEffect } from 'react' import { Editor } from '@tinymce/tinymce-react' import { useLocale } from 'next-intl' import { wowheadUrl, wowheadData, type WowheadType } from '@/lib/wowhead' @@ -52,9 +53,25 @@ export function ForumEditor({ text: es ? 'Texto (vacío = nombre automático)' : 'Text (empty = auto name)', insert: es ? 'Insertar' : 'Insert', cancel: es ? 'Cancelar' : 'Cancel', + preview: es ? 'Vista previa' : 'Preview', } + // Reprocesa los enlaces de wowhead de la VISTA PREVIA (que vive en el documento + // principal, no en el iframe del editor) cada vez que cambia el texto. Así el + // preview se ve como el post publicado sin ensuciar lo que se guarda. + useEffect(() => { + const t = setTimeout(() => { + try { + ;(window as unknown as { $WowheadPower?: { refreshLinks?: () => void } }).$WowheadPower?.refreshLinks?.() + } catch { + /* no crítico */ + } + }, 300) + return () => clearTimeout(t) + }, [value]) + return ( + <> + {value.trim() && ( +
+
{L.preview}
+
+
+ )} + ) }