* feat: don't retain accepted language suggestion after finishing or exiting post (#8886)
* feat: don't retain accepted language suggestion after finishing or exiting post
* fix: rebase fixes
* fix: rebase fixes
* chore: lint
* Rename onChange for clarity
* Improve logic in composer
* Handle user override more explicitly
* Drill in onSelectLanguage callback into dialog too
* Fix typo
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Make text crystal clear
* Handle multiple languages
---------
Co-authored-by: Elijah Seed-Arita <elijaharita@gmail.com>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* constraint video max height to 14/9
* Apply new default to web video embed too
* Retain web handling
* Rename prop for clarity
* Align no-crop handling on native/web
* make it always constrained
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* get e2e image picker working
* verify create account actually reaches onboarding
* wait for image to actually be attached before posting
* wait until login finishes before moving on
* sign out before switch accounts then wait until logged in
* disable onboarding experiments in e2e
* add testId to handle availability checkmark
* fix too long username
* update thread muting test to reflect current behaviour
* hackfix for the british english translation
* unflake the onboarding tests
* fix curate list flow
* admit defeat on the most list one
Replaces NoSnippetWrapper with a dataSet prop on the root View to
control the nosnippet attribute for discover feeds. This simplifies the
component structure and improves maintainability by reducing unnecessary
wrappers.
* [APP-1303] Redesign/refactor post language select (#8884)
* Nightly source-language update
* Nightly source-language update
* [APP-1303] Redesign/refactor post language select
* update: stylesheets.create to use the latest structure
* update styles to modern structure
* update: dialog breakpoints on web and delete depricated language modals
* remove unused post languages settings dialog
* restructure Post languages dialog
* place the Dialog.Close inside the Dialog.ScrollableInner
* add: language search
* update search and language variables for clarity
* fix: memoize language state lists
* chore: add comments
* update proper colors to the background
* add back older error boundary
* add: tweaks to the mobile and web responsiveness
* add tweaks to center the container
* update labels
* update button and border
* added translation updates
* Update: text input to reuse search input
* remove unused file
* update: web breakpoints
* run eslint and prettier
---------
Co-authored-by: Elijah Seed-Arita <elijaharita@gmail.com>
Co-authored-by: Anastasiya Uraleva <anastasiya@Anastasiyas-MacBook-Pro.local>
Co-authored-by: Anastasiya Uraleva <anastasiya@Mac.localdomain>
* rm old file
* sort out styles, add FlatListFooter component
* rm cancel button in favor of search input X
* get dialog height working on iOS
* delete `DropdownButton`
* hide scroll indicators on android
* ios scroll indicator insets
* get footer sorta working on android
* change button color on press
* rm empty file
---------
Co-authored-by: Anastasiya Uraleva <anastasiyauraleva@gmail.com>
Co-authored-by: Elijah Seed-Arita <elijaharita@gmail.com>
Co-authored-by: Anastasiya Uraleva <anastasiya@Anastasiyas-MacBook-Pro.local>
Co-authored-by: Anastasiya Uraleva <anastasiya@Mac.localdomain>
* Split out into macro component
* Add Action component
* Add fallback
* add button to view post after sending
* Dismiss toast when clicking action button
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Delete root PostThread component
* Remove PostThreadItem, migrate DebugMod to use new components
* Remove other unused components
* Move PostThreadFollowBtn to new home
* Move PostThreadComposePrompt to new home
* Remove gate
* Keep naming in DebugMod
* rm v1 prefs
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Some browsers exit fullscreen when the escape key is pressed without `preventDefault()` being called; we don't want that when we're handling the press ourselves.
* Integrate Sonner for toasts
* Fix animation on iOS
* Refactor API
* Update e2e file
* [APP-1318] Post composer: combine image & video buttons (#8710)
* add: select media btn
* udpate: compose post with combined image and video support
* add: video combine button with edge cases
* add select media btn
* test: select media btn
* add: media button update
* remove unused files and update toast on android
* update: make strings shorter
* add: ValidatedVideoAsset type
* update link comments and add toast support for native and web
* rebase latest toast and update toast structure
* remove unused prop
* fix types
* undo changes to yarn.lock
* remove: support for mkv files
* update: eslint and prettier
(cherry picked from commit f69779ee130f07e1c49219b53117e3bdd1a9f81b)
* Add missing props to launchImageLibraryAsync
(cherry picked from commit 2e80ae561fd66850f787cac0aae0fa5a6980f8f5)
* Rough out new approach
(cherry picked from commit 9add225160e7e407befc73e9cdd9743a30cdf1cd)
* Comments and cleanup
(cherry picked from commit e69bd186e7335372f440c446ae6643ed0fb15db9)
* Handle native case
(cherry picked from commit 74e38acdfd9181d0557426691fcbcbf0800481ca)
* Refactor
(cherry picked from commit 68aea496db8df54dba5f58da267ad962c28ef995)
* Rename
(cherry picked from commit 8609e59ad14219e7378ee6cb9514d633ce7efc27)
* Cleanup, comments
(cherry picked from commit 6c9c98648e37257285a9c8caeb1eadcc56c81402)
* Rename
(cherry picked from commit 66e3db539d5baa41436c9e49af06e87a78e9e7e1)
* Handle selectionLimit on Android
(cherry picked from commit 251f06dd5e65a7083b810bad3d81114b2fe9ab39)
* create composer images in parallel
(cherry picked from commit 70ea79d9d76d99e9c99a7d2296caed84c718650e)
* Update toast API usage
(cherry picked from commit e370018b8ed8cdfd7675c9634058c72cb59d39de)
* Ensure once one type of media is selected, you can only select more of that type
(cherry picked from commit 1a9e6e0cdb5234667f08e3dd9107ae598941fc23)
* Remove TODO and debug code
* Add more descriptive a11y label to button
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Add back post success toast
* Include mimeType in toast error
* Remove unneeded toast
* Clarify hint
* Typo
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* allow gifs on native, just treat as images
* disable haptic toast
* allow gifs on native, treat as videos
* only do keyboard dismiss on native
* tweak pasting logic
* hide web scrubber in certain situations
* Update MaxImages translation
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Add plural formatting to a11y hint translation
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* fix suggestion
* Protect against no valid assets selected
* Handle conversion of too-big assets on web
* Reorder
* Bump expo-image-picker to include bug/perf improvements
See https://github.com/expo/expo/blob/main/packages/expo-image-picker/CHANGELOG.md#1700--2025-08-13
* Handle edge case validations
* Ok actually bump expo-image-picker
* Comment
* HEIC support Android
* Fix handling for new picker version, improve size validation
* Remove getVideoMetadata handling, no longer needed
* Handle web video duration
* Update src/view/com/composer/SelectMediaButton.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
---------
Co-authored-by: Anastasiya Uraleva <anastasiyauraleva@gmail.com>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* use intents to translate text on android
* clean up config plugins
* restore day night plugin
just to be safe
* leave a comment for why we can't open translate directly
* add todo
* fix lockfile lint