diff --git a/packages/renderer/dist/ecency-renderer.cjs b/packages/renderer/dist/ecency-renderer.cjs index cb40505aac..f56f7f1089 100644 --- a/packages/renderer/dist/ecency-renderer.cjs +++ b/packages/renderer/dist/ecency-renderer.cjs @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),_=require("@ecency/render-helper"),H=require("clsx"),A=require("medium-zoom"),s=require("react/jsx-runtime"),u=require("react-dom/client");function W({containerRef:a}){const r=l.useRef(void 0);return l.useEffect(()=>{var n,t,o;return Array.from(((n=a.current)==null?void 0:n.querySelectorAll(".markdown-view:not(.markdown-view-pure) img"))??[]).filter(c=>{var i;return((i=c.parentNode)==null?void 0:i.nodeName)!=="A"&&!c.classList.contains("medium-zoom-image")&&!c.closest(".markdown-image-container")}).forEach(c=>{var g,y,L,j;const i=document.createElement("div");i.classList.add("markdown-image-container");const d=c.cloneNode(!0),m=(g=c.getAttribute("title"))==null?void 0:g.trim(),p=(y=c.getAttribute("data-caption"))==null?void 0:y.trim(),h=(L=c.getAttribute("alt"))==null?void 0:L.trim(),f=h?/^[\w,\s-]+\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i.test(h):!1,w=m||p||(f?"":h);if(w){const x=document.createElement("div");x.classList.add("markdown-img-caption"),x.innerText=w,i.appendChild(d),i.appendChild(x)}else i.appendChild(d);(j=c.parentElement)==null||j.replaceChild(i,c)}),r.current=A(((t=a.current)==null?void 0:t.querySelectorAll(".markdown-view:not(.markdown-view-pure) img"))??[]),(o=r.current)==null||o.update({background:"#131111"}),()=>{var c;(c=r.current)==null||c.detach()}},[]),s.jsx(s.Fragment,{})}function k(a){try{const r=new URL(a,"https://ecency.com").pathname.split("/").filter(Boolean).pop()??"";return r.includes("re-ecencywaves")||r.includes("re-leothreads")||r.startsWith("wave-")||r.startsWith("re-liketu-moments")}catch{return!1}}const M=".markdown-view:not(.markdown-view-pure) a",F=new Set(["ecency.com","www.ecency.com","peakd.com","www.peakd.com","hive.blog","www.hive.blog"]);function U(a){return a.trim().replace(/^https?:\/\/(www\.)?(ecency\.com|peakd\.com|hive\.blog)/i,"").replace(/^\/+/,"").split("?")[0].replace(/#@.*$/i,"").replace(/\/+$/,"").toLowerCase()}function v(a){return Array.from(a.querySelectorAll(M)).filter(e=>{if((e.dataset.isInline??"").toLowerCase()==="true")return!1;if(e.dataset.postLinkChecked==="true")return e.classList.contains("markdown-post-link");if(e.dataset.postLinkChecked="true",(e.dataset.isInline??"").toLowerCase()==="true")return!1;if(e.classList.contains("markdown-post-link"))return!0;const n=e.getAttribute("href")??"";if(!n)return!1;try{const t=new URL(n,"https://ecency.com");if(t.protocol&&!/^https?:$/.test(t.protocol)||t.hostname&&t.hostname!==""&&!F.has(t.hostname)||t.hash.startsWith("#@"))return!1;const o=t.pathname.split("/").filter(Boolean);if(o.length<2)return!1;const c=decodeURIComponent(o.pop()??""),i=decodeURIComponent(o.pop()??"");if(!i.startsWith("@")||!c||!(o.length===0||o.length===1&&o[0].toLowerCase().startsWith("hive-")))return!1;const m=U(e.innerText),p=`${i}/${c}`.toLowerCase(),h=o.length===1?decodeURIComponent(o[0]).toLowerCase():void 0,f=new Set([p]);return h&&f.add(`${h}/${p}`),e.innerText.trim()===n.trim()||f.has(m)?(e.classList.add("markdown-post-link"),!0):!1}catch{return!1}})}const b=new Map;function S(a){try{const r=new URL(`https://ecency.com${a}`).pathname.split("/"),e=decodeURIComponent(r[3]||""),n=/\.(jpg|jpeg|png|gif|webp|svg)$/i.test(e),t=/[?#]/.test(e);return!/^[a-z0-9-]+$/.test(e)||n||t}catch{return!0}}function C({link:a}){const[r,e]=l.useState(),n=l.useMemo(()=>new URL(a,"https://ecency.com"),[a]),t=n.pathname.toLowerCase(),o=l.useCallback(async()=>{var i,d,m,p;if(b.has(t)){e(b.get(t));return}if(S(t)){console.warn("[Ecency Renderer] Skipping invalid post link:",t);return}try{const f=await(await fetch(`https://ecency.com${t}`,{method:"GET"})).text(),w=document.createElement("html");w.innerHTML=f;const g=(i=w.querySelector('meta[property="og:title"]'))==null?void 0:i.getAttribute("content");if(g){const y={title:g,description:((m=(d=w.querySelector('meta[property="og:description"]'))==null?void 0:d.getAttribute("content"))==null?void 0:m.substring(0,71))??void 0,image:((p=w.querySelector('meta[property="og:image"]'))==null?void 0:p.getAttribute("content"))??void 0};b.set(t,y),e(y)}}catch(h){console.error(`[Ecency Renderer] Failed to fetch preview: ${a}`,h)}},[t,a]);l.useEffect(()=>{o()},[o]);const c=l.useMemo(()=>{const i=new URL(n.href),d=i.searchParams.get("referral");return`${i.pathname}${d?`?referral=${d}`:""}${i.hash}`},[n]);return s.jsx("a",{href:c,className:"ecency-renderer-hive-post-extension-link",target:"_blank",rel:"noopener",children:r?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-image",style:{backgroundImage:`url(${r.image})`}}),s.jsxs("div",{className:"ecency-renderer-hive-post-extension-link-text-content",children:[s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-type",children:"Hive post"}),s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-title",children:r.title}),s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-description",children:r.description+"..."})]})]}):a})}function O({containerRef:a}){return l.useEffect(()=>{const r=a.current;r&&v(r).filter(e=>!k(e.getAttribute("href")??"")).filter(e=>{try{const n=new URL(e.getAttribute("href")??"","https://ecency.com");return!S(n.pathname)}catch{return!1}}).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=document.createElement("div");n.classList.add("ecency-renderer-hive-post-extension");const t=e.getAttribute("href")??"";u.createRoot(n).render(s.jsx(C,{link:t})),(c=e.parentElement)==null||c.replaceChild(n,e)})},[]),null}function R({author:a}){const r=`https://images.ecency.com/u${a.toLowerCase().replace("@","")}/avatar/small`;return s.jsxs(s.Fragment,{children:[s.jsx("img",{src:r,className:"ecency-renderer-author-extension-link-image",alt:a}),s.jsxs("div",{className:"ecency-renderer-author-extension-link-content",children:[s.jsx("span",{className:"ecency-renderer-author-extension-link-content-label",children:"Hive account"}),s.jsx("span",{children:a.toLowerCase().replace("/","")})]})]})}function B({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-author-link"))??[]).forEach(n=>{var i;if(n.dataset.enhanced==="true")return;const t=n.getAttribute("href");if(!t)return;const o=document.createElement("a");o.setAttribute("href",t),o.setAttribute("target","_blank"),o.setAttribute("rel","noopener"),o.classList.add("ecency-renderer-author-extension"),o.classList.add("ecency-renderer-author-extension-link"),u.createRoot(o).render(s.jsx(R,{author:t})),(i=n.parentElement)==null||i.replaceChild(o,n),o.dataset.enhanced="true"})},[]),null}function D({tag:a}){return s.jsx("span",{children:a.replace("/","")})}function z({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-tag-link"))??[]).forEach(n=>{var c;const t=document.createElement("a");t.setAttribute("href",n.getAttribute("href")??""),t.setAttribute("target","_blank"),t.setAttribute("rel","noopener"),t.classList.add("ecency-renderer-tag-extension"),t.classList.add("ecency-renderer-tag-extension-link"),u.createRoot(t).render(s.jsx(D,{tag:n.innerText})),(c=n.parentElement)==null||c.replaceChild(t,n)})},[]),null}function N(a){try{const r=new URL(a);let e="";if(r.hostname==="youtu.be"?e=r.pathname.slice(1):r.pathname.startsWith("/shorts/")?e=r.pathname.split("/shorts/")[1]:r.pathname.startsWith("/embed/")?e=r.pathname.split("/embed/")[1]:e=r.searchParams.get("v")??"",!e)return"";const n=new URLSearchParams,t=r.searchParams.get("t")||r.searchParams.get("start")||r.searchParams.get("time_continue");if(t){const i=V(t);i&&n.set("start",i.toString())}const o=r.searchParams.get("list");o&&n.set("list",o),n.set("rel","0"),n.set("modestbranding","1");const c=n.toString();return`https://www.youtube.com/embed/${e}${c?`?${c}`:""}`}catch{return""}}function V(a){const r=/(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?/,e=a.match(r);if(e&&(e[1]||e[2]||e[3])){const t=parseInt(e[1]||"0",10),o=parseInt(e[2]||"0",10),c=parseInt(e[3]||"0",10);return t*3600+o*60+c}const n=parseInt(a,10);return Number.isNaN(n)?void 0:n}function T({embedSrc:a,container:r}){const[e,n]=l.useState(!1);return l.useEffect(()=>{const t=()=>n(!0);return r.addEventListener("click",t),()=>r.removeEventListener("click",t)},[]),l.useEffect(()=>{if(e){const t=r.querySelector(".video-thumbnail"),o=r.querySelector(".markdown-video-play");t&&(t.style.display="none"),o&&(o.style.display="none")}},[e]),e?s.jsx("iframe",{className:"youtube-shorts-iframe",src:a,title:"Video player",frameBorder:"0",allow:"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0}):null}function Y({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-youtube:not(.ecency-renderer-youtube-extension)"))??[]).forEach(n=>{const t=n.dataset.embedSrc||N(n.getAttribute("href")??"");n.dataset.embedSrc=t;const o=document.createElement("div");o.classList.add("ecency-renderer-youtube-extension-frame"),n.classList.add("ecency-renderer-youtube-extension"),u.hydrateRoot(o,s.jsx(T,{embedSrc:t,container:n})),n.appendChild(o)})},[]),s.jsx(s.Fragment,{})}const E=new Map;async function Z(a,r){if(E.has(`${a}/${r}`))return E.get(`${a}/${r}`);const e=await window.dHiveClient.call("condenser_api","get_content",[a,r]);return E.set(`${a}/${r}`,e),e}const K='';function $({link:a}){const[r,e]=l.useState(),n=l.useMemo(()=>{var o,c,i,d;return(o=r==null?void 0:r.permlink)!=null&&o.startsWith("re-ecencywaves")||(c=r==null?void 0:r.permlink)!=null&&c.startsWith("wave-")?"ecency.waves":(i=r==null?void 0:r.permlink)!=null&&i.startsWith("re-leothreads")?"threads":(d=r==null?void 0:r.permlink)!=null&&d.startsWith("re-liketu-moments")?"moments":""},[r]);if(l.useEffect(()=>{const[o,c,i,d,m]=new URL(a,"https://ecency.com").pathname.split("/");Z(d.replace("@",""),m).then(p=>{e(p)}).catch(p=>console.error(p))},[]),!r)return s.jsx(s.Fragment,{});const t=`/waves/${r.author}/${r.permlink}`;return s.jsxs("article",{className:"ecency-renderer-wave-like-post-extension-renderer",children:[s.jsx("a",{href:t,"aria-label":`Open wave by @${r.author}`,className:"ecency-renderer-wave-like-post-extension-renderer__overlay"}),s.jsxs("div",{className:"ecency-renderer-wave-like-post-extension-renderer--author",children:[s.jsx("img",{src:`https://images.ecency.com/u/${r.author}/avatar/small`,alt:r.author,className:"ecency-renderer-wave-like-post-extension-renderer--author-avatar"}),s.jsxs("div",{className:"ecency-renderer-wave-like-post-extension-renderer--author-content",children:[s.jsxs("a",{className:"ecency-renderer-wave-like-post-extension-renderer--author-content-link",href:`/@${r.author}/posts`,children:["@",r.author]}),s.jsxs("div",{className:"ecency-renderer-wave-like-post-extension-renderer--author-content-host",children:["#",n]})]})]}),s.jsx("a",{href:"https://ecency.com",className:"ecency-renderer-wave-like-post-extension-renderer--logo",dangerouslySetInnerHTML:{__html:K}}),s.jsx("div",{className:"ecency-renderer-wave-like-post-extension-renderer--body",children:s.jsx(I,{value:r.body})})]})}function G({containerRef:a}){return l.useEffect(()=>{const r=a.current;r&&v(r).filter(e=>k(e.getAttribute("href")??"")).forEach(e=>{var t;const n=document.createElement("div");n.classList.add("ecency-renderer-wave-like-extension"),u.hydrateRoot(n,s.jsx($,{link:e.getAttribute("href")??""})),(t=e.parentElement)==null||t.replaceChild(n,e)})},[]),s.jsx(s.Fragment,{})}function q({op:a}){const r=l.useMemo(()=>{try{const n=atob(a);return JSON.parse(n)}catch{return}},[a]),e=l.useMemo(()=>r==null?void 0:r[0].split("_").join(" "),[r]);return s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ecency-renderer-hive-operation-extension-label",children:"Hive operation, click to Sign"}),!r&&a,s.jsx("div",{className:"ecency-renderer-hive-operation-extension-content",children:r&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"ecency-renderer-hive-operation-extension-type",children:e}),e==="transfer"&&s.jsxs("div",{className:"ecency-renderer-hive-operation-extension-transfer",children:[s.jsx("span",{className:"ecency-renderer-hive-operation-extension-transfer-highlight",children:r[1].amount}),s.jsx("span",{children:" to"}),s.jsx("img",{src:`https://images.ecency.com/u/${r[1].to}/avatar/small`,className:"ecency-renderer-hive-operation-extension-transfer-image",alt:""}),s.jsx("span",{className:"ecency-renderer-hive-operation-extension-transfer-highlight",children:r[1].to})]})]})})]})}function J({containerRef:a,onClick:r}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link"))??[]).filter(n=>{var t;return(t=n.innerText)==null?void 0:t.startsWith("hive://sign/op/")}).forEach(n=>{var i;const t=document.createElement("div");t.classList.add("ecency-renderer-hive-operation-extension");const o=n.innerText.replace("hive://sign/op/","");t.addEventListener("click",()=>r==null?void 0:r(o)),u.createRoot(t).render(s.jsx(q,{op:o})),(i=n.parentElement)==null||i.replaceChild(t,n)})},[a,r]),null}function Q({containerRef:a,ComponentInstance:r}){return l.useEffect(()=>{var n;Array.from(((n=a.current)==null?void 0:n.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link"))??[]).filter(t=>{const o=t.getAttribute("href")||"";return o.startsWith("https://x.com")||o.startsWith("https://twitter.com")}).forEach(t=>{try{const o=t.getAttribute("href");if(!o)return;const i=new URL(o).pathname.split("/").pop();if(!i)return;const d=document.createElement("div");d.classList.add("ecency-renderer-twitter-extension-frame"),t.classList.add("ecency-renderer-twitter-extension"),t.innerHTML="",t.appendChild(d),u.createRoot(d).render(s.jsx(r,{id:i}))}catch(o){console.warn("TwitterExtension failed to render tweet:",o)}})},[a]),null}function P({embedSrc:a,container:r}){const[e,n]=l.useState(!1);return l.useEffect(()=>{const t=()=>n(!0);return r.addEventListener("click",t),()=>r.removeEventListener("click",t)},[]),l.useEffect(()=>{if(e){const t=r.querySelector(".video-thumbnail"),o=r.querySelector(".markdown-video-play");t&&(t.style.display="none"),o&&(o.style.display="none")}},[e]),e?s.jsx("iframe",{className:"speak-iframe",src:a,title:"3Speak video",frameBorder:"0",allow:"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0}):null}function X({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-speak:not(.ecency-renderer-speak-extension)"))??[]).forEach(n=>{const t=document.createElement("div");t.classList.add("ecency-renderer-speak-extension-frame"),n.classList.add("ecency-renderer-speak-extension"),u.hydrateRoot(t,s.jsx(P,{embedSrc:n.dataset.embedSrc??"",container:n})),n.appendChild(t)})},[]),s.jsx(s.Fragment,{})}function I({value:a,pure:r=!1,onHiveOperationClick:e,TwitterComponent:n=()=>s.jsx("div",{children:"No twitter component"}),...t}){const o=l.useRef(null);return s.jsxs(s.Fragment,{children:[s.jsx("div",{...t,ref:o,itemProp:"articleBody",className:H.clsx("entry-body markdown-view user-selectable",r?"markdown-view-pure":"",t.className),dangerouslySetInnerHTML:{__html:_.renderPostBody(a,!1)}}),!r&&s.jsxs(s.Fragment,{children:[s.jsx(W,{containerRef:o}),s.jsx(O,{containerRef:o}),s.jsx(B,{containerRef:o}),s.jsx(z,{containerRef:o}),s.jsx(Y,{containerRef:o}),s.jsx(X,{containerRef:o}),s.jsx(G,{containerRef:o}),s.jsx(Q,{containerRef:o,ComponentInstance:n}),s.jsx(J,{containerRef:o,onClick:e})]})]})}function ee(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) img")).filter(n=>{try{if(!n.isConnected)return!1;const t=n.parentNode;return t?t.nodeName!=="A"&&!n.classList.contains("medium-zoom-image")&&!n.closest(".markdown-image-container"):!1}catch(t){return console.warn("Error accessing image element properties:",t),!1}}).forEach(n=>{var t,o,c;try{if(!n.isConnected){console.warn("Image element is no longer connected to DOM, skipping");return}if(!n.parentElement){console.warn("Image element has no parent, skipping");return}const d=document.createElement("div");d.classList.add("markdown-image-container");const m=n.cloneNode(!0),p=(t=n.getAttribute("title"))==null?void 0:t.trim(),h=(o=n.getAttribute("data-caption"))==null?void 0:o.trim(),f=(c=n.getAttribute("alt"))==null?void 0:c.trim(),w=f?/^[\w,\s-]+\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i.test(f):!1,g=p||h||(w?"":f);if(g){const y=document.createElement("div");y.classList.add("markdown-img-caption"),y.innerText=g,d.appendChild(m),d.appendChild(y)}else d.appendChild(m);n.isConnected&&n.parentElement&&n.parentElement.replaceChild(d,n)}catch(i){console.warn("Error enhancing image element:",i)}}),A(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) img")).update({background:"#131111"})}function te(a,r=v(a)){r.filter(e=>e.dataset.isInline!=="true").filter(e=>!k(e.getAttribute("href")??"")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.getAttribute("href")??"",t=document.createElement("div");t.classList.add("ecency-renderer-hive-post-extension"),u.createRoot(t).render(s.jsx(C,{link:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}function re(a,r){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link")).filter(e=>e.innerText.startsWith("hive://sign/op/")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.innerText.replace("hive://sign/op/",""),t=document.createElement("div");t.classList.add("ecency-renderer-hive-operation-extension"),t.addEventListener("click",()=>r==null?void 0:r(n)),u.createRoot(t).render(s.jsx(q,{op:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}function ne(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-author-link")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.getAttribute("href");if(!n)return;const t=document.createElement("a");t.href=n,t.target="_blank",t.rel="noopener",t.classList.add("ecency-renderer-author-extension","ecency-renderer-author-extension-link"),u.createRoot(t).render(s.jsx(R,{author:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}function ae(a){a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-tag-link").forEach(e=>{e.classList.add("ecency-renderer-tag-link-enhanced")})}function se(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-youtube:not(.ecency-renderer-youtube-extension)")).forEach(e=>{if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.dataset.embedSrc||N(e.getAttribute("href")??"");e.dataset.embedSrc=n;const t=document.createElement("div");t.classList.add("ecency-renderer-youtube-extension-frame"),u.createRoot(t).render(s.jsx(T,{embedSrc:n,container:e})),e.appendChild(t)})}function oe(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-speak:not(.ecency-renderer-speak-extension)")).forEach(e=>{if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.dataset.embedSrc??"",t=document.createElement("div");t.classList.add("ecency-renderer-speak-extension-frame"),u.createRoot(t).render(s.jsx(P,{embedSrc:n,container:e})),e.appendChild(t)})}function ce(a,r){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link")).filter(n=>{const t=n.getAttribute("href")||"";if(!t.startsWith("https://x.com")&&!t.startsWith("https://twitter.com"))return!1;try{const c=new URL(t).pathname.split("/").filter(Boolean);return c.length>=3&&c[1]==="status"&&/^\d+$/.test(c[2])}catch{return!1}}).forEach(n=>{try{if(n.dataset.enhanced==="true")return;n.dataset.enhanced="true";const t=n.getAttribute("href");if(!t)return;const i=new URL(t).pathname.split("/").filter(Boolean)[2];if(!i)return;const d=document.createElement("div");d.classList.add("ecency-renderer-twitter-extension-frame"),n.innerHTML="",n.appendChild(d),u.createRoot(d).render(s.jsx(r,{id:i}))}catch(t){console.warn("applyTwitterEmbeds failed to render tweet:",t)}})}function ie(a,r=v(a)){r.filter(e=>e.dataset.isInline!=="true").filter(e=>k(e.getAttribute("href")??"")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.getAttribute("href")??"",t=document.createElement("div");t.classList.add("ecency-renderer-wave-like-extension"),u.createRoot(t).render(s.jsx($,{link:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}const de=({id:a})=>l.createElement("div",{style:{padding:"16px",border:"1px solid #e1e8ed",borderRadius:"8px",backgroundColor:"#f7f9fa",color:"#657786",textAlign:"center"}},`Failed to load tweet. View on Twitter: https://twitter.com/i/status/${a}`);function le(a,r){ee(a);const e=v(a);te(a,e),ne(a),re(a,r==null?void 0:r.onHiveOperationClick),ae(a),se(a),oe(a),ie(a,e),ce(a,(r==null?void 0:r.TwitterComponent)??de)}exports.EcencyRenderer=I;exports.setupPostEnhancements=le; +"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),_=require("@ecency/render-helper"),H=require("clsx"),A=require("medium-zoom"),s=require("react/jsx-runtime"),u=require("react-dom/client");function W({containerRef:a}){const r=l.useRef(void 0);return l.useEffect(()=>{var n,t,o;return Array.from(((n=a.current)==null?void 0:n.querySelectorAll(".markdown-view:not(.markdown-view-pure) img"))??[]).filter(c=>{try{if(!c.isConnected)return!1;const i=c.parentNode;return i?i.nodeName!=="A"&&!c.classList.contains("medium-zoom-image")&&!c.closest(".markdown-image-container"):!1}catch(i){return console.warn("Error accessing image element properties:",i),!1}}).forEach(c=>{var g,y,L,j;try{if(!c.isConnected){console.warn("Image element is no longer connected to DOM, skipping");return}const i=c.parentElement;if(!i){console.warn("Image element has no parent, skipping");return}const d=document.createElement("div");d.classList.add("markdown-image-container");const m=c.cloneNode(!0),p=(g=c.getAttribute("title"))==null?void 0:g.trim(),h=(y=c.getAttribute("data-caption"))==null?void 0:y.trim(),f=(L=c.getAttribute("alt"))==null?void 0:L.trim(),w=f?/^[\w,\s-]+\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i.test(f):!1,x=p||h||(w?"":f);if(x){const k=document.createElement("div");k.classList.add("markdown-img-caption"),k.innerText=x,d.appendChild(m),d.appendChild(k)}else d.appendChild(m);c.isConnected&&i&&i.replaceChild(d,c)}catch(i){console.warn("Error enhancing image element:",i)}}),r.current=A(((t=a.current)==null?void 0:t.querySelectorAll(".markdown-view:not(.markdown-view-pure) img"))??[]),(o=r.current)==null||o.update({background:"#131111"}),()=>{var c;(c=r.current)==null||c.detach()}},[]),s.jsx(s.Fragment,{})}function k(a){try{const r=new URL(a,"https://ecency.com").pathname.split("/").filter(Boolean).pop()??"";return r.includes("re-ecencywaves")||r.includes("re-leothreads")||r.startsWith("wave-")||r.startsWith("re-liketu-moments")}catch{return!1}}const M=".markdown-view:not(.markdown-view-pure) a",F=new Set(["ecency.com","www.ecency.com","peakd.com","www.peakd.com","hive.blog","www.hive.blog"]);function U(a){return a.trim().replace(/^https?:\/\/(www\.)?(ecency\.com|peakd\.com|hive\.blog)/i,"").replace(/^\/+/,"").split("?")[0].replace(/#@.*$/i,"").replace(/\/+$/,"").toLowerCase()}function v(a){return Array.from(a.querySelectorAll(M)).filter(e=>{if((e.dataset.isInline??"").toLowerCase()==="true")return!1;if(e.dataset.postLinkChecked==="true")return e.classList.contains("markdown-post-link");if(e.dataset.postLinkChecked="true",(e.dataset.isInline??"").toLowerCase()==="true")return!1;if(e.classList.contains("markdown-post-link"))return!0;const n=e.getAttribute("href")??"";if(!n)return!1;try{const t=new URL(n,"https://ecency.com");if(t.protocol&&!/^https?:$/.test(t.protocol)||t.hostname&&t.hostname!==""&&!F.has(t.hostname)||t.hash.startsWith("#@"))return!1;const o=t.pathname.split("/").filter(Boolean);if(o.length<2)return!1;const c=decodeURIComponent(o.pop()??""),i=decodeURIComponent(o.pop()??"");if(!i.startsWith("@")||!c||!(o.length===0||o.length===1&&o[0].toLowerCase().startsWith("hive-")))return!1;const m=U(e.innerText),p=`${i}/${c}`.toLowerCase(),h=o.length===1?decodeURIComponent(o[0]).toLowerCase():void 0,f=new Set([p]);return h&&f.add(`${h}/${p}`),e.innerText.trim()===n.trim()||f.has(m)?(e.classList.add("markdown-post-link"),!0):!1}catch{return!1}})}const b=new Map;function S(a){try{const r=new URL(`https://ecency.com${a}`).pathname.split("/"),e=decodeURIComponent(r[3]||""),n=/\.(jpg|jpeg|png|gif|webp|svg)$/i.test(e),t=/[?#]/.test(e);return!/^[a-z0-9-]+$/.test(e)||n||t}catch{return!0}}function C({link:a}){const[r,e]=l.useState(),n=l.useMemo(()=>new URL(a,"https://ecency.com"),[a]),t=n.pathname.toLowerCase(),o=l.useCallback(async()=>{var i,d,m,p;if(b.has(t)){e(b.get(t));return}if(S(t)){console.warn("[Ecency Renderer] Skipping invalid post link:",t);return}try{const f=await(await fetch(`https://ecency.com${t}`,{method:"GET"})).text(),w=document.createElement("html");w.innerHTML=f;const g=(i=w.querySelector('meta[property="og:title"]'))==null?void 0:i.getAttribute("content");if(g){const y={title:g,description:((m=(d=w.querySelector('meta[property="og:description"]'))==null?void 0:d.getAttribute("content"))==null?void 0:m.substring(0,71))??void 0,image:((p=w.querySelector('meta[property="og:image"]'))==null?void 0:p.getAttribute("content"))??void 0};b.set(t,y),e(y)}}catch(h){console.error(`[Ecency Renderer] Failed to fetch preview: ${a}`,h)}},[t,a]);l.useEffect(()=>{o()},[o]);const c=l.useMemo(()=>{const i=new URL(n.href),d=i.searchParams.get("referral");return`${i.pathname}${d?`?referral=${d}`:""}${i.hash}`},[n]);return s.jsx("a",{href:c,className:"ecency-renderer-hive-post-extension-link",target:"_blank",rel:"noopener",children:r?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-image",style:{backgroundImage:`url(${r.image})`}}),s.jsxs("div",{className:"ecency-renderer-hive-post-extension-link-text-content",children:[s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-type",children:"Hive post"}),s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-title",children:r.title}),s.jsx("div",{className:"ecency-renderer-hive-post-extension-link-description",children:r.description+"..."})]})]}):a})}function O({containerRef:a}){return l.useEffect(()=>{const r=a.current;r&&v(r).filter(e=>!k(e.getAttribute("href")??"")).filter(e=>{try{const n=new URL(e.getAttribute("href")??"","https://ecency.com");return!S(n.pathname)}catch{return!1}}).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=document.createElement("div");n.classList.add("ecency-renderer-hive-post-extension");const t=e.getAttribute("href")??"";u.createRoot(n).render(s.jsx(C,{link:t})),(c=e.parentElement)==null||c.replaceChild(n,e)})},[]),null}function R({author:a}){const r=`https://images.ecency.com/u${a.toLowerCase().replace("@","")}/avatar/small`;return s.jsxs(s.Fragment,{children:[s.jsx("img",{src:r,className:"ecency-renderer-author-extension-link-image",alt:a}),s.jsxs("div",{className:"ecency-renderer-author-extension-link-content",children:[s.jsx("span",{className:"ecency-renderer-author-extension-link-content-label",children:"Hive account"}),s.jsx("span",{children:a.toLowerCase().replace("/","")})]})]})}function B({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-author-link"))??[]).forEach(n=>{var i;if(n.dataset.enhanced==="true")return;const t=n.getAttribute("href");if(!t)return;const o=document.createElement("a");o.setAttribute("href",t),o.setAttribute("target","_blank"),o.setAttribute("rel","noopener"),o.classList.add("ecency-renderer-author-extension"),o.classList.add("ecency-renderer-author-extension-link"),u.createRoot(o).render(s.jsx(R,{author:t})),(i=n.parentElement)==null||i.replaceChild(o,n),o.dataset.enhanced="true"})},[]),null}function D({tag:a}){return s.jsx("span",{children:a.replace("/","")})}function z({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-tag-link"))??[]).forEach(n=>{var c;const t=document.createElement("a");t.setAttribute("href",n.getAttribute("href")??""),t.setAttribute("target","_blank"),t.setAttribute("rel","noopener"),t.classList.add("ecency-renderer-tag-extension"),t.classList.add("ecency-renderer-tag-extension-link"),u.createRoot(t).render(s.jsx(D,{tag:n.innerText})),(c=n.parentElement)==null||c.replaceChild(t,n)})},[]),null}function N(a){try{const r=new URL(a);let e="";if(r.hostname==="youtu.be"?e=r.pathname.slice(1):r.pathname.startsWith("/shorts/")?e=r.pathname.split("/shorts/")[1]:r.pathname.startsWith("/embed/")?e=r.pathname.split("/embed/")[1]:e=r.searchParams.get("v")??"",!e)return"";const n=new URLSearchParams,t=r.searchParams.get("t")||r.searchParams.get("start")||r.searchParams.get("time_continue");if(t){const i=V(t);i&&n.set("start",i.toString())}const o=r.searchParams.get("list");o&&n.set("list",o),n.set("rel","0"),n.set("modestbranding","1");const c=n.toString();return`https://www.youtube.com/embed/${e}${c?`?${c}`:""}`}catch{return""}}function V(a){const r=/(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?/,e=a.match(r);if(e&&(e[1]||e[2]||e[3])){const t=parseInt(e[1]||"0",10),o=parseInt(e[2]||"0",10),c=parseInt(e[3]||"0",10);return t*3600+o*60+c}const n=parseInt(a,10);return Number.isNaN(n)?void 0:n}function T({embedSrc:a,container:r}){const[e,n]=l.useState(!1);return l.useEffect(()=>{const t=()=>n(!0);return r.addEventListener("click",t),()=>r.removeEventListener("click",t)},[]),l.useEffect(()=>{if(e){const t=r.querySelector(".video-thumbnail"),o=r.querySelector(".markdown-video-play");t&&(t.style.display="none"),o&&(o.style.display="none")}},[e]),e?s.jsx("iframe",{className:"youtube-shorts-iframe",src:a,title:"Video player",frameBorder:"0",allow:"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0}):null}function Y({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-youtube:not(.ecency-renderer-youtube-extension)"))??[]).forEach(n=>{const t=n.dataset.embedSrc||N(n.getAttribute("href")??"");n.dataset.embedSrc=t;const o=document.createElement("div");o.classList.add("ecency-renderer-youtube-extension-frame"),n.classList.add("ecency-renderer-youtube-extension"),u.hydrateRoot(o,s.jsx(T,{embedSrc:t,container:n})),n.appendChild(o)})},[]),s.jsx(s.Fragment,{})}const E=new Map;async function Z(a,r){if(E.has(`${a}/${r}`))return E.get(`${a}/${r}`);const e=await window.dHiveClient.call("condenser_api","get_content",[a,r]);return E.set(`${a}/${r}`,e),e}const K='';function $({link:a}){const[r,e]=l.useState(),n=l.useMemo(()=>{var o,c,i,d;return(o=r==null?void 0:r.permlink)!=null&&o.startsWith("re-ecencywaves")||(c=r==null?void 0:r.permlink)!=null&&c.startsWith("wave-")?"ecency.waves":(i=r==null?void 0:r.permlink)!=null&&i.startsWith("re-leothreads")?"threads":(d=r==null?void 0:r.permlink)!=null&&d.startsWith("re-liketu-moments")?"moments":""},[r]);if(l.useEffect(()=>{const[o,c,i,d,m]=new URL(a,"https://ecency.com").pathname.split("/");Z(d.replace("@",""),m).then(p=>{e(p)}).catch(p=>console.error(p))},[]),!r)return s.jsx(s.Fragment,{});const t=`/waves/${r.author}/${r.permlink}`;return s.jsxs("article",{className:"ecency-renderer-wave-like-post-extension-renderer",children:[s.jsx("a",{href:t,"aria-label":`Open wave by @${r.author}`,className:"ecency-renderer-wave-like-post-extension-renderer__overlay"}),s.jsxs("div",{className:"ecency-renderer-wave-like-post-extension-renderer--author",children:[s.jsx("img",{src:`https://images.ecency.com/u/${r.author}/avatar/small`,alt:r.author,className:"ecency-renderer-wave-like-post-extension-renderer--author-avatar"}),s.jsxs("div",{className:"ecency-renderer-wave-like-post-extension-renderer--author-content",children:[s.jsxs("a",{className:"ecency-renderer-wave-like-post-extension-renderer--author-content-link",href:`/@${r.author}/posts`,children:["@",r.author]}),s.jsxs("div",{className:"ecency-renderer-wave-like-post-extension-renderer--author-content-host",children:["#",n]})]})]}),s.jsx("a",{href:"https://ecency.com",className:"ecency-renderer-wave-like-post-extension-renderer--logo",dangerouslySetInnerHTML:{__html:K}}),s.jsx("div",{className:"ecency-renderer-wave-like-post-extension-renderer--body",children:s.jsx(I,{value:r.body})})]})}function G({containerRef:a}){return l.useEffect(()=>{const r=a.current;r&&v(r).filter(e=>k(e.getAttribute("href")??"")).forEach(e=>{var t;const n=document.createElement("div");n.classList.add("ecency-renderer-wave-like-extension"),u.hydrateRoot(n,s.jsx($,{link:e.getAttribute("href")??""})),(t=e.parentElement)==null||t.replaceChild(n,e)})},[]),s.jsx(s.Fragment,{})}function q({op:a}){const r=l.useMemo(()=>{try{const n=atob(a);return JSON.parse(n)}catch{return}},[a]),e=l.useMemo(()=>r==null?void 0:r[0].split("_").join(" "),[r]);return s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ecency-renderer-hive-operation-extension-label",children:"Hive operation, click to Sign"}),!r&&a,s.jsx("div",{className:"ecency-renderer-hive-operation-extension-content",children:r&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"ecency-renderer-hive-operation-extension-type",children:e}),e==="transfer"&&s.jsxs("div",{className:"ecency-renderer-hive-operation-extension-transfer",children:[s.jsx("span",{className:"ecency-renderer-hive-operation-extension-transfer-highlight",children:r[1].amount}),s.jsx("span",{children:" to"}),s.jsx("img",{src:`https://images.ecency.com/u/${r[1].to}/avatar/small`,className:"ecency-renderer-hive-operation-extension-transfer-image",alt:""}),s.jsx("span",{className:"ecency-renderer-hive-operation-extension-transfer-highlight",children:r[1].to})]})]})})]})}function J({containerRef:a,onClick:r}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link"))??[]).filter(n=>{var t;return(t=n.innerText)==null?void 0:t.startsWith("hive://sign/op/")}).forEach(n=>{var i;const t=document.createElement("div");t.classList.add("ecency-renderer-hive-operation-extension");const o=n.innerText.replace("hive://sign/op/","");t.addEventListener("click",()=>r==null?void 0:r(o)),u.createRoot(t).render(s.jsx(q,{op:o})),(i=n.parentElement)==null||i.replaceChild(t,n)})},[a,r]),null}function Q({containerRef:a,ComponentInstance:r}){return l.useEffect(()=>{var n;Array.from(((n=a.current)==null?void 0:n.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link"))??[]).filter(t=>{const o=t.getAttribute("href")||"";return o.startsWith("https://x.com")||o.startsWith("https://twitter.com")}).forEach(t=>{try{const o=t.getAttribute("href");if(!o)return;const i=new URL(o).pathname.split("/").pop();if(!i)return;const d=document.createElement("div");d.classList.add("ecency-renderer-twitter-extension-frame"),t.classList.add("ecency-renderer-twitter-extension"),t.innerHTML="",t.appendChild(d),u.createRoot(d).render(s.jsx(r,{id:i}))}catch(o){console.warn("TwitterExtension failed to render tweet:",o)}})},[a]),null}function P({embedSrc:a,container:r}){const[e,n]=l.useState(!1);return l.useEffect(()=>{const t=()=>n(!0);return r.addEventListener("click",t),()=>r.removeEventListener("click",t)},[]),l.useEffect(()=>{if(e){const t=r.querySelector(".video-thumbnail"),o=r.querySelector(".markdown-video-play");t&&(t.style.display="none"),o&&(o.style.display="none")}},[e]),e?s.jsx("iframe",{className:"speak-iframe",src:a,title:"3Speak video",frameBorder:"0",allow:"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0}):null}function X({containerRef:a}){return l.useEffect(()=>{var e;Array.from(((e=a.current)==null?void 0:e.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-speak:not(.ecency-renderer-speak-extension)"))??[]).forEach(n=>{const t=document.createElement("div");t.classList.add("ecency-renderer-speak-extension-frame"),n.classList.add("ecency-renderer-speak-extension"),u.hydrateRoot(t,s.jsx(P,{embedSrc:n.dataset.embedSrc??"",container:n})),n.appendChild(t)})},[]),s.jsx(s.Fragment,{})}function I({value:a,pure:r=!1,onHiveOperationClick:e,TwitterComponent:n=()=>s.jsx("div",{children:"No twitter component"}),...t}){const o=l.useRef(null);return s.jsxs(s.Fragment,{children:[s.jsx("div",{...t,ref:o,itemProp:"articleBody",className:H.clsx("entry-body markdown-view user-selectable",r?"markdown-view-pure":"",t.className),dangerouslySetInnerHTML:{__html:_.renderPostBody(a,!1)}}),!r&&s.jsxs(s.Fragment,{children:[s.jsx(W,{containerRef:o}),s.jsx(O,{containerRef:o}),s.jsx(B,{containerRef:o}),s.jsx(z,{containerRef:o}),s.jsx(Y,{containerRef:o}),s.jsx(X,{containerRef:o}),s.jsx(G,{containerRef:o}),s.jsx(Q,{containerRef:o,ComponentInstance:n}),s.jsx(J,{containerRef:o,onClick:e})]})]})}function ee(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) img")).filter(n=>{try{if(!n.isConnected)return!1;const t=n.parentNode;return t?t.nodeName!=="A"&&!n.classList.contains("medium-zoom-image")&&!n.closest(".markdown-image-container"):!1}catch(t){return console.warn("Error accessing image element properties:",t),!1}}).forEach(n=>{var t,o,c;try{if(!n.isConnected){console.warn("Image element is no longer connected to DOM, skipping");return}if(!n.parentElement){console.warn("Image element has no parent, skipping");return}const d=document.createElement("div");d.classList.add("markdown-image-container");const m=n.cloneNode(!0),p=(t=n.getAttribute("title"))==null?void 0:t.trim(),h=(o=n.getAttribute("data-caption"))==null?void 0:o.trim(),f=(c=n.getAttribute("alt"))==null?void 0:c.trim(),w=f?/^[\w,\s-]+\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i.test(f):!1,g=p||h||(w?"":f);if(g){const y=document.createElement("div");y.classList.add("markdown-img-caption"),y.innerText=g,d.appendChild(m),d.appendChild(y)}else d.appendChild(m);n.isConnected&&n.parentElement&&n.parentElement.replaceChild(d,n)}catch(i){console.warn("Error enhancing image element:",i)}}),A(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) img")).update({background:"#131111"})}function te(a,r=v(a)){r.filter(e=>e.dataset.isInline!=="true").filter(e=>!k(e.getAttribute("href")??"")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.getAttribute("href")??"",t=document.createElement("div");t.classList.add("ecency-renderer-hive-post-extension"),u.createRoot(t).render(s.jsx(C,{link:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}function re(a,r){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link")).filter(e=>e.innerText.startsWith("hive://sign/op/")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.innerText.replace("hive://sign/op/",""),t=document.createElement("div");t.classList.add("ecency-renderer-hive-operation-extension"),t.addEventListener("click",()=>r==null?void 0:r(n)),u.createRoot(t).render(s.jsx(q,{op:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}function ne(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-author-link")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.getAttribute("href");if(!n)return;const t=document.createElement("a");t.href=n,t.target="_blank",t.rel="noopener",t.classList.add("ecency-renderer-author-extension","ecency-renderer-author-extension-link"),u.createRoot(t).render(s.jsx(R,{author:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}function ae(a){a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-tag-link").forEach(e=>{e.classList.add("ecency-renderer-tag-link-enhanced")})}function se(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-youtube:not(.ecency-renderer-youtube-extension)")).forEach(e=>{if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.dataset.embedSrc||N(e.getAttribute("href")??"");e.dataset.embedSrc=n;const t=document.createElement("div");t.classList.add("ecency-renderer-youtube-extension-frame"),u.createRoot(t).render(s.jsx(T,{embedSrc:n,container:e})),e.appendChild(t)})}function oe(a){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-video-link-speak:not(.ecency-renderer-speak-extension)")).forEach(e=>{if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.dataset.embedSrc??"",t=document.createElement("div");t.classList.add("ecency-renderer-speak-extension-frame"),u.createRoot(t).render(s.jsx(P,{embedSrc:n,container:e})),e.appendChild(t)})}function ce(a,r){Array.from(a.querySelectorAll(".markdown-view:not(.markdown-view-pure) .markdown-external-link")).filter(n=>{const t=n.getAttribute("href")||"";if(!t.startsWith("https://x.com")&&!t.startsWith("https://twitter.com"))return!1;try{const c=new URL(t).pathname.split("/").filter(Boolean);return c.length>=3&&c[1]==="status"&&/^\d+$/.test(c[2])}catch{return!1}}).forEach(n=>{try{if(n.dataset.enhanced==="true")return;n.dataset.enhanced="true";const t=n.getAttribute("href");if(!t)return;const i=new URL(t).pathname.split("/").filter(Boolean)[2];if(!i)return;const d=document.createElement("div");d.classList.add("ecency-renderer-twitter-extension-frame"),n.innerHTML="",n.appendChild(d),u.createRoot(d).render(s.jsx(r,{id:i}))}catch(t){console.warn("applyTwitterEmbeds failed to render tweet:",t)}})}function ie(a,r=v(a)){r.filter(e=>e.dataset.isInline!=="true").filter(e=>k(e.getAttribute("href")??"")).forEach(e=>{var c;if(e.dataset.enhanced==="true")return;e.dataset.enhanced="true";const n=e.getAttribute("href")??"",t=document.createElement("div");t.classList.add("ecency-renderer-wave-like-extension"),u.createRoot(t).render(s.jsx($,{link:n})),(c=e.parentElement)==null||c.replaceChild(t,e)})}const de=({id:a})=>l.createElement("div",{style:{padding:"16px",border:"1px solid #e1e8ed",borderRadius:"8px",backgroundColor:"#f7f9fa",color:"#657786",textAlign:"center"}},`Failed to load tweet. View on Twitter: https://twitter.com/i/status/${a}`);function le(a,r){ee(a);const e=v(a);te(a,e),ne(a),re(a,r==null?void 0:r.onHiveOperationClick),ae(a),se(a),oe(a),ie(a,e),ce(a,(r==null?void 0:r.TwitterComponent)??de)}exports.EcencyRenderer=I;exports.setupPostEnhancements=le; diff --git a/packages/renderer/dist/ecency-renderer.es.js b/packages/renderer/dist/ecency-renderer.es.js index d5e30acce8..9651a4faf6 100644 --- a/packages/renderer/dist/ecency-renderer.es.js +++ b/packages/renderer/dist/ecency-renderer.es.js @@ -11,19 +11,38 @@ function F({ return l(() => { var n, t, o; return Array.from(((n = a.current) == null ? void 0 : n.querySelectorAll(".markdown-view:not(.markdown-view-pure) img")) ?? []).filter((s) => { - var i; - return ((i = s.parentNode) == null ? void 0 : i.nodeName) !== "A" && !s.classList.contains("medium-zoom-image") && !s.closest(".markdown-image-container"); + try { + if (!s.isConnected) + return !1; + const i = s.parentNode; + return i ? i.nodeName !== "A" && !s.classList.contains("medium-zoom-image") && !s.closest(".markdown-image-container") : !1; + } catch (i) { + return console.warn("Error accessing image element properties:", i), !1; + } }).forEach((s) => { var k, g, R, T; - const i = document.createElement("div"); - i.classList.add("markdown-image-container"); - const d = s.cloneNode(!0), u = (k = s.getAttribute("title")) == null ? void 0 : k.trim(), p = (g = s.getAttribute("data-caption")) == null ? void 0 : g.trim(), f = (R = s.getAttribute("alt")) == null ? void 0 : R.trim(), y = f ? /^[\w,\s-]+\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i.test(f) : !1, v = u || p || (y ? "" : f); - if (v) { - const A = document.createElement("div"); - A.classList.add("markdown-img-caption"), A.innerText = v, i.appendChild(d), i.appendChild(A); - } else - i.appendChild(d); - (T = s.parentElement) == null || T.replaceChild(i, s); + try { + if (!s.isConnected) { + console.warn("Image element is no longer connected to DOM, skipping"); + return; + } + const i = s.parentElement; + if (!i) { + console.warn("Image element has no parent, skipping"); + return; + } + const d = document.createElement("div"); + d.classList.add("markdown-image-container"); + const u = s.cloneNode(!0), p = (k = s.getAttribute("title")) == null ? void 0 : k.trim(), h = (g = s.getAttribute("data-caption")) == null ? void 0 : g.trim(), f = (R = s.getAttribute("alt")) == null ? void 0 : R.trim(), y = f ? /^[\w,\s-]+\.(jpg|jpeg|png|gif|webp|bmp|svg)$/i.test(f) : !1, v = p || h || (y ? "" : f); + if (v) { + const A = document.createElement("div"); + A.classList.add("markdown-img-caption"), A.innerText = v, d.appendChild(u), d.appendChild(A); + } else + d.appendChild(u); + s.isConnected && i && i.replaceChild(d, s); + } catch (i) { + console.warn("Error enhancing image element:", i); + } }), r.current = I(((t = a.current) == null ? void 0 : t.querySelectorAll(".markdown-view:not(.markdown-view-pure) img")) ?? []), (o = r.current) == null || o.update({ background: "#131111" }), () => { diff --git a/packages/renderer/package.json b/packages/renderer/package.json index 651b4d5467..526a2b0fa2 100644 --- a/packages/renderer/package.json +++ b/packages/renderer/package.json @@ -1,6 +1,6 @@ { "name": "@ecency/renderer", - "version": "1.3.7", + "version": "1.3.8", "description": "React components for rendering Hive posts using Ecency extensions", "type": "module", "files": ["dist", "README.md"],