about summary refs log tree commit diff
path: root/src/state/models/media/image.ts
diff options
context:
space:
mode:
authorOllie Hsieh <renahlee@outlook.com>2023-04-21 14:20:06 -0700
committerGitHub <noreply@github.com>2023-04-21 16:20:06 -0500
commitf0706dbe9ffb758d2aa1f75c51cfa0c61cc84482 (patch)
tree40c644c4c256154660be85c9c583028ebaaedaef /src/state/models/media/image.ts
parent0f5735b616e3565c1c739e4c8007f4ea4aedba92 (diff)
downloadvoidsky-f0706dbe9ffb758d2aa1f75c51cfa0c61cc84482.tar.zst
Add alt text support and rework image layout (#503)
* Add alt text support and rework image layout

* Add additional BottomSheet implementation to account for nested Composer modal

* Use mobile gallery layout on mobile web

* Missing key

* Fix lint

* Move altimage modal into the standard modal system

* Fix overflow wrapping of images

* Fixes to the alt-image modal

* Remove unnecessary switch

* Restore old imagelayoutgrid code

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Diffstat (limited to 'src/state/models/media/image.ts')
-rw-r--r--src/state/models/media/image.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/state/models/media/image.ts b/src/state/models/media/image.ts
index 584bf90cc..3585bb083 100644
--- a/src/state/models/media/image.ts
+++ b/src/state/models/media/image.ts
@@ -5,6 +5,7 @@ import {makeAutoObservable, runInAction} from 'mobx'
 import {openCropper} from 'lib/media/picker'
 import {POST_IMG_MAX} from 'lib/constants'
 import {scaleDownDimensions} from 'lib/media/util'
+import {openAltTextModal} from 'lib/media/alt-text'
 
 // TODO: EXIF embed
 // Cases to consider: ExternalEmbed
@@ -14,6 +15,7 @@ export class ImageModel implements RNImage {
   width: number
   height: number
   size: number
+  altText?: string = undefined
   cropped?: RNImage = undefined
   compressed?: RNImage = undefined
   scaledWidth: number = POST_IMG_MAX.width
@@ -41,6 +43,18 @@ export class ImageModel implements RNImage {
     this.scaledHeight = height
   }
 
+  async setAltText() {
+    try {
+      const altText = await openAltTextModal(this.rootStore)
+
+      runInAction(() => {
+        this.altText = altText
+      })
+    } catch (err) {
+      this.rootStore.log.error('Failed to set alt text', err)
+    }
+  }
+
   async crop() {
     try {
       const cropped = await openCropper(this.rootStore, {