about summary refs log tree commit diff
path: root/src/lib/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/api')
-rw-r--r--src/lib/api/feed-manip.ts11
-rw-r--r--src/lib/api/feed/merge.ts1
-rw-r--r--src/lib/api/hack-add-deleted-embed.ts24
-rw-r--r--src/lib/api/index.ts21
4 files changed, 19 insertions, 38 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index 4aa20fd12..a1b2e2bc9 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -6,6 +6,7 @@ import {
   AppBskyFeedPost,
 } from '@atproto/api'
 
+import * as bsky from '#/types/bsky'
 import {isPostInLanguage} from '../../locale/helpers'
 import {FALLBACK_MARKER_POST} from './feed/home'
 import {ReasonFeedSource} from './feed/types'
@@ -57,7 +58,9 @@ export class FeedViewPostsSlice {
     }
     this._feedPost = feedPost
     this._reactKey = `slice-${post.uri}-${
-      feedPost.reason?.indexedAt || post.indexedAt
+      feedPost.reason && 'indexedAt' in feedPost.reason
+        ? feedPost.reason.indexedAt
+        : post.indexedAt
     }`
     if (feedPost.post.uri === FALLBACK_MARKER_POST.post.uri) {
       this.isFallbackMarker = true
@@ -65,7 +68,7 @@ export class FeedViewPostsSlice {
     }
     if (
       !AppBskyFeedPost.isRecord(post.record) ||
-      !AppBskyFeedPost.validateRecord(post.record).success
+      !bsky.validate(post.record, AppBskyFeedPost.validateRecord)
     ) {
       return
     }
@@ -97,7 +100,7 @@ export class FeedViewPostsSlice {
     if (
       !AppBskyFeedDefs.isPostView(parent) ||
       !AppBskyFeedPost.isRecord(parent.record) ||
-      !AppBskyFeedPost.validateRecord(parent.record).success
+      !bsky.validate(parent.record, AppBskyFeedPost.validateRecord)
     ) {
       this.isOrphan = true
       return
@@ -139,7 +142,7 @@ export class FeedViewPostsSlice {
     if (
       !AppBskyFeedDefs.isPostView(root) ||
       !AppBskyFeedPost.isRecord(root.record) ||
-      !AppBskyFeedPost.validateRecord(root.record).success
+      !bsky.validate(root.record, AppBskyFeedPost.validateRecord)
     ) {
       this.isOrphan = true
       return
diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts
index 35c344055..7f8c1c275 100644
--- a/src/lib/api/feed/merge.ts
+++ b/src/lib/api/feed/merge.ts
@@ -311,6 +311,7 @@ class MergeFeedSource_Custom extends MergeFeedSource {
       )
       // attach source info
       for (const post of res.data.feed) {
+        // @ts-ignore
         post.__source = this.sourceInfo
       }
       return res
diff --git a/src/lib/api/hack-add-deleted-embed.ts b/src/lib/api/hack-add-deleted-embed.ts
deleted file mode 100644
index 59aad21a2..000000000
--- a/src/lib/api/hack-add-deleted-embed.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import {
-  AppBskyFeedDefs,
-  AppBskyFeedPost,
-  ComAtprotoRepoStrongRef,
-} from '@atproto/api'
-
-/**
- * HACK
- * The server doesnt seem to be correctly giving the notFound view yet
- * so I'm adding it manually for now
- * -prf
- */
-export function hackAddDeletedEmbed(post: AppBskyFeedDefs.PostView) {
-  const record = post.record as AppBskyFeedPost.Record
-  if (record.embed?.$type === 'app.bsky.embed.record' && !post.embed) {
-    post.embed = {
-      $type: 'app.bsky.embed.record#view',
-      record: {
-        $type: 'app.bsky.embed.record#viewNotFound',
-        uri: (record.embed.record as ComAtprotoRepoStrongRef.Main).uri,
-      },
-    }
-  }
-}
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts
index 5cc0d6336..d1f304d4a 100644
--- a/src/lib/api/index.ts
+++ b/src/lib/api/index.ts
@@ -1,4 +1,5 @@
 import {
+  $Typed,
   AppBskyEmbedExternal,
   AppBskyEmbedImages,
   AppBskyEmbedRecord,
@@ -74,7 +75,7 @@ export async function post(
   }
 
   const did = agent.assertDid
-  const writes: ComAtprotoRepoApplyWrites.Create[] = []
+  const writes: $Typed<ComAtprotoRepoApplyWrites.Create>[] = []
   const uris: string[] = []
 
   let now = new Date()
@@ -91,7 +92,7 @@ export async function post(
       draft,
       opts.onStateChange,
     )
-    let labels: ComAtprotoLabelDefs.SelfLabels | undefined
+    let labels: $Typed<ComAtprotoLabelDefs.SelfLabels> | undefined
     if (draft.labels.length) {
       labels = {
         $type: 'com.atproto.label.defs#selfLabels',
@@ -230,11 +231,11 @@ async function resolveEmbed(
   draft: PostDraft,
   onStateChange: ((state: string) => void) | undefined,
 ): Promise<
-  | AppBskyEmbedImages.Main
-  | AppBskyEmbedVideo.Main
-  | AppBskyEmbedExternal.Main
-  | AppBskyEmbedRecord.Main
-  | AppBskyEmbedRecordWithMedia.Main
+  | $Typed<AppBskyEmbedImages.Main>
+  | $Typed<AppBskyEmbedVideo.Main>
+  | $Typed<AppBskyEmbedExternal.Main>
+  | $Typed<AppBskyEmbedRecord.Main>
+  | $Typed<AppBskyEmbedRecordWithMedia.Main>
   | undefined
 > {
   if (draft.embed.quote) {
@@ -288,9 +289,9 @@ async function resolveMedia(
   embedDraft: EmbedDraft,
   onStateChange: ((state: string) => void) | undefined,
 ): Promise<
-  | AppBskyEmbedExternal.Main
-  | AppBskyEmbedImages.Main
-  | AppBskyEmbedVideo.Main
+  | $Typed<AppBskyEmbedExternal.Main>
+  | $Typed<AppBskyEmbedImages.Main>
+  | $Typed<AppBskyEmbedVideo.Main>
   | undefined
 > {
   if (embedDraft.media?.type === 'images') {