about summary refs log tree commit diff
path: root/src/lib/gif-alt-text.ts
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-05-07 20:05:40 +0100
committerGitHub <noreply@github.com>2024-05-07 20:05:40 +0100
commit7d72dfb1cb514a9ab8ee2874390c667d49a78e8b (patch)
treea1ee8e198fe9654b0ca1899e85cf47e2e6397019 /src/lib/gif-alt-text.ts
parent77e6c75a2ca3c1389965c142e367d8c3b9faff81 (diff)
downloadvoidsky-7d72dfb1cb514a9ab8ee2874390c667d49a78e8b.tar.zst
[GIFs] Restore default alt text (#3893)
* restore default alt text

* factor out gif alt logic + enable require alt text setting

* rm console.log

* don't prefill input + esc handling

* typo

* Nits

* shorten user alt prefix

* Remove unnecessary condition, rename for clarity

* Add comment

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'src/lib/gif-alt-text.ts')
-rw-r--r--src/lib/gif-alt-text.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/gif-alt-text.ts b/src/lib/gif-alt-text.ts
new file mode 100644
index 000000000..41738c506
--- /dev/null
+++ b/src/lib/gif-alt-text.ts
@@ -0,0 +1,36 @@
+// Kind of a hack. We needed some way to distinguish these.
+const USER_ALT_PREFIX = 'Alt: '
+const DEFAULT_ALT_PREFIX = 'ALT: '
+
+export function createGIFDescription(
+  tenorDescription: string,
+  preferredAlt: string = '',
+) {
+  preferredAlt = preferredAlt.trim()
+  if (preferredAlt !== '') {
+    return USER_ALT_PREFIX + preferredAlt
+  } else {
+    return DEFAULT_ALT_PREFIX + tenorDescription
+  }
+}
+
+export function parseAltFromGIFDescription(description: string): {
+  isPreferred: boolean
+  alt: string
+} {
+  if (description.startsWith(USER_ALT_PREFIX)) {
+    return {
+      isPreferred: true,
+      alt: description.replace(USER_ALT_PREFIX, ''),
+    }
+  } else if (description.startsWith(DEFAULT_ALT_PREFIX)) {
+    return {
+      isPreferred: false,
+      alt: description.replace(DEFAULT_ALT_PREFIX, ''),
+    }
+  }
+  return {
+    isPreferred: false,
+    alt: description,
+  }
+}