diff --git a/website/src/js/channel-preview.jsc b/website/src/js/channel-preview.jsc index 7f7a12d484..2aa616561c 100644 --- a/website/src/js/channel-preview.jsc +++ b/website/src/js/channel-preview.jsc @@ -447,6 +447,10 @@ function initChannelPreview(container) { container.innerHTML = '
Loading channel...
'; fetchPreview(relayScheme, relayDomains, channelLink, channelId).then(data => { + if (data === 'link_mismatch') { + container.innerHTML = 'All relays returned a different channel link from specified in the page.
'; + return; + } if (!data) { container.innerHTML = 'Failed to load channel preview.
'; return; @@ -465,6 +469,7 @@ function injectStyles() { } async function fetchPreview(relayScheme, relayDomains, channelLink, channelId) { + let linkMismatch = false; for (const domain of relayDomains) { try { const url = `${relayScheme}://${domain}/channel/${channelId}.json`; @@ -472,13 +477,16 @@ async function fetchPreview(relayScheme, relayDomains, channelLink, channelId) { if (!resp.ok) continue; const data = await resp.json(); const relayLink = data.channel?.publicGroup?.groupLink; - if (channelLink && relayLink && channelLink !== relayLink) continue; + if (channelLink && relayLink && channelLink !== relayLink) { + linkMismatch = true; + continue; + } return data; } catch(e) { continue; } } - return null; + return linkMismatch ? 'link_mismatch' : null; } function render(container, data, channelLink) {