diff --git a/bskyembed/snippet/embed.ts b/bskyembed/snippet/embed.ts index f2b9b442..380cda5f 100644 --- a/bskyembed/snippet/embed.ts +++ b/bskyembed/snippet/embed.ts @@ -59,9 +59,19 @@ function scan(node = document) { continue } + const ref_url = location.origin + location.pathname + + const searchParams = new URLSearchParams() + searchParams.set('id', id) + if (ref_url.startsWith('http')) { + searchParams.set('ref_url', encodeURIComponent(ref_url)) + } + const iframe = document.createElement('iframe') iframe.setAttribute('data-bluesky-id', id) - iframe.src = `${EMBED_URL}/embed/${aturi.slice('at://'.length)}?id=${id}` + iframe.src = `${EMBED_URL}/embed/${aturi.slice( + 'at://'.length, + )}?${searchParams.toString()}` iframe.width = '100%' iframe.style.border = 'none' iframe.style.display = 'block' diff --git a/bskyembed/src/components/link.tsx b/bskyembed/src/components/link.tsx index db752542..64c2c9a8 100644 --- a/bskyembed/src/components/link.tsx +++ b/bskyembed/src/components/link.tsx @@ -8,8 +8,14 @@ export function Link({ href: string className?: string } & h.JSX.HTMLAttributes) { + const searchParam = new URLSearchParams(window.location.search) + const ref_url = searchParam.get('ref_url') + const newSearchParam = new URLSearchParams() newSearchParam.set('ref_src', 'embed') + if (ref_url) { + newSearchParam.set('ref_url', ref_url) + } return (