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