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