diff options
author | dan <dan.abramov@gmail.com> | 2024-10-24 20:43:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-24 20:43:00 +0100 |
commit | 3327c479575da7f5b3c3a457ec53a24ad9a2cda1 (patch) | |
tree | f0b7dbbe3661288e936fc5cdb416ad8c6cc90d9c /src/view/com/composer/ExternalEmbed.tsx | |
parent | e8a53dcea84afc3b313037dbaf059c68121eb9ab (diff) | |
download | voidsky-3327c479575da7f5b3c3a457ec53a24ad9a2cda1.tar.zst |
Include hydrated responses for other records (#5646)
* Include hydrated responses for other records * Rename meta -> view This is actually all it is now.
Diffstat (limited to 'src/view/com/composer/ExternalEmbed.tsx')
-rw-r--r-- | src/view/com/composer/ExternalEmbed.tsx | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/view/com/composer/ExternalEmbed.tsx b/src/view/com/composer/ExternalEmbed.tsx index d7dc32f14..1f1feaf91 100644 --- a/src/view/com/composer/ExternalEmbed.tsx +++ b/src/view/com/composer/ExternalEmbed.tsx @@ -1,6 +1,8 @@ import React from 'react' import {StyleProp, View, ViewStyle} from 'react-native' +import {AppBskyGraphStarterpack} from '@atproto/api' +import {ResolvedLink} from '#/lib/api/resolve' import {cleanError} from '#/lib/strings/errors' import { useResolveGifQuery, @@ -75,12 +77,7 @@ export const ExternalEmbedLink = ({ const linkInfo = React.useMemo( () => data && { - title: - data.type === 'external' - ? data.title - : data.kind === 'other' - ? data.meta.title - : uri, + title: getExternalLinkTitle(data) ?? uri, uri, description: data.type === 'external' ? data.description : '', thumb: data.type === 'external' ? data.thumb?.source.path : undefined, @@ -137,3 +134,22 @@ function Container({ </View> ) } + +function getExternalLinkTitle(link: ResolvedLink): string | undefined { + if (link.type === 'external') { + return link.title + } + switch (link.kind) { + // These are currently treated as external. + // TODO: Display them as embeds instead. + case 'feed': + return link.view.displayName + case 'list': + return link.view.name + case 'starter-pack': + const record = link.view.record + return AppBskyGraphStarterpack.isRecord(record) + ? record.name + : 'Starter Pack' + } +} |