diff --git a/src/components/status.jsx b/src/components/status.jsx index 0bd92926..e4e91be2 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -106,6 +106,43 @@ function getPostText(status) { ); } +const PostContent = memo( + ({ post, instance, previewMode }) => { + const { content, emojis, language, mentions, url } = post; + return ( +
{ + // Remove target="_blank" from links + dom.querySelectorAll('a.u-url[target="_blank"]').forEach((a) => { + if (!/http/i.test(a.innerText.trim())) { + a.removeAttribute('target'); + } + }); + }, + }), + }} + /> + ); + }, + (oldProps, newProps) => { + const { content: oldContent } = oldProps; + const { content: newContent } = newProps; + return oldContent === newContent; + }, +); + function Status({ statusID, status, @@ -1680,59 +1717,10 @@ function Status({ ref={contentRef} data-read-more={readMoreText} > -
{ - // Remove target="_blank" from links - dom - .querySelectorAll('a.u-url[target="_blank"]') - .forEach((a) => { - if (!/http/i.test(a.innerText.trim())) { - a.removeAttribute('target'); - } - }); - // if (previewMode) return; - // Unfurl Mastodon links - // Array.from( - // dom.querySelectorAll( - // 'a[href]:not(.u-url):not(.mention):not(.hashtag)', - // ), - // ) - // .filter((a) => { - // const url = a.href; - // const isPostItself = - // url === status.url || url === status.uri; - // return !isPostItself && isMastodonLinkMaybe(url); - // }) - // .forEach((a, i) => { - // unfurlMastodonLink(currentInstance, a.href).then( - // (result) => { - // if (!result) return; - // a.removeAttribute('target'); - // if (!sKey) return; - // if (!Array.isArray(states.statusQuotes[sKey])) { - // states.statusQuotes[sKey] = []; - // } - // if (!states.statusQuotes[sKey][i]) { - // states.statusQuotes[sKey].splice(i, 0, result); - // } - // }, - // ); - // }); - }, - }), - }} +