about summary refs log tree commit diff
path: root/src/lib
diff options
context:
space:
mode:
authorMary <148872143+mary-ext@users.noreply.github.com>2024-09-24 23:14:15 +0700
committerGitHub <noreply@github.com>2024-09-25 01:14:15 +0900
commit8ea89469ef1a7988a7b3d05716da55e9da680c35 (patch)
treee7bc8f6412ae400a2127833ec4abc823b96df2cd /src/lib
parentdbe1df7ac7de58e02dc8f236347b0856cfb570ef (diff)
downloadvoidsky-8ea89469ef1a7988a7b3d05716da55e9da680c35.tar.zst
MobX removal take 2 (#5381)
* mobx removal take 2

* Actually rm mobx

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/api/index.ts53
-rw-r--r--src/lib/media/picker.shared.ts2
2 files changed, 15 insertions, 40 deletions
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts
index f6537e3d1..1e51c7f25 100644
--- a/src/lib/api/index.ts
+++ b/src/lib/api/index.ts
@@ -14,6 +14,7 @@ import {
 } from '@atproto/api'
 
 import {logger} from '#/logger'
+import {ComposerImage, compressImage} from '#/state/gallery'
 import {writePostgateRecord} from '#/state/queries/postgate'
 import {
   createThreadgateRecord,
@@ -23,10 +24,7 @@ import {
 } from '#/state/queries/threadgate'
 import {isNetworkError} from 'lib/strings/errors'
 import {shortenLinks, stripInvalidMentions} from 'lib/strings/rich-text-manip'
-import {isNative} from 'platform/detection'
-import {ImageModel} from 'state/models/media/image'
 import {LinkMeta} from '../link-meta/link-meta'
-import {safeDeleteAsync} from '../media/manip'
 import {uploadBlob} from './upload-blob'
 
 export {uploadBlob}
@@ -36,7 +34,7 @@ export interface ExternalEmbedDraft {
   isLoading: boolean
   meta?: LinkMeta
   embed?: AppBskyEmbedRecord.Main
-  localThumb?: ImageModel
+  localThumb?: ComposerImage
 }
 
 interface PostOpts {
@@ -53,7 +51,7 @@ interface PostOpts {
     aspectRatio?: AppBskyEmbedDefs.AspectRatio
   }
   extLink?: ExternalEmbedDraft
-  images?: ImageModel[]
+  images?: ComposerImage[]
   labels?: string[]
   threadgate: ThreadgateAllowUISetting[]
   postgate: AppBskyFeedPostgate.Record
@@ -99,18 +97,16 @@ export async function post(agent: BskyAgent, opts: PostOpts) {
     const images: AppBskyEmbedImages.Image[] = []
     for (const image of opts.images) {
       opts.onStateChange?.(`Uploading image #${images.length + 1}...`)
+
       logger.debug(`Compressing image`)
-      await image.compress()
-      const path = image.compressed?.path ?? image.path
-      const {width, height} = image.compressed || image
+      const {path, width, height, mime} = await compressImage(image)
+
       logger.debug(`Uploading image`)
-      const res = await uploadBlob(agent, path, 'image/jpeg')
-      if (isNative) {
-        safeDeleteAsync(path)
-      }
+      const res = await uploadBlob(agent, path, mime)
+
       images.push({
         image: res.data.blob,
-        alt: image.altText ?? '',
+        alt: image.alt,
         aspectRatio: {width, height},
       })
     }
@@ -175,32 +171,11 @@ export async function post(agent: BskyAgent, opts: PostOpts) {
       let thumb
       if (opts.extLink.localThumb) {
         opts.onStateChange?.('Uploading link thumbnail...')
-        let encoding
-        if (opts.extLink.localThumb.mime) {
-          encoding = opts.extLink.localThumb.mime
-        } else if (opts.extLink.localThumb.path.endsWith('.png')) {
-          encoding = 'image/png'
-        } else if (
-          opts.extLink.localThumb.path.endsWith('.jpeg') ||
-          opts.extLink.localThumb.path.endsWith('.jpg')
-        ) {
-          encoding = 'image/jpeg'
-        } else {
-          logger.warn('Unexpected image format for thumbnail, skipping', {
-            thumbnail: opts.extLink.localThumb.path,
-          })
-        }
-        if (encoding) {
-          const thumbUploadRes = await uploadBlob(
-            agent,
-            opts.extLink.localThumb.path,
-            encoding,
-          )
-          thumb = thumbUploadRes.data.blob
-          if (isNative) {
-            safeDeleteAsync(opts.extLink.localThumb.path)
-          }
-        }
+
+        const {path, mime} = opts.extLink.localThumb.source
+        const res = await uploadBlob(agent, path, mime)
+
+        thumb = res.data.blob
       }
 
       if (opts.quote) {
diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts
index 9146cd778..b959ce8be 100644
--- a/src/lib/media/picker.shared.ts
+++ b/src/lib/media/picker.shared.ts
@@ -28,7 +28,7 @@ export async function openPicker(opts?: ImagePickerOptions) {
       return false
     })
     .map(image => ({
-      mime: 'image/jpeg',
+      mime: image.mimeType || 'image/jpeg',
       height: image.height,
       width: image.width,
       path: image.uri,