* Don't reconstruct threads from separate posts
* Remove post-level dedupe for now
* Change repost dedupe condition to look just at length
* Delete unused isThread
* Delete another isThread field
It is now meaningless because there's nothing special about author threads.
* Narrow down slice item shape so it does not need reply
* Consolidate slice validation criteria in one place
* Show replies in context
* Make fallback marker work
* Remove misleading and now-unused property
It was called rootUri but it was actually the leaf URI. Regardless, it's not used anymore.
* Add by-thread dedupe to non-author feeds
* Add post-level dedupe
* Always count from the start
This is easier to think about.
* Only tuner state need to be untouched on dry run
* Account for threads in reply filtering
* Remove repost deduping
This is already being taken care of by item-level deduping. It's also now wrong and removing too much (since it wasn't filtering for reposts directly).
* Calculate rootUri correctly
* Apply Following settings to all lists
* Don't dedupe intentional reposts by thread
* Show reply parent when ambiguous
* Explicitly remove orphaned replies from following/lists
* Fix thread dedupe to work across pages
* Mark grandparent-blocked as orphaned
* Guard tuner state change by dryRun
* Remove dead code
* Don't dedupe feedgen threads
* Revert "Apply Following settings to all lists"
This reverts commit aff86be6d37b60cc5d0ac38f22c31a4808342cf4.
Let's not do this yet and have a bit more discussion. This is a chunky change already.
* Reason belongs to a slice, not item
* Logically feedContext belongs to the slice
* Update comment to reflect latest behavior
* state for video uploads
* get upload working
* add a debug log
* add post progress
* progress
* fetch data
* add some progress info, web uploads
* post on finished uploading (wip)
* add a note
* add some todos
* clear video
* merge some stuff
* convert to `createUploadTask`
* patch expo modules core
* working native upload progress
* platform fork
* upload progress for web
* cleanup
* cleanup
* more tweaks
* simplify
* fix type errors
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Copy FeedViewPost into FeedSliceItem
* Explicitly construct feed slice items by copying known fields
* Type rootItem as FeedViewPost for now
Mergefeed logic relies on that.
* Unify reason and __source for slice items
* Move feedContext out of FeedSliceItem
* Remove slice.isFlattenedReply
* Remove unnused slice.ts
* Inline slice.isFullThread
* Refactor condition for clarity
* Extract slice.includesThreadRoot
* Encapsulate more usages of slice.rootItem into slice
* Rename slice.rootItem so semi-private slice._feedPost
* Move reason into slice
* Simplify slice ctor argument
* Reorder getters to reduce diff
* Make feedContext a getter to reduce diff
* use appropriate icons for toasts
* use info for session expiry
* tweak size
* message -> safeMessage
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* replace unused `followers` prop with social proof
* Introduce 'minimal' version
* Gate social proof one explore page, fix space if no desc
* Use smaller avis for minimal
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* header display name rtl support
* highlighted post rtl
* move `NON_BREAKING_SPACE` to an external constant
* rtl support in search dropdown
* profile card rtl
* old profile card rtl
* hover card
* wizard list card
* new chat
* account card
* chat header
* clean up notifications
* just force LTR on meta display name
* Add the animated checkmark svg
* Add progress guide list and task components
* Add ProgressGuide Toast component
* Implement progress-guide controller
* Add 7 follows to the progress guide
* Wire up action captures
* Wire up progress-guide persistence
* Trigger progress guide on account creation
* Clear the progress guide from storage on complete
* Add progress guide interstitial, put behind gate
* Fix: read progress guide state from prefs
* Some defensive type checks
* Create separate toast for completion
* List tweaks
* Only show on Discover
* Spacing and progress tweaks
* Completely hide when complete
* Capture the progress guide in local state, and only render toasts while guide is active
* Fix: ensure persisted hydrates into local state
* Gate
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add home guided tour (WIP)
* Add web handling of the tour
* Switch to our fork of rn-tourguide
* Bump guided-tour
* Fix alignment on android
* Implement home page tour trigger after account creation
* Add new_user_guided_tour gate
* Add a title line to the tour tooltips
* A11y improvements: proper labels, focus capture, scroll capture
* Silence type error
* Native a11y
* Use FocusScope
* Switch to useWebBodyScrollLock()
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Use discriminated union
* Integrate interstitials
* Add gates and handling for variants
* Only show interstitials for logged in accounts since flags are based on user ID
* Nit
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add interstitials, component tweaks, placeholders
* Tweak feed card styles
* Port over same fix to ProfileCard
* Add browse more link on desktop
* Rm Gemfile
* Update logContext
* Update logContext
* Add click metric to cards
* Pass through props to ProfileCard.Link
* 2-up grid for profile cards on desktop web
* Add secondary_inverted button color
* Use inverted button color
* Adjust follow button layout
* Update skeleton
* Use round button
* Translate