* the reply button should open the replies to a post, not present a text input for you to enter your Big Thought into. i think a lot of people don’t even realize that the point has already been written
* Feature gate, fix event
---------
Co-authored-by: Eric Bailey <git@esb.lol>
When the user clicks the search button next to "Discover New Feeds" or "Suggested Accounts" on the Explore page, we'll auto-select the respective search results tab (feeds or users).
* use 16kb-compatible fork of react-native-mmkv
* avoid using package alias
* specify ndk version
* Revert "specify ndk version"
This reverts commit 577393518e.
* add compiler flags to mmkv build (bump version)
* move fork to bsky repo/npm org
* Rip out the network hack in favor of bluesky-social/atproto#4238
* Bump api pkg
* Debug code
* Revert "Debug code"
This reverts commit 38445f31f4.
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* tighten eslint config to catch unused `useLingui`s
* fix now-invalid uses of _
* remove unused function that produces a ton of eslint warnings
* upgrade react compiler plugin
* 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>
Enable rich link previews when feed URLs are shared in iMessage, Slack, and other social platforms. Adds feed title, description, creator info, and avatar images to improve sharing experience.
* Translation comment
* Fix error handling in starter pack generation
* Allow access to DM settings for age restricted users
* Leave post stat unit formatting up to translators
* tweak string in BlockedGeoOverlay.tsx
* tweak string in AgeAssuranceAccountCard.tsx
* tweak string and labels in DeviceLocationRequestDialog.tsx
* prettier
* add missing `.` in DeviceLocationRequestDialog.tsx
* Adds welcome modal to logged-out homepage
* Adds metrics and feature gate for welcome modal
* Slightly smaller text for mobile screens to avoid wrapping
* Remove unused SVG
* Adds text gradient and "X" close button
* Fix color on "Already have an account?" text
* tweak hooks, react import
* rm stylesheet
* use hardcoded colors
* add focus guards and scope
* no such thing as /home
* reduce spacign
* use css animations
* use session storage
* fix animation fill mode
* add a11y props
* Fix link/button color mismatch, reduce gap between buttons, show modal until user dismisses it
* Fix "Already have an account?" line left-aligning in small window sizes
* Adds "dismissed" and "presented" metric events
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Previously, pins were included for both 'posts_with_replies' and
'posts_and_author_threads' filters. This change restricts pin inclusion
to only the 'posts_and_author_threads' filter, ensuring correct feed
behavior and reducing unnecessary data in other filter modes.
* 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
* Bump picker, add patch for next version
* Revert "Bump picker, add patch for next version"
This reverts commit a4aab0bdcd.
* Update to latest picker@next
* add context in VerificationsDialog.tsx
* add context in VerifierDialog.tsx
* add context in VerificationSettings.tsx
* add context in EditProfileDialog.tsx
* add context and tweak label in ChangeHandleDialog.tsx
* tweak label in ContentHider.tsx
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>
* update vite+typescript
* update atproto api to latest, split out utils
* add checkmark to post
* add checkie to embed
* revert change to example post
* fix ext link color
* 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>
- Rename filter from 'canonical' to 'canonicalize_url' to follow Pongo2
naming conventions
- Update function name from filterCanonical to filterCanonicalizeURL
- Update template usage in post.html and profile.html
- Update test function name and all references
Refactored the "See more accounts you might like" card to use ButtonIcon
and ButtonText for improved consistency and accessibility. Updated
styles for better alignment, spacing, and visual hierarchy. Navigates to
the Explore page when pressed.
Use canonical filter on requestURI in canonical link tag while preserving
original URL with parameters for og:url metadata. This provides clean
canonical URLs for search engines while maintaining full Open Graph URLs.
Uses canonical filter for canonical link tags while preserving original URLs with parameters for og:url metadata, improving SEO through proper URL canonicalization
Addresses community feedback about canonical URLs being misleading
when they include UTM parameters. The new Pongo2 filter creates
clean canonical URLs while preserving tracking parameters for
social sharing.
Updated ViewMoreCard to use a Button component instead of a styled View
for the 'View more' action. This improves accessibility and consistency
with other interactive elements in TrendingVideos.
Moved the 'View more' card logic into a separate ViewMoreCard component
for better separation of concerns and readability.
Updated imports to use named React hooks instead of React namespace. To
modernise this old component per the new guidelines.
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>
* set size=small buttons to `text_sm`
* change to `leading_snug`
* add gap to repost buttons
* Add medium-weight font, use for buttons (#8819)
* add medium weight inter
* add medium font to buttons
* Adjust bold weights
* Fix ref
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Align with designs
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add context and comment for translators to button text in email verification dialog
* shorten comment
* add comment for other string
* tweak comment
* tweak again
* 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
* 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>
* Only enable policy update overlay once the actual Overlay mounts (after onboarding and all that)
* Disable policy overlay in e2e
* Add comments
* Add extra insurance
* Rm log
* Fix shared prefs test
* Fix login flows by optionally closing 'Remember password' system dialog
* Return missing testID
* Bump dev-env
* Only enable policy update overlay once the actual Overlay mounts (after onboarding and all that)
* Disable policy overlay in e2e
* Add comments
* Add extra insurance
* Rm log
* Rm gradient buttons from Storybook
* TEMP move storybook button section
* Remove gradient_sky
* Remove actual defs for gradient_sky and gradient_primary
* Remove other gradient defs
* Remove gradient support entirely
* Deprecate 'variant' in favor of 'color'
* Fork base styles codepath to make variant deprecation more obvious
* Remove text styles for when no color is set, never been used
* Fork text styles codepath to make variant deprecation more obvious
* Revert temp storybook commit, remove deprecated values
* Replace remaining gradient button usage
* Update Buttons storybook section
* Update tiny styles
* Update small styles
* Update large sizes
* Ensure proper alignment of buttons in storybook
* Update button colors
* Rename negative_secondary to negative_subtle
* Remove unnecessary select()
* Update icon size and gap
* Update negative_subtle styles
* Custom button colors
* Add borderCurve
* update: toast colors for accessibility
* update: toast color codes from figma
* condense the colors to remove select calls that are unecessary
* remove unused select
* Revert "[APP-1083] bug fix: videos not accurately autoplaying on web (#8692)"
This reverts commit 9aa35e9fbb.
* fix overflow hidden breaking the video viewport observer
* update: auto play video on web with intersection position
* place back the threshold: 0.5
* update: optimize the intersection observer with a throttled scroll listener
---------
Co-authored-by: Anastasiya <anastasiya@Mac.localdomain>
Co-authored-by: Anastasiya <anastasiya@Anastasiyas-MacBook-Pro.local>
* Rm gradient buttons from Storybook
* TEMP move storybook button section
* Remove gradient_sky
* Remove actual defs for gradient_sky and gradient_primary
* Remove other gradient defs
* Remove gradient support entirely
* Deprecate 'variant' in favor of 'color'
* Fork base styles codepath to make variant deprecation more obvious
* Remove text styles for when no color is set, never been used
* Fork text styles codepath to make variant deprecation more obvious
* Revert temp storybook commit, remove deprecated values
* Replace remaining gradient button usage
* Reorg
* Move animation into css file
* Update style comment
* Extract core component, use platform-specific wrappers
* Pull out platform specific styles
* Just move styles into Toast component itself
* Rename cleanup
* Update API
* Add duration optional prop
* Add some type docs
* add exp eased slide aniamtions
* Make toasts full width on mobile web
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Clean up env files
* Use new env in Sentry setup file
* Use new env in Bitdrift setup file
* Use new env in chat proxy header
* Prefix Bitdrift key with EXPO_PUBLIC
* Deprecate SENTRY_RELEASE since we use package.json now
* Use existing EXPO_PUBLIC_BUNDLE_IDENTIFIER short commit has as Sentry dist value
* Fix missing bundle identifier for Render deploys
* Deprecate SENTRY_DIST in favor of EXPO_PUBLIC_BUNDLE_IDENTIFIER
* Prefix SENTRY_DSN with EXPO_PUBLIC to match others
* Remove debugging field
* Replace NODE_ENV in places where its safe
* Self review
* Properly patch Sentry package
* Echo variables to .env in Dockerfile instead of passing to shell script
* Make sure EXPO_PUBLIC_ENV is set for web container builds
* Update IS_TESTFLIGHT to include testflight-android
* Slice bundle hash to match other platforms, needed for render.com deployments
* [APP-1331] Migrate `app-info` to new env (#8703)
* Move env files into directory with platform specific files
* Migrate usages of app-info to new env
* Fix bad import
* Update BUNDLE_DATE format comment
* Trim RENDER_GIT_COMMIT to first 7 to match --short sha
* Clarify build process env vars and ensure they are explicitly passed in
* Revert Sentry patch as a result of prev commit
* Update webpack Sentry dist value based on prev commits
* Add PACKAGE_VERSION and replace in statsig to fix conflict
* Fix render substitution syntax
* Remove invalid syntax
* Remove unnecessary testflight check
* Just use long commit hash
* Slice full hash for display in app
* Fix missing space in ios workflow
* Pass in sentry CLI env vars, align matching values
* Align on RELEASE_VERSION
* Add new env setup to missed OTA spot
* Update webpack to use same SENTRY_RELEASE var
* Just fallback to package version for Render deploys
* Remove TF check for BUNDLE_DATE
* Set EXPO_PUBLIC_ENV for bundle update
* Consistent naming "Env"
* Add comment
* Use RELEASE_VERSION instead of package.json
* Update PR comment CI
* make sure request is fetched before returning true
* Ensure preferences object skips equality checks if overridden
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Changed the TrendingVideos dismiss button to use solid variant and
square shape for improved visibility. Also set ButtonIcon size to "sm"
for better alignment with the new button style.
Reduced top padding from large to small and updated horizontal padding
handling for the TrendingVideos component. Increased card gap and snap
interval from small to medium.
Added a border and low contrast border color to CompactVideoPostCard,
CompactVideoPostCardPlaceholder, and TrendingVideos card components for
improved visual separation.
Added a small shadow (shadow_sm) to the CompactVideoPostCard and the
"View more" card in TrendingVideos for improved visual depth and
consistency. This enhances the card appearance and aligns with the
design system.
Added overflow_hidden to the main container and set overflow_visible on
the FlatList to ensure proper display of horizontally scrolling cards.
This resolves clipping issues and improves the visual layout of trending
videos.
Added the `overflow_visible` atom to the atoms utility object for
setting CSS overflow to 'visible'. This complements the existing
`overflow_hidden` atom and improves flexibility for layout styling.
* replace resumeSession with getSession
* copy lil type tweak from the other PR
* Add partialRefreshSession to session API context, use session state to infer state further down tree
* Review
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* feat(ui): add showLikeCount flag to CompactVideoPostCard
Introduced a showLikeCount flag to control the display of like count in
the CompactVideoPostCard component. The like count is now only shown if
both likeCount > 0 and showLikeCount are true. This allows for more
flexible UI configurations and easier toggling of like count visibility.
* fix(ui): hide gradient shadow when hiding like count
* fix(ui): increase trending video profile pic size from 20 -> 24
* fix(ui): add small drop shadow to trending video profile pic
* fix(ui): a.shadow_sm -> t.atoms.shadow_sm based on PR feedback
"Following" has different translations as a name of a feed and the state of following someone in other languages like Turkish. This allows "Following" as a feed name translated correctly.
(cherry picked from commit d92a7f163ed9e28ee4ebab230758b1f00bdd9966)
Co-authored-by: Sedat Kapanoğlu <sedat@kapanoglu.com>
The colons in file names break Windows compatibility and prevent Bluesky from being developed on Windows. (Regression: Bluesky Git repository always shows missing files on Windows #8263)
* add getInitialURL
* get deep linking working
* actually handle as push instead
* push to route instead of setting initial path
* pop to on top of notifications
* fix comment
* change chat-message handling
* add metrics
* don't reopen due to notif multiple times
* extract data from notification differently on android
* sorry sorry annoying naming nits, align logger
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* fix quote padding not being pressable
* fix list padding not being pressable
* Fix unnecessary loading of feeds (#8578)
* stop layout shifts in feed loading
* don't load feed data if we already have it
* adjust styles, alf stuff
* remove unused button, massively simplify
* fix layout shifting in notifs
* use feedcard for feed post embeds
* use bold text to match other style
* use Link component rather than jank Pressable
* prevent nested anchors in notifs
* match following text size
* add space between content hider
* Better dead feed handling (#8579)
* add space between content hider
* add handling for feeds that fail to load
* cleanError, in case of network funkiness
* handle deleted lists
* split out missingfeed
* Working overlay, WIP
* Ok working with no overlay and global gesture handler
* Ok pretty good on native
* Cleanup
* Cleanup
* add animation
* add transform origin to animation
* Some a11y
* Improve colors
* Explicitly wrap gesture handler
* Add easier abstraction
* Web
* Fix animation
* Cleanup and remove provider
* Include demo for now
* Ok diff interface to avoid collapsed views
* Use dimensions hook
* Adjust overlap, clarify intent of consts
* Revert testing edits
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Temp ignore a couple logs
* Add debug for unknown notifications
* Nvm let's do this in Sentry
* Downgrade two DMs network related issues
* Check for network errors before sending in Convo
* Do the same for event bus
* Fix mistake
* Move all dialogs within NavigationContent on native
* Ok leave old ModalsContainer alone for now
* Do the same on web
* Gate browser consent dialog just to be clear
* use button instead of TextLink for show more
* Match post text size, provide interaction feedback
* Move to new Post components dir
* Prettier
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add hover to anchor display name / handle
* use newer link component
* Wrap using a single hover element
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Direct port of embeds to new arch
(cherry picked from commit cc3fa1f6cea396dd9222486c633a508bfee1ecd6)
* Re-org
* Split out ListEmbed and FeedEmbed
* Split out ImageEmbed
* DRY up a bit
* Port over ExternalLinkEmbed
* Port over Player and Gif embeds
* Migrate ComposerReplyTo
* Replace other usages of old post-embeds
* Migrate view contexts
* Copy pasta VideoEmbed
* Copy pasta GifEmbed
* Swap in new file location
* Clean up
* Fix up native
* Add back in correct moderation on List and Feed embeds
* Format
* Prettier
* delete old video utils
* move bandwidth-estimate.ts
* Remove log
* Add LazyQuoteEmbed for composer use
* Clean up unused things
* Remove remaining items
* Prettier
* Fix imports
* Handle nested quotes same as prod
* Add back silenced error handling
* Fix lint
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* lift up useFullscreen, hide mediainsetborder when fullscreen
* Revert "lift up useFullscreen, hide mediainsetborder when fullscreen"
This reverts commit 66b1765719.
* just move border outside of div that gets fullscreened
* WIP
* Sorting working
* Rough handling of hidden/muted
* Better muted/hidden sorting and handling
* Clarify some naming
* Fix parents
* Handle first reply under highlighted/composer
* WIP RaW
* WIP optimistic
* Optimistic WIP
* Little cleanup, inserting dupes
* Re-org
* Add in new optimistic insert logic
* Update types
* Sorta working linear view optimistic state
* Simple working version, no pref for OP
* Working optimistic reply insertions, preference for OP
* Ensure deletes are coming through
* WIP scroll handling
* WIP scroll tweaks
* Clean up scrolling
* Clean up onPostSuccess
* Add annotations
* Fix highlighted post calc
* WIP kill me
* Update APIs
* Nvm don't kill me
* Fix optimistic insert
* Handle read more cases in tree view
* Basically working read more
* Handle linear view
* Reorg
* More reorg
* Split up thread post components
* New reply tree layout
* Fix up traversal metadata
* Tighten some spacing
* Use indent ya idiot
* Some linear mode cleanup
* Fix lines on read more items
* Vibe coding to success
* Almost there with read mores
* Update APIs
* Bump sdk
* Update import
* Checkpoint new traversal
* Checkpoint cleanup
* Checkpoint, need to fix blocked posts
* Checkpoint: think we're good, needs more cleanup
* Clean it up
* Two passes only
* Set to default params, update comment
* Fix render bug on native
* Checkpoint parent rendering, can opt for slower handling here
* Clean up parent handling, reply handling
* Fix read more extra space
* Fix read more in linear view
* Fix hidden reply handling, seen count, before/after calc
* Update naming
* Rename Slice to ThreadItem
* Add basic post and anchor skeletons
* Refactor client-side hidden
* WIP hidden fetching
* Update types
* Clean up query a bit
* Scrolling still broken
* Ok maybe fix scrolling
* Checkpoint move state into meta query
* Don't load remote hidden items unless needed
* skeleton view
* Reset hidden items when params change
* Split up traversal and avoid multiple passes
* Clean up
* Checkpoint: handling exhausted replies
* Clean up traversal functions further
* Clean up pagination
* Limit optimistic reply depth
* Handle optimistic insert in hidden replies
* Share root query key for easier cache extraction
* Make blurred posts not look like ass
* Fix double deleted item
* Make optimistic deleted state not look like crap in tree view
* Fix parents traversal 4 real
* Rename tree post
* Make optimistic deletions of linear posts not look bad
* Rename linear post components
* Handle tombstone views
* Rename read more component
* Add moreParents handling
* Align interaction states of read more
* Fix read more on FF
* Tree view skeleton
* Reply composer skele
* Remove hack for showing more replies
* Checkpoint: sort change scrolling fixed
* Checkpoint: learned new things, reset to base
* Feature gate
* Rename
* Replace show more
* Update settings screen
* Update pkg and endpoint
* Remove console
* Eureka
* Cleanup last commit
* No tests atm
* Remove scroll provider
* Clean up callbacks, better error state
* Remove todo
* Remove todo
* Remove todos
* Format
* Ok I think scrolling is solid
* Add back mobile compose input
* Ok need to compute headerHeight every time
* Update comments
* Ok button up web too
* Threads v2 tweaks (#8467)
* fix error screen collapsing
* use personx icon for blocked posts
* Remove height/width
* Revert unused Header change
* Clarify code
* Relate consts to theme values
* Remove debug code
* Typo
* Fix debounce of threads prefs
* Update metadata comments, dev mode
* Missed a spot
* Clean up todo
* Fix up no-unauthenticated posts
* Truncate parents if no-unauth
* Update getBranch docs
* Remove debug code
* Expand fetching in some cases
* Clear scroll need for root post to fix jump bug
* Fix reply composer skeleton state
* Remove uneeded initialized value
* Add profile shadow cache
* Some metrics
* prettier tweak
* eslint ignore
* Fix optimistic insertion
* Typo
* Rename, comment
* Remove wait
* Counter naming
* Replies seen counter for moderated sub-trees
* Remove borders on skeleton
* Align tombstone with optimistic deletion state
* Fix optimistic deletion for thread
* Add tree view icon
* Rename
* Cleanup
* Update settings copy
* Header menu open metric
* Bump package
* Better reply prompt (#8474)
* restyle reply prompt
* hide bottom bar border for cleaner look
* use new border hiding hook in DMs
* create `transparentifyColor` function
* adjust padding
* fix padding in immersive lpayer
* Apply suggestions from code review
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Integrate post-source
(cherry picked from commit fe053e9b38395a4fcb30a4367bc800f64ea84fe9)
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Implemented #2406: Instant Feed Update on Mute or Moderation Action
Posts from muted or blocked users are now removed immediately from
the feed. This is achieved by extending the usePostShadow hook to
check if the post author is muted or blocked and return
POST_TOMBSTONE accordingly.
A unit test was also added to validate the new logic.
Co-authored-by: Pedro Macedo <pedrosantosmacedo@tecnico.ulisboa.pt>
* remove useless tests
---------
Co-authored-by: Pedro Macedo <pedrosantosmacedo@tecnico.ulisboa.pt>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* add pwi warning to share menu, remove prompt
* add pwi label to web, remove prompt
* add an option to the PWI menu
* conditionally reorder items on web
* move post ctrls to #/components
* restructure post controls, basic share menu
* add border radius to searchable people list for android
* Revert "add border radius to searchable people list for android"
This reverts commit 417449086e25b82f5683b12f6405d972f48ce50e.
* add copy link to native share menu
* reorg files again
* open native share menu on long press
* Translation comments
Thanks @surfdude29
* abs path
* update type imports, remove forwardRef
* rm react import
* equal spacing of buttons, extract disco debug
* add better icon
* add right offset to share button for visual alignment
* Add recent chats to share menu (#7853)
* add recent chats to share menu
* Update RecentChats.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update RecentChats.tsx
* add fading edge on andriod
* tweak scrollview
* Add metrics and A/B alt icon to share menu (#8401)
* add metrics
* add a/b tested alt icon
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* More descriptive share text/icon on web (#7854)
* more descriptive share text on web
* revert dev mode changes
* add missing import
* use modified share icon everywhere
* Add back conflicting changes
---------
Co-authored-by: Eric Bailey <git@esb.lol>
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* radix select component on web
* native implementation (wip)
* fix sheet height/padding
* tone down web styles
* react 19 cleanup
* replace primary language select
* change style on native
* get auto placeholder working
* more style tweaks
* replace app language dropdown
* replace rnpickerselect with native select
* rm react-native-picker-select dependency
* rm placeholder, since a value is always selected
* docblock for renderItem
* add more docblocks
* add style prop to item
* pass selectedValue through renderItem
* fix context
* Style overflow buttons
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* use binary search for compressImage
* use binary search for doResize (mobile version)
* use binary search for doResize (web version)
* use safeDeleteAsync in compressImage
---------
Co-authored-by: nguyen <nguyensvo123@gmail.com>
* add stateful dialog control hook
* add new alf'd consent
* make secondary_inverted buttons clearer
* contingency for opening a link from another dialog
* rm old modal
* Differentiate buttons more
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* keep all radix deps aligned by using single package
* import directly from `radix-ui` or `radix-ui/internal`
* prevent radix leaking into native build
* Prevent issuing verifications for users without display names
* Wait for success before closing, show errors
* Update icons
* WIP adjust size
* Adjust check size in feeds
* Add back unused icon
* Format
* 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>
* move to dialogs dir
* make searchable people list more generic
* new list-add-remove-users dialog
* update header text
* fix header on android
* delete old modal
* reduce spacing on items
* Replace usages of old ProfileCard
* Replace Pills with Labels component
* Replace impl of ProfileCardWithFollowButton
* Remove never-used LikesDialog
* Handle missing mod opts
* Add missing profile hover
* use modern button in listmembers
* remove follow button from muted accounts list
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Tests fix
* Move the hosting provider text in account creation into the inside of the button to improve translation handling (close#8166)
* Pull latest translations
* Revert the 'you are creating an account' change entirely; it doesnt work
* Increase number of accounts suggested in the follow dialog progress guide
* Increase the bottom pad on the dialog flatlist component
* Format
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Only show suggested users for non-english users
* Fall back to searching for users for non-english speakers
* Disable other queries if full experience is disabled
* Bump package
* If no content langs, use full exp
* Hover on sugg account
* Add subtle hover to all components except feed
* Use skeleton states for refetch on focus
* Empty results state for sugg users
* Filter out pinned posts from feed previews
* Add trending header if not top module
* Tighten up spacing
* Fetch 10 profiles
* Update interests copy
* Remove refetch on focus
* Add PTR
* use a map
* Update src/screens/Search/modules/ExploreInterestsCard.tsx
* fix web double border
---------
Co-authored-by: Hailey <me@haileyok.com>
* Fix interests card spacing
* Space out AvatarStack
* SP icon size
* Visual alignment of tab bar and headers
* Tweak spacing around search input
* Drop text size in sp card overflow count
* Tweak
* 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>
* get context menu somewhat working ish
* take screenshot rather than double rendering
* get animations somewhat working
* get transform animation working
* rm log
* upwards safe area
* get working on android
* get android working once and for all
* fix positioning on both platforms
* use dark blur on ios always, fix dark mode
* allow closing with hardware back press
* try and fix type error
* add note about ts-ignore
* round post
* add image capture error handling
* extract magic numbers
* set explicit embed width, rm top margin
* Message embed width tweaks
* Format
* fix position of embeds
* same as above for web
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Align dist and release tags on all platforms
* Upload web sourcemaps
* Debug code
* Send debug and error logging to Sentry
* Let .env do the work
* Try straight env
* Try copy in Dockerfile
* Ok ok ok
* Debug Dockerfile
* Proper setup
* See where we're at
* Reference var correctly
* Fall back to package version
* Verbose force env
* Should be working native builds
* Comments
* Remove unused deps
* Revert unneeded changes
* Remove debug code
* Clarify intent
* Remove deprecated files
* Add sentry vars to OTA
* Debug
* Revert "Debug"
This reverts commit 2d5857fb0fb0858ac3e2f98bc56bde913078d0a7.
* Use included CLI to upload native source maps post-OTA build
* Use included bin script
See https://github.com/getsentry/sentry-react-native/commit/0d87adb516b2a5ea61353e25098c31f9aeb7e503
* Bump sentry, update script
* Comment
* fix failing CI
* Pin sentry, update patch, update lock
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Revert "fix autocomplete (#7930)"
This reverts commit f06a78017a.
* Revert "#6861: Use available space to make focus on Composer TextInput easier (copy) (#7836)"
This reverts commit e40656128d.
* enhance(embed): add ability to pin color mode
* fix: Move color mode dropdown to the root section
* auto -> system
* style tweaks
* default to light theme
* try and fix eslint
* fix dropdown styles on other browsers
* rm unnecessary eslintrc change
* more explicit color mode select
* make light explicit
---------
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
* improve error screen
* add chat request prompt
* mock up inbox
* bigger button
* use two-button layout
* get inbox working somewhat
* fix type errors
* fetch both pages for badge
* don't include read convos in preview
* in-chat ui for non-accepted convos (part 1)
* add chatstatusinfo
* fix status info not disappearing
* get chat status info working
* change min item height
* move files around
* add updated sdk
* improve badge behaviour
* mock up mark all as read
* update sdk to 0.14.4
* hide chat status info if initiating convo
* fix unread count for deleted accounts
* add toasts after rejection
* add prompt to delete
* adjust badge on desktop
* requests -> chat requests
* fix height flicker
* add mark as read button to header
* add mark all as read APIs
* separate avatarstack into two components (#7845)
* fix messages being hidden behind chatstatusinfo
* show inbox preview on empty state
* fix empty state again
* Use new convo availability API (#7812)
* [Inbox] Accept button on convo screen (#7795)
* accept button on convo screen
* fix types
* fix type error
* improve spacing
* [DMs] Implement new log types (#7835)
* optimise badge state
* add read message log
* add isLogAcceptConvo
* mute/unmute convo logs
* use setqueriesdata
* always show label on button
* optimistically update badge
* change incorrect unread count change
* Update src/screens/Messages/Inbox.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update src/screens/Messages/components/RequestButtons.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update src/screens/Messages/components/RequestButtons.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update src/screens/Messages/components/RequestListItem.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* fix race condition with accepting convo
* fix back button on web
* filter left convos from badge
* update atproto to fix CI
* Add accept override external to convo (#7891)
* Add accept override external to convo
* rm log
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* Add option to align web dialogs to top
* Add new wait util
* Pipe through feed view to feed components
* Reset unneeded change to main
* Copy over fresh report dialog based on old
* Hack in temp testing data
* Swap in new dialog in all cases but chat
* Cleanup
* Add load and initial error state
* Fill in states
* Add copyright link
* Handle single labeler case
* Comment out debug code
* Improve centering of type in circles
* Open details if Other is selected
* Remove debug code
* Tweak colors
* Bump SDK
* Tweak Admonition for better x-platform styles
* Add retry button
* Add close button
* Remove todo not covered in this PR
* Translate Retry
* Adjust datalake abstraction
(cherry picked from commit 8ba6a8d45b1bd5698afbd06d9e858a91789f0ea6)
* Just be really really specific
(cherry picked from commit 920198959659329a7f7f7282a1293aaad198d8e3)
* Add metric method to logger, replace datalake calls with new method
(cherry picked from commit 7a026bbeae75514b64f928d7ff59707c518fd5e5)
* Clarify types
(cherry picked from commit 422b150deb158a70ef37e8a456d91bf26cd0b1bc)
* Colocate bitdrift in logger, use logger for transport
(cherry picked from commit cdd6941fd7)
* Fix mocks, format
(cherry picked from commit 9de88660c6)
* Ok I guess mocks dir doesn't work
(cherry picked from commit 9f37e52011)
* Remove enablement
* Refactor context and filtering
* Fix imports, simplify transports config
* Migrate usages of debug context
* Re-org, add colors and grouping to console logging
* Remove temp default context
* Remove manual prefix
* Move colorizing out of console transport body
* Reduce reuse
* Pass through context
* Ensure bitdrift is enabled in dev
* Enable Sentry on web only
* Clean up types
* Docs
* Format
* Update tests
* Clean up tests
* No positional args
* Revert Sentry changes
* Clean up context, use it, pass metadata through to Bitdrift
* Fix up debugging
* Clean up metadata before passing to Bitdrift
* Correct transports
* Reserve context prop on metadata and include in transports
* Update tests
* mobile avatar profile preloading fix
* updating fix to include moderation
* removing comments, adding disableNavigation to PreviewableUserAvatarProps
* better tablet layout
* adjust left nav spacing
* add right nav to pwi
* clearer logic
* fix a couple screens that don't need the tablet layout
* fix horiz scroll bar
* fix double trending
* fix ts-ignore
* fix labeller screen
* don't offset things within dialogs
* fix load latest button (and add scale animation)
* center loader on home screen
* adjust break points
* adjust left nav spacing
* fix load latest btn (again)
* add lang select to right nav if left nav is minimal
* fix double scrollbar on tiny screens
* fix scrollbar
* fix type errors
* 6861: Use available space to make focus on Composer TextInput easier
* Undo web
* bluesky-social#6861: Adjust focus area for native platforms taking Embeds into consideration
* use atoms
* remove empty div
* remove debug atom, whoopsie
---------
Co-authored-by: GrizliK1988 <dgrachikov@gmail.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* tweak height/padding of iOS
* tweak android ratio calculation
* add a bit of extra padding to full height iOS to account for the bit below the safe area
* Add support for label exp to LabelsOnMeDialog
* Add exp to PostAlerts, align with LabelsOnMe UI
* Bump weight
* Improve translations
* Expiry should round up
* Add a little visual alignment hack
* Bump SDK
* Use consistent type in profile query
* Omit from constraint for profile shadow
* Replace isRecord with isValidRecord in QuoteEmbed
* Omit type from constraint for old ProfileCard
* Omit type from constraint in profile queries where appropriate
* Use correct type for update profile mutation
* Conslidate and fix check for isValidRecord in Post.tsx
* Replace isRecord with isValidRecord in PostThreadItem
* Remove redundant cast in PostThreadFollowBtn
* Ignore errors in DebugMod screen
* Use matching type in ProfileFollows screen
* Use matching type in ProfileFollowers screen
* Migrate to isValidRecord in PostFeedItem
* Use matching type if PostRepostedBy
* Omit type from constraint in avatar props
* Use matching types in NotificationFeedItem
* Todo
* Use isValidRecord in NotfyFeedItem
* Improve MediaPreview types
* Migrate another isValidRecord in NotificationFeedItem
* Migrate to isValidView in queries/util
* Migrate to isValidRecord in threadgate/util
* Fix types in threadgates
* Fix up types in starter-packs queries
* Todo
* Specify exact types in search-posts
* Use internal type util to align types
* Ditto last
* Migrate postgate/index
* Specify exact types in post-thread
* Use correct type in post-quotes
* FIX potential bug in post-thread
* Use correct type in post-feed
* Add correct type guards to notifications/feed
* Migrate a guard in notifications/util
* Migrate guard in Wizard/State
* [@next] Profile handling, migrate `ProfileCard` (#7347)
* Introduce new utils for profiles, migrate old ProfileCard
* Rename, reorg
* Add parseEmbed utils
* Expand AnyProfileView to include chat profile view, update post shadow to reflect this
* Cast for perf reasons
* Tighten up types now that we have AnyProfileView
* Add fastIsType util
* Use `assertDid`
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Use util types
* Comment
* Use fastIsType where no validation was happening before
* suggestions (#7382)
* suggestions
* Revert unneeded changes
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Use new util
* Rename to dangerousIsType
* Convert object shape
* Use dangerous util
* Use dangerous util
* Use dangerous util, we can trust post records
* Use dangerous util
* Use AnyProfileVIew
* Convert object shape
* Clean up handling
* Patch moderateProfile to accept known profile views, to discuss
* Add AnyStarterPackView and related, implement in first usage
* Remove validation, fix type, fix ref
* Migrate over list-conversations
* Clarify intent behind precacheProfile and its unstable query cache
* Clean up unstable profile cache
* Fix types during label creation in PwiOptOut (#7346)
* Tighten types in queries/list
* Chat: use correct profile views
* Chat: fix log type check
* Chat: construct lexically correct shape, even though it's only internal usage
* Chat: use correct profile types
* Chat: fix type check in logs
* Starter: use correct profile types
* Starter: use correct profile types
* Starter: tighten types to match lex
* Any profile type will work in blocked-and-muted
* Use dangerous util
* Use dangerousIsType
* Update new ProfileCard to use AnyProfileView
* Use dangerousIsType
* Remove outdated todo
* Use correct profile type
* Use correct profile types
* Tighten up types
* Use dangerousIsType
* Chat: more type fixes
* Remove unused file
* Add a few utils
* Remove unused file
* Ignore feedPost.__source
* Clean up types, leave validation in critical path
* Use dangerousIstype
* Use ANyProfileView
* Use isValidRecord
* Use dangerousIsType
* Fix types in ListCard
* Fix FeedInterstitials types
* Fix types in FeedCard
* Fix types in dms ReportDialog
* Fix types in SearchablePeopleList
* Fix bad type in composer opts
* Starter: ok these need to be loose too
* Clarify docs
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Less code
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Use package exports
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
* Use package exports
* Bump sdk, update $Typed imports
* Format
* Format
* Fix weird TS error
* Remove patch
* Beter name
* It's memo, can validate
* Tighten up parseEmbed, dogfood
* Bump sdk
* Use asPredicate
* Loosen types a bit
* use asPredicate
* Fix types
* Use asPredicate
* Use asPredicate
* Use asPredicate
* Clean up upsertProfile types
* Use asPredicate
* Use Un util
* Fix types
* Use new AnyProfileView
* Use dangerousIsType
* Use asPredicate
* Use asPredicate
* Add fallback content-type to pass typecheck
* Clean up upsertProfile types
* Align types
* Use dangerousIsType
* Use dangerousIsType
* Use asPredicate
* Align types
* Convert findLast
* Align types
* Just ignore type errors and use findLast
* Rename atproto -> bsky
* Add validate util
* Fix type error
* Loosen types
* Export post
* rename atp bsky
* Remove unused code
* minor changes
* Bump deps
* Fix types
* Tighten back up loose check
* Tighten back up loose check
* Fix small bug
* Update comment
* Revert change
---------
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
Co-authored-by: Matthieu Sieben <matthieu.sieben@gmail.com>
* replace with Menu
* new icon for native
* hackfix radix dropdown height
* fix jsx
* reduce language names with lots of variants to what firefox returns from Intl.DisplayNames
* more language label simplifications
* add collision padding
* adjust spacing around and left align title
* per-user search history
* move to mmkv with cool new hook
* revert accidental changes
This reverts commit 27c89fa645eff0acb7a8fd852203ff1ea3725c69.
* restore limits
* Add interaction settings screen
* Move header out of interaction settings form
* WIP hook it up
* Thread through default settings into composer
* Update copy pasta
* Handle edited state
* Copy feedback
* Sentence case
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update copy
* Bump SDK
* Fix new type error
* Less in your face
* Remove new dep
* Add slot
* Copy edit
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* PT-BR Translation update to 1.95.0
* PT-BR Translation update to 1.95.0
* Added more translations to new features
Fixed more inconsistencies
* Added more translations to new features
Fixed more inconsistencies
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Add Danish localization
* Fix
* Update src/locale/locales/da/messages.po
Co-authored-by: Frudrax Cheng <i@cynosura.one>
* Typo
* Inconsistent translation of "draft"
* Do not use "post" as verb
* Change "post"/"repost" to "opslag"/"videredeling"
* Fix "About"
* Fix
* Add to iOS config
* Sort alphabetically
* Typo fixes by @kseistrup
* Fix gender of "opslag"
* Plural
* "videredeling" > "deling"
* Be specific that ÆØÅ is not allowed
* Add new strings from main
---------
Co-authored-by: Frudrax Cheng <i@cynosura.one>
* Adding Swedish translation
* Fixes and improvements
* Fixes and improvements
* Fixed inconsistencies + some other improvements
* Made some improvements, added missing translations and added Swedish to app.config.js
* Force push to resolve conflicts in messages.po
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
---------
Co-authored-by: GitHub <noreply@github.com>
Changed StepFinished "Avaa" to "Avoin": the StepFinished screen is using Open as an adjective and not as a verb like the Finnish version currently does.
* Updates and missing translations.
Added some missing translations, corrected a few inconsistencies (paquete inicial; video) and edited to strings to use gender-neutral language.
* Update src/locale/locales/es/messages.po
Thanks @surfdude29 for pointing this out
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update src/locale/locales/es/messages.po
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update messages.po
* Update messages.po
* Update messages.po
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Extract new strings to be translated in FR
* Translate strings in French for v1.97
* Remove legacy, now unused strings in fr locale
* Fix misusage of flux instead of fil
* Extract new strings again for v1.97
* Translate appeal-related string in French for v1.97
* 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
* Add videos tab to profile
* Modify sourceContext for author feeds
* Use actual typecast, better name for feedUri
* Make EOF conditional
* Clearer condition
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Make tag a normal link on web
* Replace old TagMenu with new RichTextTag component, expand and improve click utils
* Clarify intents
* Ensure we're passing down hint
* ope
* DRY
* 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>
* account quick switch on web
* dont show line if one account
* switch account label text
* add chevron hover state
* swagged up hover state
* add icons
* tune scale anim and respect prefers-reduced-motion
* fix reduced motion
* fix placeholder position
* move menu components out to separate component
* Pipe through outer handlers to Button
* Abstract lag in control.isOpen state
* add profile info into empty space
* fix tablet
* Alternative
* Revert "Alternative"
This reverts commit 050ab9595ef3bbc32529ad6588e4690d37539fbe.
* maybe fix flicker issue
* just do 50ms when not active
* delay other animations
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* minimal hosting provider
* change wording and move back up
* first time user nudge
* move tip
* reexport ticket svg
* fix ticket fr this time
* text tweak + add minHeight
* Add Greek language support to the application
* Add support for Greek language in date handling and tests
* Update Greek locale file with translator and team information
* Add support for Greek language in date handling and tests
* Add support for Greek language in app configuration, and updated translation from the reviewers' comments
* Update src/locale/i18n.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update src/locale/i18n.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update po from Transifex
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
* Update Italian translations
---------
Co-authored-by: GitHub <noreply@github.com>
* Fix Spanish translations for some messages
* Fix minor issues in es localization
- Use "etiqueta" instead of "tag"
- Use "eliminar" instead of "remover"
- Unify "entrar en pantalla completa"
- Use "Clic" instead of "Click"
- Use "paquete de inicio" instead of "pack de inicio"
- Unify use of "trasladado" instead of "mudado"
- Unify use of "solo" instead of "sólo"
- Unify use of "feed" instead of "noticias"
- Unify use of quotes for "me gusta" as "likes"
- Improve sentences using "2FA"
- Unify sentences mentioning quote posts (citas)
- Other small inconsistencies
- Tú vs usted inconsistencies:
- agregue -> agrega
- inténtelo -> inténtalo
- cierre -> cierra
- su -> tu
- complete -> completa
- comience -> comienza
- seleccionaba -> seleccionabas
- intentaba -> intentabas
- puede -> puedes
- Inconsistencies to discuss and solve
- Post: use of "post" and "publicación"
- Repost: use of "repost"/"repostear" and "republicación"/"republicar"
- Add: use of "agregar"/"agrega" and "añadir"/"añade"
- Feed: use of Feeds in uppercase
- Video: use of vídeo (es-ES) or video
- User and account ("usuario" and "cuenta")
- Punctuation consistency
- Uppercase and lowercase consistency
* Fix typos and improve Spanish localization in messages.po
---------
Co-authored-by: Daniel García Ruano <dgruano.code@gmail.com>
* Rework discover-feed trending interstitial to take one row
* Fix loading state
* Try putting it at the top
* Color consistency
* Tweak some spacing
* Show trending when progress guide is there
* unlock orientation when lightbox is open
* rm outer safe area view, make sure alt text is safe
* restore safe area view for android 14 and below
* lock orientation on launch for android
* set system ui background to black when lightbox is open
* reset state on relayout
* catch async functions with noops
* rm superfluous catches
* Delay unlock until after animation
* Simplify how key is determined
* Make landscape backdrop opaque
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Only portal the emoji picker where needed
* Add optional portal prop to emoji picker
* Use FocusScope to our advantage
* Pare back, add guards, fix focus trap
* Don't return focus to emoji button
* Set DM input position on emoji insert
* Let the caller determine next focus node
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Fetch newest translations
* Translate new strings
* Apply fixes to strings
Reworded the ‘Deleted’ string and the body text placeholders of the ‘Who can interact with this post?’ dialogue.
* Unify wording/cases of toast messages
The wording of responsive toasts such as ‘Message deleted’ have all been changed to a case like ‘You have deleted this message’. Wording messages in the former way sounds very ‘un-Hungarian,’ so I have gone through the code to find any toast messages not worded this way.
There are a few exceptions, however:
- Error messages – these are already proper, full sentences and do not sound odd when translated as-is.
- ‘Copied to clipboard’, QR code-related toasts – keeping the original case sounded more appropriate here.
* Small correction
Noticed I've accidentally translated ‘About’ as ‘Help’
* Pull newest strings
* Translate new strings
* Bump translation strings for fr
* Translate new strings in French
* Fix a few problems and typos in existing fr locale
- Archivé par followed by a date do not make sense
- l’arrive is clearly a typo, and I rewrote it so it feels better in French
- Ex. with this casing is not frequent, so I moved it at the end (no terseness required here)
- Feedback is now translated using a common translation of those in other UIs
- Removed "Les" in "Les mots" as it's a menu item
- Plus aucune is correct but too formal and weird so switching to Pas d’autre
* Remove all legacy, commented strings
* Use guillemets on fr string about app icons
* Fix translation of “Back” to “Retour” in french
Originally fixed by @lsaudon in #6778, thanks :)
Co-authored-by: Lucas SAUDON <lucas.saudon@beta.gouv.fr>
* Improve fr translations thanks to @CerryTsuki input
* Remove even more legacy strings in fr translations
* Bump translation strings for fr (again)
* Attempt to translate new strings in fr
* Improve 'Archived from' translation in fr
* Bump translation strings for fr (yet again)
* Translate new strings in French
* Get rid of recently removed strings in fr
* Stay consistent when translating handle
---------
Co-authored-by: Lucas SAUDON <lucas.saudon@beta.gouv.fr>
* Updated Polish translation
* Update pl/messages.po
@axiand Thanks for such a detailed analysis and all the suggestions! I've already corrected the mistakes you pointed out.
- The word "repost" was initially translated as "opublikować ponownie," but after consulting members of the Polish community, they agreed that "repostować" would be more appropriate. Personally, I would leave it as is or change it to "opublikować ponownie," but that is a longer phrase and might not fit well in certain interface elements.
- Similarly, with the word "czat"—in my opinion, it aligns better with the app, whereas I translated "conversation" as "rozmowa."
- "Obserwować wzajemnie" doesn't sound very natural in Polish, which was even noted by users who reverted to the English interface because of it. The phrases "również Cię obserwuje" and "również obserwuj" fully capture the meaning of the English original and look good as notifications in the app.
- `L414-440`, `1618` – without the word "zostało," the phrasing lacks clarity.
- `L600`, `1796`, `2804`, `4056`, `7552` and `L718`, `1316`, `2219`, `4662-4667`, `6056`, `6714` – my changes are linguistically correct and look better. The previous formulations were often ambiguous and unclear. I fixed the errors found in these sections.
- `L1447` – I reverted to the previous version.
- I changed "kod potwierdzający" to "kod weryfikacyjny" because it sounds more natural and clear.
- I changed "lista moderowana" to "lista moderacji" as per your suggestion. In Polish, "lista moderacji" sounds like the list belongs to people involved in moderation. It also gives the impression that it might be a list showing moderators or moderation-related services. "Lista moderowana" suggests that someone is overseeing the moderation of the list. I'm still not entirely sure what the intended meaning is or what the audience is meant to understand from the name.
- I changed "rolka aparatu" to "galeria zdjęć."
- I changed "obrazki" to "zdjęcia".
* Update messages.po
Suggested changes were made.
Changed “użytkownik” to “osoba” where it was logical for consistency. Removed where it was not needed.
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Update catalan messages.po
No new lines to translate this one, just fixing some minor errors
Please take a look at it @jordimas @darccio @surfdude29 @rortan134 @magarcia @aryiu
* Update messages.po
* Update Italian translations
* Translate "Discover Feed"
* Update translations from Transifex
* Update translations from Transifex
* Update translations from Transifex
* Update translations from Transifex
* Update translations from Transifex
* Update translations from Transifex
* Update translations from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
* Update po from Transifex
---------
Co-authored-by: GitHub <noreply@github.com>
* Updates and missing translations.
Added some missing translations, corrected a few inconsistencies (paquete inicial; video) and edited to strings to use gender-neutral language.
* Update src/locale/locales/es/messages.po
Thanks @surfdude29 for pointing this out
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update src/locale/locales/es/messages.po
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Move
(cherry picked from commit bfb96f4ce2)
* Add to recommeded too
(cherry picked from commit e6844883a6)
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* render header conditionally, use modern footer
* move add button to empty state if empty
* center align empty state
* Tweak add people btn
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* rm subtitle, add admonition
* rm top border from empty state
* Minimal approach
* Revert uneeded change
* Even more minimal
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Add WIP UIs for trending topics and suggested starterpacks
* Disable SPs for now
* Improve explore treatment a bit, add some polish to cards
* Add tiny option in RightNav
* Add persisted option to hide trending from sidebar
* Add to settings, abstract state, not updating in tab
* Fix up hide/show toggle state, WITH broadcast hacK
* Clean up persisted code, add new setting
* Add new interstitial to Discover
* Exploration
* First hack at mute words
* Wire up interstitial and Explore page
* Align components
* Some skeleton UI
* Handle service config, enablement, load states, update lex contract
* Centralize mute word handling
* Stale time to 30m
* Cache enabled value for reloads, use real data for service config
* Remove broadcast hack
* Remove titleChild
* Gate settings too
* Update package, rm langs
* Add feature gate
* Only english during beta period
* Hook up real data
* Tweak config
* Straight passthrough links
* Hook up prod agent
* Fix no-show logic
* Up config query to 5 min
* Remove old file
* Remove comment
* Remove stray flex_1
* Make trending setting global
* Quick placeholder state
* Limit # in sidebar, tweak spacing
* Tweak gaps
* Handle hide/show of sidebar
* Simplify messages
* Remove interstitial
* Revert "Remove interstitial"
This reverts commit 1358ad47fd.
* Only show interstitial on mobile
* Fix gap
* Add explore page recommendations
* [topics] add topic screen (#7149)
* add topic screen
* decode
* fix search query
* decode
* add server route
* Fix potential bad destructure (undefined)
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
* new follow-10 progress guide
* find follows dialog
* wip tabs
* flatlist version with search
* hardcode out jake gold
* lazy load followup suggestions
* Update src/components/ProgressGuide/FollowDialog.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* comment out replacing, enable paging
* rm autofocus
* find shadow profiles in paginated search
* clear search when press tabs
* better tab a11y
* fix label
* adjust scroll indicator insets
* do the same scroll indicator adjustment for searchable people list
* hardcode jake to just be 'tech'
* Retain state on close/reopen
* only change follow btn color when not followed
* add guide to inside dialog
* fix task alignment
* Enable contextual suggestions
* WIP: show multiple suggestions
* Rework so it animates well
* Show more items
* remove card style
* move tabs to own component
* split out header top
* scroll active tab into view
* rm log
* Improve perf a bit
* boost popular interests over alphabetical ones
* scroll active tab into view
* revert back to round buttons
* Fix overrenders of the tab bar items
* Fix unintended animation
* Scroll initial into view if needed
* Unlift state, the dialog thing breaks lifting
* Persist simply
* Fix empty state
* Fix incorrect gate exposure
* Fix another bad useGate
* Nit
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Remove "show latest" behind the gate
* Add HomeBadgeProvider
* Update provider state from home feed tabs
* Add Home badge to native
* Add Home badge to mobile web
* Add Home badge to desktop web
* bleed profile banner into safe area
(cherry picked from commit 50b3a4d0c6fd94b583ffe4efa65de35c81ae7f4e)
* pointer events none when hidden
(cherry picked from commit bae2c7b2dd6d7f858a98812196628308c0877755)
* fix web
(cherry picked from commit e3f9597170375f2903b6e567b963f008ec95aed1)
* add status bar shadow
* rm log
* rm mini header
* speed up animation
* pass bool rather than int in light status bar
* further increase target area of scrubber
* make scrubber bigger if touch device
---------
Co-authored-by: Antonio Sarcevic <sarcevicantonio@gmail.com>
* Split out NotificationsTab
* Remove unused route parameter
* Refine the split between components
* Hoist some logic out of NotificationFeed
* Remove unused option
* Add all|conversations to query, hardcode "all"
* Add a Conversations tab
* Rename to Mentions
* Bump packages
* Rename fields
* Fix oopsie
* Simplify header
* Track active tab
* Fix types
* Separate logic for tabs
* Better border for first unread
* Highlight unread for all only
* Fix spinner races
* Fix fetchPage races
* Fix bottom bar border being obscured by glimmer
* Remember last tab within the session
* One tab at a time
* Fix TS
* Handle all RQKEY usages
* Nit
* wip exploration
* list format instead of grid
* fix normalising default name
* adjust margins
* Rework the app icon link
* Decrease app icon size
* Adjust some spacing
* Move some things around to fix web errors
* Fix pathname
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* Font loading improvements
* Reconvert with missing files
* Update bskyweb/templates/base.html
Co-authored-by: Rick Viscomi <rviscomi@users.noreply.github.com>
* Update bskyweb/templates/base.html
Co-authored-by: Rick Viscomi <rviscomi@users.noreply.github.com>
* Run web-build to update hashes
* Revert Android to otf
* Use Inter woff2 files
---------
Co-authored-by: Rick Viscomi <rviscomi@users.noreply.github.com>
* Refactor RightNav
(cherry picked from commit 96bb02acfd2d7452df18a0e7410e6a7169a583ed)
* Better gutter handling
* Clean up styles
* Memoize breakpoints
* Format
* Comment
* Loosen spacing, handle overflow, smaller text to match prod
* Fix circular imports on native
* Return 0 instead of undefined for easier calculations
* Re-assign
* Fix
* Port over fix from subs/base
* Space out right nav feeds, widen sidebar to match prod
* Fix lost padding on home header
* Fix perf by not actually linking to new URL
* Remove underline on focus
* Foramt
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Fix drawer swipe
* Remove existing setDrawerSwipeDisabled management
This is already pretty error-prone. And with tracking whether we're idle it's going to get more complicated. Let's pause and think.
* Move setDrawerSwipeDisabled logic into Pager
* Remove win/2 threshold
It feels super arbitrary and breaks muscle memory. If the gesture is reliable, we shouldn't need it.
* Maybe work around iOS freeze
* Tweak gestures, add comments
* Tune gestures
* package upgrades
* upgrade system ui
* update patches
* rename patch
* rm
* use .set/.set
* resolve yarnlock
* fix accidentally removed package
* fix use permissions hook
* fix some type errors
* type fixes
* more tweaking
* clean
* Discard changes to src/screens/Onboarding/StepProfile/index.tsx
* oops
* fix splash
* use ios/android in config
* Fix tests
* add back patch
* add to rn patch
* fullscreen?
* Revert "add to rn patch"
This reverts commit 4716d2c643.
* try this
* test with revert
* test
* maybe this
* fix config
* Bump @react-native-picker/picker
* Bump some packages
* Rm unused
* Update lockfile
* Rename expo-notifications+0.29.8.patch.md to expo-notifications+0.29.10.patch.md
* Update react-native+0.76.3.patch.md
* Update react-native+0.76.3.patch.md
* Inline splash configs
Jumping around the file is annoying and makes it harder to understand how this is structured.
* Start fixing Android splash
* Downgrade compressor
This version isn't building for me due to https://github.com/numandev1/react-native-compressor/issues/322.
* Make Android splash empty for now
* Work around a bug
* Bump the compressor
* Bump again
* Include splash fixes
* Try updating
* No custom Android splash
* Revert to using icons
* welp
* Fix sizes
* Make sizing work
* Bump size
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add common gutter styles as hook
* Add computed scrollbar gutter CSS vars
* Add new layout components
* Replace layout components in settings screens
* Remove old back button
* Invert web border logic for easier migration
* Clean up Slot API
* Port over FF handling of scrollbar offset
* Trade boilerplate for ease of use
* Limit to one line
* Allow two lines, fix wrapping
* Fix alignment
* sticky headers
* set max with on header and center
* [Layout] Notifications Header (#6910)
* Replace notifications screen header
* fix cropped indicator
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Replace Hashtag header (#6928)
* [Layout] ChatList header (#6929)
* Replace ChatList header
* update chat settings as well
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Add web borders to Chat settings
* Remove unused var
* Move ChatList header outside center
* Replace empty chat layout
* fix breakpoints
* [Layout] Scrollbar gutters (#6908)
* Fix sidebar alignment
* Make sure scrollbars don't hide
* Gift left nav more space
* Use stable one-edge, update logic in RightNav
* Ope
* Increase width
* Reset
* Add transform to sidebars
* Remove bg in sidebars
* Handle shifts in layout components
* Replace scroll-removal handling
* Make react-remove-scroll an explicit dep
* Remove unused script
* use correct scroll insets (#6950)
* [Layout] Feeds headers (#6913)
* Replace ViewHeader internals, duplicate old ViewHeader
* Replace Feeds header
* Replace SavedFeeds header
* Visual alignment
* Uglier but clear
* Use old ViewHeader for SavedFeeds
* use Layout.Center instead of Layout.Content
* use left-aligned header for feed edit
* delete unused old view header
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* [Layout] Every other screen (#6953)
* attempt to fix double borders on every other screen
* delete ListHeaderDesktop
* delete `SimpleViewHeader` and fix screens (#6956)
* Make Layout.Center not full height
* Refactor List to use Layout.Center, remove built-in borders
* Fix Home screen
* Refactor PagerWithHeader to use Layout components
* Replace components in ProfileFeed and ProfileList
* Borders on Profile
* Search screen replacements
* use new header for profile subpage header (#6958)
* Search AutocompleteResults
* use new header for starter pack wizard (#6957)
* Fix post thread
* Enable borders by default
* Moderation muted and blocked accounts
* Fix scrollbar offset on Labeler
* Remove ScrollView from Moderation
* Remove ScrollView from Deactivated
* Remove ScrollView from onboarding
* Remove ScrollView from SignupQueued
* Mark deprecations
* fix lint
* Fix double borders on profile load
* Remove unneeded CenteredView from noty Feed
* Remove double Center layout on Notifications screen
* Remove double Center layout on ChatList screen
* Handle scrollbar offset in chat
* Use new atom for other scrollbar offsets
* Remove borders from old views
* Better doc
* Remove temp migration prop
* Fix new atom usage on native
* Clean up Hashtag screen
* Layout docs
* Clarify usage in Pager
* Handle nested offset contexts
* Clean up Layout
* fix feeds page
* asymmetric header on native (#6969)
* Reusable header const
* Fix up home header
* Add back button to convo
* Add hitslop to header buttons
* Comment
* Better handling on native for new atom
* Format
* Fix nested flatlist on mod screens
* Use react-remove-scroll-bar directly
* Fix notification count overflow on web
* Clarify doc
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Remove tab bar autoscroll
This will be replaced by a different mechanism.
* Track pager drag gesture in a worklet
* Track pager state change in a worklet
* Track offset relative to current page
* Sync scroll to swipe
* Extract TabBarItem
* Sync scroll to swipe properly
* Implement all interactions
* Clarify more hacks
* Simplify the implementation
I was trying to be too smart and this was causing the current page event to lag behind if you continuously drag. Better to let the library do its job.
* Interpolate the indicator
* Fix an infinite swipe loop
* Add TODO
* Animate header color
* Respect initial page
* Keep layouts in a shared value
* Fix profile and types
* Fast path for initial styles
* Scroll to initial
* Factor out a helper
* Fix positioning
* Scroll into view on tap if needed
* Divide free space proportionally
* Scroll into view more aggressively
* Fix corner case
* Ignore spurious event on iOS
* Simplify the condition
Due to RN onLayout event ordering, we know that by now we'll have container and content sizes already.
* Change boolean state to enum
* Better syncing heuristic
* Rm extra return
* Fork TabBar.web.tsx
* Trim dead code from both forks
* Remove onPageSelecting event
It's difficult to tell what exactly it's supposed to represent, and in practice it's not really used aside from logging. Let's rip it out for now to keep other changes simpler.
* Remove early onPageSelected call
It was added to try to do some work eagerly when we're sure which way the scroll is snapping. This is not necessarily a good idea though. It schedules a potentially expensive re-render right during the deceleration animation, which is not great. Whatever we're optimizing there, we should optimize smarter (e.g. prewarm just the network call). The other thing it used to help with is triggering the pager header autoscroll earlier. But we're going to rewrite that part differently anyway so that's not relevant either.
* Prune more dead code from the native version
We'll have to revisit this when adding tablet support but for now I'd prefer to remove a codepath that is not being tested or ever run.
* Use regular ScrollView on native
The Draggable thing was needed for web-only behavior so we can drop it in the native fork.
* Order tweak in lingui.config.js
* Add new languages to `CFBundleLocalizations` key
* Order tweak in dates.ts
* hyphen to en-dash
* change two `zh` tags to use script rather than region
* `zh_HK` ➡️ `yue-Hant`
* `pt` ➡️ `pt-BR`
* Fix lightbox getting stuck by fixing rAF order
If you spam opening lightbox too fast, the effect that calls rAF will clean up and set up again midflight. Unfortunately, due to rAF order being unreliable, it may fire in reverse order, causing "open, open, close" instead of "open, close, open", so it would get stuck closed. This fixes the rAF order.
* Don't allow opening another lightbox while it's open
* Add "ast" locale support
* Add "ast" locale support
* Add "ast" locale support
* Add "ast" locale support
* Add "ast" locale support
* Add "ast" locale support
* Add "ast" translations
This commit adds preliminary translation support for "ast" locale. Around 20% is translated.
* Update "ast" locale translations
* Update "ast" translations
Fixes minor spelling mistakes and translates many strings more
* Update messages.po
With this commit we reach the 55% of strings translated after the last code sync
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Update catalan messages.po
Back to 100% translated.
Applied pending corrections by @darcio and @jordimas https://static.softcatala.org/quality/bluesky_social_app.html
Please take a look at it @ivanbea @jordimas @darccio @surfdude29 @rortan134 @magarcia
* Update catalan messages.po
Change all "arxiu" to "fitxer" as suggested by @jordimas
* Update catalan messages.po
Suggestions by @aryiu
* revert to prev state instead of false
* add dep array
* use ref counting approach
* patch keyboard controller to allow changing the enabled prop
* remove state from patch
* change patched prop name
* remove Math.max check, log if < 0
* use noop provider
* rm patch, use `useRef`
* Style nits
* Rm on web
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Make quote post enabled switch label text static
* Update PostInteractionSettingsDialog.tsx
* meh this is better
---------
Co-authored-by: dan <dan.abramov@gmail.com>
* Don't reorder already seen posts in PostThread
* Add sorting by generation
* Rip out stable order cache
It doesn't make sense because sort() doesn't call the callback for all A/B pairs, and the server returning a different ordering will cause cache misses which means there'll be no stability anyway.
* Make hotness deterministic per fetched at
* Cache random scores while in thread
* Reorder for clarity
* Update languages.ts
added galician language
* Update i18n.web.ts
added import of galician translations file
* Update i18n.ts
added galician language
* Update helpers.ts
added galician to sanitizeLanguage function
* galician messages
First commit
* Second commit
* Third commit
* fourth commit
* fifth commit
* Update lingui.config.js
change to make available Galician language
* galician translation by Carlos Vieito and Alexandre Espinosa
---------
Co-authored-by: Alexandre Espinosa Menor <aemenor@gmail.com>
* updated FR locale
* removed my name from Language-Team
i'm not sure if this is a list of every translation contributors or if this is the main people who handle translations, so i've decided to remove it for the time being
* replaced "fil d'actu Following" with "fil des abonnements"
i thought i did that already oops
* fixed DID mistranslation
i thought it stood for Direct Inward Dialing
* applied suggestions from @signez
Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
* replaced spaces to non breaking spaces where necessary
might have some missing, i'll patch these up while fixing apostrophes
* fixed apostrophes
i also swapped "Changer l'e-mail" with "Changer votre e-mail", thought since it was an account-related thing, IIRC most of the account settings (handle, password, etc.) are possessive towards the user so i thought it'd be better to keep it consistent
* removed the period at the start
why is that here get that outta here
Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
* applied suggestions from @surfdude29
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
* Fix the remaning 'like' mentions in French
---------
Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Update translates from crowdin
* Completed the translations for video and HTTP referer control
* Improved translation
* Fix several translation issues
* Improved Cantonese translations
* chore: update tiptap packages
* perf: reduce number of re-renders
* refactor: apply min height without a layout effect
* Remove stale zeed-dom resolution
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* set onEndReachedThreshold to 2 for ProfileLists
* Add a footer for ProfileLists component for consistency
* Remove logs
* Revert onEndReachedThreshold change on Feed component
* Fix threshold defaults to match native
* Align lists and feedgens
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Remove web hack from non-web file
* Remove hitSlop on the wrong Pressable
It is not doing anything useful.
* Extend avi column to prevent hit rect clipping
You can't click outside the parent on Android.
* Bump pressed opacity to .8
* Slightly reduce avi button hitslops
* Asymmetric hit slop
* Manual truncation & identify factor points for each lang
* Reduce indirection
* Add test
Co-authored-by: khuddite <biliie811028@hotmail.com>
* Handle big numbers, clarify special case
* Clarify the reason
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Pass referer on native
* Add ChainLink3
* Add an opt out for sending utm
* Remove noreferrer on links
We do have <meta name="referrer" content="origin-when-cross-origin"> in HTML, should be sufficient.
* Narrow down the condition slightly
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* ▫️remove deprecated react native eslint package. add react hooks and modern native eslint package. fix bugs
* in retrospect lets just remove the async from uselocalelanguage
* finally clean it all up
* revert yarn.lock
* restore logic
* Move isOnlyEmoji out of RichText
To fix Fast Refresh.
* Make renderChildrenWithEmoji work with any children
* Always go through UITextView for consistency
It already contains the `selectable` and `iOS` checks inside.
* Move `emoji` check into `renderChildrenWithEmoji`
* Remove unnecessary intermediate UITextView nodes
* Make childHasEmoji check recursive
It didn't handle nested arrays etc correctly before.
* Remove the "children must be string" limitation
Should not be necessary now that we correctly handle nested arrays etc.
* Fix unnecessary regex reallocation
This doesn't have a global flag so it's okay to reuse.
* Remove unnecessary <Text> wrapper in RichText
* stop using ref in render
* fix display name fallback on web
* use unicode ellipsis for useGrapheme
* fix overflow issue
* sanitize handle/displayname on web
This PR pins the various React Compiler packages to their exact
versions. While it is typically safe to upgrade the compiler, we
recommend manual upgrades because changes in memoization may or may not
be unexpected.
In the near future we will open source an upgrade script that automates
comparing the current compiled output with the upgraded output and
prints a diff for human confirmation prior to committing the upgrade.
* Initial polish translation sweep
* rewrite feeds page flavor text
* bring up to date with dev branch, revisit some strings
* redoing some more...
* bring up to date
* rm dead strings, try out a different phrasing for threaded mode str
prev translation was nonsensical - we're already calling threads "wątki". let's try "recursive tree" instead to describe what threaded mode does
* tweaks here and there
* more tweaks. sign translation file
TL note: trying a new space-saving translation for send via direct message, old one made the context menu stretch
* space-saving translations for profile tabs
* up to date
* tl latest changes
* some small fixes
* few more tweaks around profile editing strings
* i dislike gendered languages
* yet more tweaks
* Update dates.ts
* Review suggestions (1)
* tiny fixes
* Review suggestions (2)
* Review suggestions (3)
* Review suggestions (4)
* "Anuluj wyciszenie"
* A few new strings
* Remove dead strings again
* Review suggestions (5)
* te -> to
---------
Co-authored-by: Frudrax Cheng <i@cynosura.one>
* Revert "Revert "Render dropdown menu items lazily (#6437)" (#6470)"
This reverts commit 0b38c77faa.
* Lazily initialize menu items
* Split in two files
* Make it work on mobile
This is wonky because our useMenuDialog abstraction only has `isOpen` on web. I couldn't figure out a way to make it work xplat so I'm just tracking it myself manually.
* Fix typo in comment
* update eslint config with jsx runtime
* leverage jsx transform to remove unnecessary react imports and update eslint config
* run yarn lint --fix to remove eslint disables related to react/prop-types that is now disabled
* Add CFBundleSpokenName
Help Siri to correctly pronounce Blue Sky. Instead of pronouncing it like “Lebowski”.
* Format
---------
Co-authored-by: dan <dan.abramov@gmail.com>
An OTA deployment has been requested and is now running for `${{ steps.pr-info.outputs.head-sha }}`.
[Here is some music to listen to while you wait...](https://www.youtube.com/watch?v=VBlFHuCzPgY)
---
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
- name:Check for EXPO_TOKEN
run:>
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name:⬇️ Checkout
uses:actions/checkout@v4
with:
ref:${{ steps.pr-info.outputs.head-sha }}
- name:🔧 Setup Node
uses:actions/setup-node@v4
with:
node-version-file:.nvmrc
cache:yarn
- name:Install dependencies
run:yarn install --frozen-lockfile
- name:Lint check
run:yarn lint
- name:Lint lockfile
run:yarn lockfile-lint
- name:🔤 Compile translations
run:yarn intl:build 2>&1 | tee i18n.log
- name:Check for i18n compilation errors
run:if grep -q "invalid syntax" "i18n.log"; then echo "\n\nFound compilation errors!\n\n" && exit 1; else echo "\n\nNo compilation errors!\n\n"; fi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), code for which is also open source, but in [a different git repository](https://github.com/bluesky-social/atproto).
This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), which are also open source, but in [a different git repository](https://github.com/bluesky-social/atproto).
There is a small amount of Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application.
@@ -19,7 +19,7 @@ The [Build Instructions](./docs/build.md) are a good place to get started with t
The Authenticated Transfer Protocol ("AT Protocol" or "atproto") is a decentralized social media protocol. You don't *need* to understand AT Protocol to work with this application, but it can help. Learn more at:
- [Overview and Guides](https://atproto.com/guides/overview)
- [Github Discussions](https://github.com/bluesky-social/atproto/discussions) 👈 Great place to ask questions
- [GitHub Discussions](https://github.com/bluesky-social/atproto/discussions) 👈 Great place to ask questions
- [Blogpost on self-authenticating data structures](https://bsky.social/about/blog/3-6-2022-a-self-authenticating-social-protocol)
@@ -27,6 +27,7 @@ The Bluesky Social application encompasses a set of schemas and APIs built in th
## Contributions
> [!NOTE]
> While we do accept contributions, we prioritize high quality issues and pull requests. Adhering to the below guidelines will ensure a more timely review.
**Rules:**
@@ -42,7 +43,7 @@ The Bluesky Social application encompasses a set of schemas and APIs built in th
- Open an issue and give some time for discussion before submitting a PR.
- Stay away from PRs like...
- Changing "Post" to "Skeet."
- Refactoring the codebase, e.g., to replace MobX with Redux or something.
- Refactoring the codebase, e.g., to replace React Query with Redux Toolkit or something.
- Adding entirely new features without prior discussion.
Remember, we serve a wide community of users. Our day-to-day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth. That's what forking is for!
@@ -59,7 +60,7 @@ Please be sure to:
## Security disclosures
If you discover any security issues, please send an email to security@bsky.app. The email is automatically CCed to the entire team and we'll respond promptly.
If you discover any security issues, please send an email to security@bsky.app. The email is automatically CC'd to the entire team and we'll respond promptly.
## Are you a developer interested in building on atproto?
@@ -69,6 +70,8 @@ Bluesky is an open social network built on the AT Protocol, a flexible technolog
See [./LICENSE](./LICENSE) for the full license.
Bluesky Social PBC has committed to a software patent non-aggression pledge. For details see [the original announcement](https://bsky.social/about/blog/10-01-2025-patent-pledge).
## P.S.
We ❤️ you and all of the ways you support us. Thank you for making Bluesky a great place!
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.