diff options
| author | Adam Soltys <[email protected]> | 2026-10-10 07:35:16 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-10 07:35:16 -0700 |
| commit | 79b09acc3c4c471fb29bb8d6994c26e849b90bb9 (patch) | |
| tree | b9993893b5f88bc7e4d3277eeada103556dac12b /src/i18n.js | |
| parent | e6a65e9921bc0e61ea17459e4bd12f64baf0c3b8 (diff) | |
| download | coinosv3-79b09acc3c4c471fb29bb8d6994c26e849b90bb9.tar.gz coinosv3-79b09acc3c4c471fb29bb8d6994c26e849b90bb9.zip | |
GIF search, from nostr.build's GIF index (gifs.nostr.build). A GIF button in the post composer and in every chat composer (DMs, groups, communities) opens a picker: "GIFs from nostr.build" (linked, as their terms require), starter chips (gm, lol, yes, wow, …; the first runs on open), a search field (debounced 250 ms, no one-letter searches, one shared request per normalised query, never aborted, 429/403/503 answered in words), and a masonry grid whose tiles play the small H.264 copy only while near the screen, over the lqip blur, falling back to the animated preview (stills under reduced motion). A pick puts the original URL in a post — published with a NIP-92 imeta (m, dim, size, alt) — or, in a chat, sends it at once after whatever was typed. Media URLs not on gifs.nostr.build are dropped. Browser calls carry no headers: production needs v3.coinos.io registered in the nostr.build dashboard (localhost works as their shared dev client). tools/gif-picker-test.js runs against the live API.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Vps2H27rhbG9ZqseGfMrc3
Diffstat (limited to 'src/i18n.js')
| -rw-r--r-- | src/i18n.js | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/i18n.js b/src/i18n.js index e80e2f8..5bf7f91 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -517,6 +517,12 @@ const STR = { msgSignerOff: "Your nostr signer isn't connected, so you can't post as yourself yet.", msgAmberDms: 'Signed in with Amber, messages sent to you can’t be opened here, only ones you sent from this device.', msgAmberConnect: 'Connect Amber', + gifBtnTitle: 'Add a GIF', + gifSearchPh: 'Search GIFs', + gifFrom: 'GIFs from', + gifNone: 'No GIFs found.', + gifDown: 'GIF search isn’t available right now.', + gifLimited: 'Too many searches. Try again in a minute.', msgReconnect: 'Reconnect', msgDmsTitle: 'Messages', msgCommunitiesTitle: 'Communities', |
