diff options
Diffstat (limited to 'src/lib/api/resolve.ts')
-rw-r--r-- | src/lib/api/resolve.ts | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/lib/api/resolve.ts b/src/lib/api/resolve.ts index 277c17b7b..371062350 100644 --- a/src/lib/api/resolve.ts +++ b/src/lib/api/resolve.ts @@ -1,6 +1,6 @@ import { AppBskyFeedDefs, - AppBskyGraphStarterpack, + AppBskyGraphDefs, ComAtprotoRepoStrongRef, } from '@atproto/api' import {AtUri} from '@atproto/api' @@ -40,24 +40,36 @@ type ResolvedPostRecord = { type: 'record' record: ComAtprotoRepoStrongRef.Main kind: 'post' - meta: AppBskyFeedDefs.PostView + view: AppBskyFeedDefs.PostView } -type ResolvedOtherRecord = { +type ResolvedFeedRecord = { type: 'record' record: ComAtprotoRepoStrongRef.Main - kind: 'other' - meta: { - // We should replace this with a hydrated record (e.g. feed, list, starter pack) - // and change the composer preview to use the actual post embed components: - title: string - } + kind: 'feed' + view: AppBskyFeedDefs.GeneratorView +} + +type ResolvedListRecord = { + type: 'record' + record: ComAtprotoRepoStrongRef.Main + kind: 'list' + view: AppBskyGraphDefs.ListView +} + +type ResolvedStarterPackRecord = { + type: 'record' + record: ComAtprotoRepoStrongRef.Main + kind: 'starter-pack' + view: AppBskyGraphDefs.StarterPackView } export type ResolvedLink = | ResolvedExternalLink | ResolvedPostRecord - | ResolvedOtherRecord + | ResolvedFeedRecord + | ResolvedListRecord + | ResolvedStarterPackRecord export class EmbeddingDisabledError extends Error { constructor() { @@ -87,7 +99,7 @@ export async function resolveLink( uri: post.uri, }, kind: 'post', - meta: post, + view: post, } } if (isBskyCustomFeedUrl(uri)) { @@ -102,11 +114,8 @@ export async function resolveLink( uri: res.data.view.uri, cid: res.data.view.cid, }, - kind: 'other', - meta: { - // TODO: Include hydrated content instead. - title: res.data.view.displayName, - }, + kind: 'feed', + view: res.data.view, } } if (isBskyListUrl(uri)) { @@ -121,11 +130,8 @@ export async function resolveLink( uri: res.data.list.uri, cid: res.data.list.cid, }, - kind: 'other', - meta: { - // TODO: Include hydrated content instead. - title: res.data.list.name, - }, + kind: 'list', + view: res.data.list, } } if (isBskyStartUrl(uri) || isBskyStarterPackUrl(uri)) { @@ -138,20 +144,14 @@ export async function resolveLink( const did = await fetchDid(parsed.name) const starterPack = createStarterPackUri({did, rkey: parsed.rkey}) const res = await agent.app.bsky.graph.getStarterPack({starterPack}) - const record = res.data.starterPack.record return { type: 'record', record: { uri: res.data.starterPack.uri, cid: res.data.starterPack.cid, }, - kind: 'other', - meta: { - // TODO: Include hydrated content instead. - title: AppBskyGraphStarterpack.isRecord(record) - ? record.name - : 'Starter Pack', - }, + kind: 'starter-pack', + view: res.data.starterPack, } } return resolveExternal(agent, uri) |