* 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.
* 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
* 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
* 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>