* 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>
* Convert lightbox to get/set
* Work around software-mansion/react-native-reanimated#6613
* Use get/set in more places
* Port MainScrollProvider to get/set
* Port more to get/set
* Port composer to get/set
* Remove unnecessary thread hops in composer
* Port more things to get/set
* Convert more to get/set, remove redundant runOnJS
* Convert remaining cases to get/set
* [Web] Clicking root link twice refreshes the screen
* Scope it to navigation action
In practice this means -- just for the bottom mobile web tab bar.
* Fix minor localization issues in Spanish:
- Use 'pack de inicio' instead of 'paquete de inicio'
- Use 'Inténtalo' instead of 'Intenta'
- Fix 'Por favor'
- Do not use 'una' as article for 'posts'
- Use 'Eliminado' instead of 'Removido'
* Update src/locale/locales/es/messages.po
Co-authored-by: oledfish <88390729+oledfish@users.noreply.github.com>
* Use 'paquete de inicio' and fix typos
---------
Co-authored-by: oledfish <88390729+oledfish@users.noreply.github.com>
* Remove legacy strings in FR localisation file
* Update French translations
* Fix typos and inconsistent French translations
* Get rid of a few 'Veuillez' in French locale to appear less formal
* Update catalan messages.po
back to 100%
Please have a look at it @jordimas @darccio @surfdude29 @rortan134
* Update catalan messages.po
aplying @jordimas corrections
* Update messages.po
* Reduce page size for request
* Remove refetch interval entirely
* Add comment
* Optimistically mark as read
* Drop default active poll interval to 60s from 5min
* Only optimistically update unread count if success
* Update Node.js to 20.x in Dockerfile
* Update Node.js types and engines entry to 20.x
* Update Node.js version in .nvmrc
* Use node version from .nvmrc in linting job
* Use Type Assertion for clearTimeout
* Inline useImageAspectRatio
* Switch AutoSizedImage to read dimensions from Expo Image cache
* Include thumbnail dimensions in image data
* Use dims from Expo Image cache in lightbox
* Fix wiring so all thumbnails get dimensions
* Fix type
* Oops
* Measure all rects for embeds
* Measure avi rects too
* Animate lightbox in and out
* Account for safe area in the animation
* Tune spring times
* Remove null checks for measurements
* Remove superfluous view
* Block swipe while opening
* Interpolate width/height on native side for Android
* Make it fast by animating only affine transforms
* Fix tall image final state
The initial animation frame is still off on both platforms.
* Try to squeeze perf
* Avoid blank images during animation on iOS
* Fix bad rebase
* Fix a huge memory issue due to expo/expo#24894
* Fix last frame flash
* Fix thum dim calculation for tall images
* move out avatarstack to own file
* improved settings switch
* prefix with @
* fix types
* up chevron
* respect reduced motion setting
* respect reduced motion in other place
* Preserve shape in lightbox
* Rename shapes to semantic meanings
It looks like after all I do want to fork based on those.
* Round avatars on the web
* Oops
* Make iOS scrollview bounded to the image
I've had to remove the dismiss handling because the scroll view no longer scrolls at rest.
* Fix double-tap not working right after a vertical swipe
It seems like for some reason the vertical swipe is still being handled by the scroll view, so double tap gets eaten while it's "coming back". But you don't really see it moving. Weird.
* Add an intermediate LightboxImage component
* Hoist useImageDimensions up
* Implement xplat dismiss gesture
This is now shared between platforms, letting us animate the backdrop and add a consistent "fly away" behavior.
* Optimize Android compositing perf
* Fix supertall images
For example, https://bsky.app/profile/schlagteslinks.bsky.social/post/3l7y4l6yur72e
* Fix oopsie
* Assign an ID to lightbox and use it as a key
* Consolidate lightbox props into an object
* Remove unused prop
* Move SafeAreaView declaration
* Keep SafeAreaView always mounted
When exploring Android animation, I noticed its content jumps on the first frame. I think this should help prevent that.
* Pass safe area down for measurement
* Remove dependency on SCREEN in Android event handlers
* Remove dependency on SCREEN in iOS event handlers
* Remove dependency on SCREEN on iOS
* Remove dependency on SCREEN on Android
* Remove dependency on JS calc in controls
* Use flex for iOS layout
* Remove useless memo
* Use explicit values when useImageAspectRatio doesn't know
It's not very good that you can't distingiush when we haven't loaded vs when we're certain. This shifts the burden of dealing with missing values to the caller.
* Check cache early
* Handle src change
* Rewrite image-sizes.fetch to avoid mixing async styles
* Make image-sizes LRU
Code is copy paste from useImageDimensions.ts
* Rm unused fields
* Derive aspect on the fly
* Factor useImageDimensions out of useImageAspectRatio
* Move useImageDimensions into image-sizes
* Make lightbox use the same cache
* Wire up known dimensions to the lightbox
* Handle division by zero in the hook
* Use safe aspect for lightbox calculations
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.