Commit Graph

7105 Commits

Author SHA1 Message Date
vineyardbovines 281eef9f2d Merge branch 'app-2066' into app-2067
# Conflicts:
#	src/components/dialogs/GifSelect.tsx
2026-04-15 13:55:22 -04:00
vineyardbovines ceea6bcf3c update klipy cdn path 2026-04-15 13:33:26 -04:00
vineyardbovines c402fbbe26 ensure gif embed 2026-04-15 12:46:52 -04:00
vineyardbovines b7f2c359f6 use cdn 2026-04-15 12:33:51 -04:00
vineyardbovines 07fa5cce09 wip 2026-04-15 10:53:30 -04:00
vineyardbovines 3d09ee8bb2 pr fixes 2026-04-15 08:46:16 -04:00
vineyardbovines 651ab90aa1 wip 2026-04-15 08:32:07 -04:00
vineyardbovines 91b64a2844 feat(gif): emoji-only pills, add recents category
- Remove text labels from pills, show only emojis (placeholder for
  future design icons)
- Add "Recents" pill (first in list, hidden when empty)
- Store recently selected GIFs in per-account MMKV storage
- Default selected pill remains "Trending"
- Shape changed to round for emoji-only pills

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:34:30 -04:00
vineyardbovines 05955cb99d Wire GifCategoryPills into GifPickerDialog
Adds activeCategory state and effectiveSearch logic to GifPickerBody so
selecting a category pill filters GIFs via the category's searchterm.
Pills hide when the user types a search query, and going back resets to
trending.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 16:23:14 -04:00
vineyardbovines 1291a7cbb7 feat(gif): add GifCategoryPills component with category browsing
Adds scrollable pill-shaped category filter buttons for the GIF picker,
allowing users to browse trending and themed GIF categories.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 16:19:55 -04:00
vineyardbovines 418b61c701 docs: add GIF category pills design spec
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:12:13 -04:00
vineyardbovines 924f3e3cbc refactor(gif): remove text autocomplete, increase search debounce
Remove the inline text suggestion list from the GIF picker. The
Threads-style approach of just letting the GIF search results update
directly is simpler and gets users to the GIFs faster.

Increase the search throttle from 500ms to 750ms to reduce churn
while typing and give results time to load before the next query fires.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:27:34 -04:00
vineyardbovines 054a6878c5 fix(gif): prevent suggestion list flicker with keepPreviousData
When the throttled autocomplete query changes, React Query briefly
returns undefined for the new key, causing the suggestion list to
flash hidden then visible. keepPreviousData holds the old suggestions
until the new response arrives.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:20:29 -04:00
vineyardbovines 5818219e08 Merge branch 'app-2066' into app-2067
# Conflicts:
#	src/state/queries/klipy.ts
2026-04-14 15:03:11 -04:00
vineyardbovines a97744d600 fix(gif): align Klipy response parsing with actual API shape
The Klipy proxy returns Tenor-compatible responses (results array of
Gif objects), not the custom shape (data array of KlipyGif objects)
that was speculatively typed. Remove the dead normalizeKlipyGif
function and associated types, and read body.results directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:02:27 -04:00
vineyardbovines 180d50cfb4 Merge branch 'main' into app-2066 2026-04-14 14:32:31 -04:00
vineyardbovines 4187b41f14 remove todos 2026-04-14 14:31:37 -04:00
vineyardbovines 794ffd474a wip autocomplete 2026-04-14 14:24:02 -04:00
vineyardbovines 127d214de5 feat(gif): wire useGifAutocomplete into GifPickerDialog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 14:21:13 -04:00
vineyardbovines aa576a1b28 Wire autocomplete into GifPickerHeader
Adds `autocomplete` prop (GifAutocompleteState) to GifPickerHeader,
restructures layout so suggestions render below the search bar, and
wires up keyboard navigation + ARIA attributes for the combobox pattern.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 14:19:23 -04:00
vineyardbovines a5766e8426 feat(gif): add GifAutocompleteSuggestions inline list component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 14:17:37 -04:00
vineyardbovines ba1926b8b0 feat(gif): add useGifAutocomplete orchestration hook
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 14:16:05 -04:00
vineyardbovines d5686e8117 feat(gif): add useKlipyAutocompleteQuery hook for Klipy typeahead
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 14:15:45 -04:00
vineyardbovines b15bfe8ccb feat(gif): add GIF_KLIPY_AUTOCOMPLETE endpoint constant 2026-04-14 14:14:55 -04:00
vineyardbovines ef3ad06487 wip 2026-04-14 08:21:41 -04:00
pfrazee eee2df6d3a Nightly source-language update 2026-04-14 03:15:02 +00:00
Samuel Newman c56427c6fb Fix inverted condition in moveIfNecessary (#10238)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 09:42:57 -07:00
Samuel Newman 9c502b38e5 Disable viewport zoom in prod (#10233) 2026-04-13 09:42:37 -07:00
Samuel Newman 1f6d6d0545 Fix embed options border radius (#10237) 2026-04-13 09:42:05 -07:00
Samuel Newman 27d1b96e73 Fix bskyembed skeleton padding (#10236)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 09:41:14 -07:00
vineyardbovines 808ebd1379 migrate from tenor to klipy 2026-04-13 08:44:34 -04:00
vineyardbovines 3ec24fcb22 Merge branch 'main' into app-2066 2026-04-13 08:26:28 -04:00
Samuel Newman 5d0b900719 Fix server state query returning undefined (#10232)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 13:14:21 -05:00
Spence Pope 9b31bb8470 handle single-line text truncation (#10227) 2026-04-12 01:48:58 -07:00
Samuel Newman 02daa0179b use dvh for util_screen_outer (#10230) 2026-04-11 10:08:02 +03:00
pfrazee ff294edd1e Nightly source-language update 2026-04-11 03:11:48 +00:00
bnewbold a7b6cd4504 bskyweb: update to golang v1.26 (#10208) 2026-04-10 10:25:40 -07:00
Samuel Newman 888eca73b3 Refactor chat list implementation (#10059) 2026-04-10 09:58:16 -07:00
Samuel Newman 2c717dc1e7 Rename moderation link in settings to "Moderation and content filters" (#10192) 2026-04-10 09:50:30 -07:00
Artem Pyvovar ff68e4036d Disable keyboard preload on iOS to prevent keyboard flash (#10214) 2026-04-10 09:50:17 -07:00
Misty De Méo 170e169ad1 PostControls: restore likeCount testID (#10221) 2026-04-10 09:50:03 -07:00
Samuel Newman 19df58f1ef Remove direct dependency on @expo/config-plugins (#10152) 2026-04-10 09:49:41 -07:00
Samuel Newman c79dff9b3e Tweak embed styles (#10226) 2026-04-10 09:35:22 -07:00
vineyardbovines 2f08e54b3e wip v2 2026-04-10 12:29:10 -04:00
Spence Pope 13b453e506 [APP-2065] yassify app embed (#10210) 2026-04-10 09:08:09 -07:00
vineyardbovines 2e54eff27d v2 2026-04-10 11:37:32 -04:00
Eric Bailey d8fdfddbaf Check for undefined moderationOpts (#10224) 2026-04-10 10:23:36 -05:00
Eric Bailey ff30d39355 Remove flex to fix view collapse (#10219) 2026-04-10 09:37:06 -05:00
pfrazee 9c65a8a78c Nightly source-language update 2026-04-10 03:14:50 +00:00
Eric Bailey 8c9a11dc3f [APP-1775] Handle labels on actor statuses (#9716) 2026-04-09 15:52:45 -05:00