From 3d4b4901bb7c8939d77c64b3c76d22163843f31b Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald Date: Tue, 22 Jun 2021 04:26:39 +1000 Subject: [PATCH] RemoteContent: fix graphcontent embedding --- .../src/stories/RemoteContent.stories.tsx | 6 ++++ .../apps/links/components/LinkBlockItem.tsx | 2 +- .../views/components/RemoteContent/embed.tsx | 30 +++++++------------ .../views/components/RemoteContent/index.tsx | 11 ++----- .../components/RemoteContent/wrapper.tsx | 2 +- 5 files changed, 20 insertions(+), 31 deletions(-) diff --git a/pkg/interface/src/stories/RemoteContent.stories.tsx b/pkg/interface/src/stories/RemoteContent.stories.tsx index 80fb8b3ff..98be35b2d 100644 --- a/pkg/interface/src/stories/RemoteContent.stories.tsx +++ b/pkg/interface/src/stories/RemoteContent.stories.tsx @@ -38,3 +38,9 @@ Twitter.args = { // massive test flake unfold: false }; + +export const Fallback = Template.bind({}); + +Fallback.args = { + url: 'https://www.are.na/edouard-urcades/edouard' +}; diff --git a/pkg/interface/src/views/apps/links/components/LinkBlockItem.tsx b/pkg/interface/src/views/apps/links/components/LinkBlockItem.tsx index 1f3169b54..4e2033516 100644 --- a/pkg/interface/src/views/apps/links/components/LinkBlockItem.tsx +++ b/pkg/interface/src/views/apps/links/components/LinkBlockItem.tsx @@ -92,7 +92,7 @@ export function LinkBlockItem(props: LinkBlockItemProps & CenterProps) { ) : isAudio ? ( ) : isOembed ? ( - + ) : ( )} diff --git a/pkg/interface/src/views/components/RemoteContent/embed.tsx b/pkg/interface/src/views/components/RemoteContent/embed.tsx index 56e9a6114..dbfd8de9c 100644 --- a/pkg/interface/src/views/components/RemoteContent/embed.tsx +++ b/pkg/interface/src/views/components/RemoteContent/embed.tsx @@ -22,11 +22,11 @@ import { TruncatedText } from '~/views/components/TruncatedText'; import { getModuleIcon, useHovering } from '~/logic/lib/util'; import { IconRef, PropFunc } from '~/types'; import { system } from 'styled-system'; -import { extract } from 'oembed-parser'; import { Association, GraphConfig, ReferenceContent } from '@urbit/api'; import { Link } from 'react-router-dom'; import { referenceToPermalink } from '~/logic/lib/permalinks'; import useMetadataState from '~/logic/state/metadata'; +import { RemoteContentWrapper } from './wrapper'; interface RemoteContentEmbedProps { url: string; @@ -235,9 +235,7 @@ export const RemoteContentOembed = React.forwardRef< useEffect(() => { const getEmbed = async () => { try { - // const { width, height } = ourRef.current.getBoundingClientRect(); - - const oembed = await extract(url); + const oembed = await (await fetch(`https://noembed.com/embed?url=${encodeURIComponent(url)}`)).json(); setEmbed(oembed); } catch (e) { console.error(e); @@ -251,11 +249,8 @@ export const RemoteContentOembed = React.forwardRef< if (!renderUrl && !embed) { return null; } - if (!embed) { - return ; - } - return ( + const detail = ( - - {embed?.title} - {thumbnail && embed?.['thumbnail_url'] ? ( ) : !thumbnail && embed?.html ? ( - + ) : renderUrl ? ( ) : null} ); + + return ( + + {embed?.title ?? url} + + ); }); export function RemoteContentEmbedFallback(props: RemoteContentEmbedProps) { diff --git a/pkg/interface/src/views/components/RemoteContent/index.tsx b/pkg/interface/src/views/components/RemoteContent/index.tsx index 019ddf368..4487bdb70 100644 --- a/pkg/interface/src/views/components/RemoteContent/index.tsx +++ b/pkg/interface/src/views/components/RemoteContent/index.tsx @@ -58,7 +58,7 @@ export function RemoteContent(props: RemoteContentProps) { const wrapperProps = { url, tall, - embedOnly: !renderUrl + embedOnly: (!renderUrl || tall) }; if (isImage && remoteContentPolicy.imageShown) { @@ -89,14 +89,7 @@ export function RemoteContent(props: RemoteContentProps) { ); } else if (isOembed && remoteContentPolicy.oembedShown) { return ( - - )} - > - {url} - + ); } else if(renderUrl) { return ( diff --git a/pkg/interface/src/views/components/RemoteContent/wrapper.tsx b/pkg/interface/src/views/components/RemoteContent/wrapper.tsx index b211dba93..b74fcf7ed 100644 --- a/pkg/interface/src/views/components/RemoteContent/wrapper.tsx +++ b/pkg/interface/src/views/components/RemoteContent/wrapper.tsx @@ -72,7 +72,7 @@ export function RemoteContentWrapper(props: RemoteContentWrapperProps) { {children} - {detail} + {unfold ? detail : null} ); }