* Age Assurance V2
* Tighten up test
* Add todos for sdk migration
* Align RQ versions
* Use useEffect for side effect
* Improve effects, memoize
* Standarize on birthdate
* Copy feedback
* Copilot
* Add support link
* Reove double ..
* Cleanup
* Remove redirect dialog
* Cleanup todos, add comments
* Update splash in main template too
* Mock some stuff
* Exhaustive checks
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Exhaustive checks
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Small fix to bday handling
* Add comment
* onboarding style tweak
sneaking this in sorry!
* rm unreachable breaks
* Put useIntentHandler back on web
* Remove misleading success set
* Align on birthdate
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* 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>
* check handle as you type
* metrics
* add metric types
* fix overflow
* only check reserved handles for bsky.social, fix test
* change validation check name
* tweak input
* move ghosttext component to textfield
* tweak styles to try and match latest
* add suggestions
* improvements, metrics
* share logic between typeahead and next button
* Apply suggestions from code review
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* update checks, disable button if unavailable
* convert to lowercase
* fix bug with checkHandleAvailability
* add gate
* move files around to make clearer
* fix bad import
* Fix flashing next button
* Enable for TF
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* WIP
* Alignment with icon
* Add create/remove prompts
* Fill out check dialog a bit
* Reorg
* Handle was verified state
* Add warning to edit profile
* Add warning to handle dialog
* Decent alignment in posts on all platforms
* Refactor alignment for posts, chatlist, hover card
* Disable on profile
* Convo header
* Compute simple verification state
* Add other icon, rename, integrate
* Swap in simple state for profile edits
* Clean up utility hooks
* Add verifications UI to dialog
* Add edu nux
* Revert change
* Fix wrapping of check on profile
* Rename
* Fix gap under PostMeta
* Update check dialogs
* Handle takendown verifiers in check dialog
* alf composer reply to
* Refactor verification state
* Add create/remove mutations, non-functional for now
* Fix up post-rebase
* Add check to first author noty
* Do cache updates after mutations
* DRY up hook, add to profile updates too
* Add to drawer
* Update account list
* Adapt to new types
* Hook up mutations
* Use profile shadow in feeds
* Add to settings
* Shadow currentAccountProfile
* Add invalid state to verifications
* Fix alignment and overflow in Settings and Drawer
* Re-integrate post rebase
* Remove debug code
* Update copy
* Add unverified notification support
* Remove link
* Make sure dialog closes
* Update URL
* Add settings screen
* Integrate new setting into verification states
* Add metrics, bump package, fix bad import
* NUX fixes
* Update copy
* Fixes
* Update types
* fix search autocomplete
* fix lint
* add display name warning to new dialog
* update default prefs
* Add parsing support for notifications
* Bump pkg
* Tweak noty styles
* Adjust check alignment
* Tweak check alignment
* Fix badge for verifier
* Modify copy
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* update package
* wire up APIs
* get reactions to display
* allow removing emoji
* handle limits better
* listen to reactions in log
* update convo list with reactions
* tweaks to reaction display
* Handle empty message fallback case
* update package
* shift reacts up by 2px
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* takendown screen
* add form, move button inline
* expect type error
* display error
* disable submit if too long
* move around all the ctas
* typos, rm layoutanimation, fix link
* use REASONAPPEAL
* tweaks to constants (#7478)
* add did
* use correct did
* typo
* tweak
* Prevent Drawer gesture conflicting with Suggestions scroll (#7468)
* Extract BlockDrawerGeesture
* Block drawer when scrolling interstitials
(cherry picked from commit 9e3f2f4374)
* yolo interstitial
* yolo mode
* right swipe
* fix nav gesture
* vibe controls
* collapsible post text
* rm blurview, cover for tall videos
* smarter video source handling
* use thumbnails, improve perf significantly
* better android loading
* improve aspect ratio
* optimize source changes
* rm spinner on ios
* whoops, remove debug `false`
* FIX WRONG VIDEOS SHOWING UP
* don't spring on way down
* release video players when leaving screen
* remove jank animation
* Add grid
* improve contract, fix double tap
* Filter out posts without videos
* Only do grid on native
* Pipe through feedSourceUri and link to feed
* Handle passed through params
* Partial revert, just filter posts to start at index
* Clean up cards, remove entry interstitial
* Tweak handle
* Change constant name
* Rename some things
* Make types legit
* Clean up more naming
* Add placeholder for grid view
* Handle web, set up new organization
* Begin work on Header
* Replace types
* Squashed commit of the following:
commit 3d1be4c0f1
Author: Samuel Newman <mozzius@protonmail.com>
Date: Fri Jan 17 01:08:05 2025 +0000
extend animation
commit c9f199413b
Author: Samuel Newman <mozzius@protonmail.com>
Date: Fri Jan 17 01:01:24 2025 +0000
fix gap
commit 22e520795f
Author: Samuel Newman <mozzius@protonmail.com>
Date: Fri Jan 17 00:50:16 2025 +0000
thinner bar, format time
commit c32427f214
Author: Samuel Newman <mozzius@protonmail.com>
Date: Fri Jan 17 00:47:57 2025 +0000
fix 2 in 3 screens
commit cbf84c08d6
Author: Samuel Newman <mozzius@protonmail.com>
Date: Fri Jan 17 00:45:46 2025 +0000
rm unneeded var
commit 7e0e100177
Author: Samuel Newman <mozzius@protonmail.com>
Date: Fri Jan 17 00:41:18 2025 +0000
scrubberrrrr
* use white with opacity rather than gray
* Simultaneous gesture
* cleanup attempt
* fix jank
* link to profile on press
* fix jitter fr this time
* mostly fix android flicker
* Maybe fix row generation
* Add content hider to video card
* emoji in post text
* reduce update rate
* fix type error
* Fix grid layout trailing single item
* Add Discover interstitial, settings, includes pin for now
* Explore interstitial, handle dimissal, pinning, compact card
* Only use grid placeholder on native
* Update events
* Add feature gate
* android nav bar fixes + lower update speed
* fix interval + decel rate on interstitials
* attempt to fix broken scrub on android (not working)
* follow button
* Part out the interstitials for perf, add view more
* Remove prod web route
* Wrap interstitials with BlockDrawerGesture
* Bring video cropping in line with images (#7462)
* Mimic image cropping for videos on web
* Same on native
* Rename variables for clarity
* Fix Android scrubbing
* Add FeedFeedbackProvider
* Remove swipe gesture
* fix light status bar behaviour
* bump
* feedback
* Copy pasta to new location
* Copy pasta part deux
* Filter only videos
* Make whole text clickable to expand
(cherry picked from commit 4cf31120779f4e06eb4c296b3d4b53814d432b07)
* move scrubber to own file
* end card
* add icon to end card
* add min view time to viewability config
* play haptic on like
* tweak feedback
* tweak feedback again
* Moderation
(cherry picked from commit 6b6b471cfb363031284b3e7a1f6e0ade3ac4ae47)
* remove bad check
* fix feedback for new video grid
* change prop name to items as well
* Simplify logic
* Fix mod footer
* Give scrubber more space on android
* Add subtle track behind scrubber, adjust opacity
* wire in feed context again...
* Add better a11y desc to card
* Fix key issue
* Update a11y copy
* Fix scrubber height
* improve scrubber animation
* Make follow button more obvious
* Make header back button more clear
* Disable interactions with actual video el
* keep content away from the bottom safe area
* fix blur
* fix moderation issue
* improve contrast on mod screen
* Make moderation static per item
* Memoize rows
* Optimizations
* Take video moderation into account
* Only blur titles for list blur
* Change copy
* Bump blur radius
* animate text in both directions
* Rm unused field
* Filter by root early
* Refactor for clarity
* add compose prompt to scrubber
* rm log
* tweak gradient
* Bump SDK, use contentMode to power video feed
* Ensure ProfileFeed view also supports video feed
* improve scrubber on android
* rm border from footer
* Update prod video feed did
* Separate caches
* Add lil hover to View More
* Fix undefined logic, remove header for interstitial
* Ungate
* Fix stuckness
* remove extra useless map
* Fix effect cleanup
* Send seen without cleanup
* Simplify react stuff
* Earlier early return to avoid loading flash
* remove scrubber placeholder
* Remove opacity hack
* Render useEvent conditionally
* Fix Android flash
---------
Co-authored-by: dan <dan.abramov@gmail.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* Basic adding of posts
* Switch active post on focus
* Conditionally show plus button
* Insert posts midthread
* Track active/inactive post
* Delete posts in a thread
* Focus after deletion
* Tweak empty post detection
* Mix height for active only
* Move toolbar with post on web
* Fix footer positioning
* Post All button
* Fix reply to positioning
* Improve memoization
* Improve memoization for clearVideo
* Remove unnecessary argument
* Add some manual memoization to fix re-renders
* Scroll to bottom on add new
* Fix opacity on Android
* Add backdrop
* Fix videos
* Check alt for video too
* Clear pending publish on error
* Fork alt message by type
* Separate placeholder for next posts
* Limit hitslop to avoid clashes
* Add alt text limit to image dialog
* GIF alt text too
* Fix
* tweaks, save alt on dialog dismiss
* simplify close behavior
* use state in gif alt
* state
---------
Co-authored-by: Hailey <me@haileyok.com>
* DRY up video service auth code
* throw error if over upload limits
* use token
* xmark on toast
* errors with nice translatable error messages
* Update src/state/queries/video/video.ts
---------
Co-authored-by: Hailey <me@haileyok.com>
* Rework WhoCanReply controls in threads to blend more nicely
* Fix layout
* Fix post control hitslops
* Move dialog content to separate component
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Handle home algo with backwards compat
* Remove todo, fix pwi view
* Simplify filter logic
* Handle edge case
* Handle home algo in FeedSourceCard
* Fix handling of pinned feed if home algo is disabled
* Handle home algo on ProfileFeed screen
* Rename
* Fix pinned feeds key
* Improve perf of pinned feeds with primary algo
* Update statsig API
* Revert unneeded changes
* Support following feed as well
* Better formatting
* Clarify primary algo usage
* Better comment
* Handle saved feed screen edge case
* Restore Feeds sparkle, fix line height
* Move gate call down
* Filter out primary algo from feeds page
* Filter dupe from Feeds screen
* Simplify logic
* Missing following handling
* Hide primary feed setting outside exp
* Revert testing change
* Migrate usePinnedFeedInfos
* Migrate FeedSourceCard
* Migrate Feeds screen
* Migrate SavedFeeds screen
* Handle timeline in feed infos
* Finish migrating ProfileFeed, FeedSourceCard
* Migrate ProfileList
* Finalize mutation hooks
* Allow unsaving lists
* Handle following feed on Feeds screen
* Handle following on SavedFeeds
* Get rid of deprecated interface usages
* Handle no pinned feeds
* Handle no feeds on Feeds screen
* Reuse component on SavedFeeds screen
* Handle no following feed
* Remove primary algo references
* Migrate to new plural APIs
* Remove unused event
* Prevent duplicate keys
* Make handling much more clear
* Dedupe useHeaderOffset
* Filter unknown feed types at source
* Use just following
* Immprove key handling
* Resume from last tab
* Bump sdk
* Revert Gemfile
* Additional protection in FeedSourceCard
* Fix ProfileList save/unsave handling
* Translate
* Translate
* Match existing handling post-signup
* Ensure onboarding results in correct selected feeds
* Some testing tweaks on create/onboarding
* Revert primary algo consderations
* Remove comment
* Handle default feed setting
* Rm unnecessary type cast
* Remove premature gate check
* Remove nullable check in onPageSelecting, assume the pager checks bounds
* Use null for default selected feed
* Rm unrelated change
* Remove the concept of __key__
I don't think this concept is consistent.
It's introduced on FeedSourceInfo which is used both by pinned feeds and by useFeedSourceInfoQuery. Pinned feeds use the pinning ID there. But there is no pinning ID for useFeedSourceInfoQuery. So this means this field is sometimes one thing and sometimes some other thing. That is a decent sign that it shouldn't be on that type at all.
It's not used anywhere except the desktop feed enumeration. It seems reasonable to assume there that we wouldn't want to show the same feed URL twice. (And if it does occur in the array twice, IMO we should solve that at the API level and dedupe it on read or next write.) So I think we should just use the URL in that place. (I used the descriptor, which is equivalent.)
* Dedupe pinned feeds by URL on read
* Filter timeline out of mergefeed sources
* Put FeedDescriptor into FeedSourceInfo
* Group saved info with feed for pins
This removes a loop within a loop within a loop.
* Fix Feeds link on native
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>