* Split minimal shell mode into headerMode and footerMode
For now, we'll always write them in sync. When we read them, we'll use headerMode as source of truth. This will let us keep footerMode independent in a future commit.
* Remove fixed_bottom_bar special cases during calculation
This isn't the right time to determine special behavior. Instead we'll adjust footerMode itself conditionally on the gate.
* Copy-paste setMode into MainScrollProvider
This lets us fork the implementation later just for this case.
* Gate footer adjustment in MainScrollProvider
This is the final piece. Normal calls to setMode() keep setting both header and footer, but MainScrollProvider adjusts the footer conditionally.
* show quote posts
* fix filter
* fix keyExtractor
* move likedby and repostedby to new file structure
* use modern list component
* remove relative imports
* update quotes count after quoting
* call `onPost` after updating quote count
* Revert "update quotes count after quoting"
This reverts commit 1f1887730a210c57c1e5a0eb0f47c42c42cf1b4b.
* implement
* update like count in quotes list
* only add `onPostReply` where needed
* Filter quotes with detached embeds
* Bump SDK
* Don't show error for no results
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* Fix orphaned feed slices, handle blocks
* Revert to filerting out orphan threads
* Support NotFoundPost views too
* Just kidding, use ReplyRef.root as source of grandparent data
* Fixes
* Rename logout to logoutEveryAccount
* Add logoutCurrentAccount()
* Make all "Log out" buttons refer to current account
Each of these usages is completely contextual and refers to a specific account.
* Add Sign out of all accounts to Settings
* Move single account Sign Out below as well
* Prompt on account removal
* Add Other Accounts header to reduce ambiguity
* Spacing fix
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* update @atproto/api
* add starter pack embed
* update depreciated BskyAgent to AtpAgent
* unrelated, but avoid direct import of type
* nits
* rm commented out code
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* set auto category to ambient every time a new player is made
* mute on foregrounding
* remember previous state
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
* Don't kick the user on network errors
* Track online status for RQ
* Use health endpoint
* Update test with new behavior
* Only poll while offline
* Handle races between the check and network events
* Reduce the poll kickoff interval
* Don't cache partially fetched pinned feeds
This isn't a new issue but it's more prominent with the offline handling. We're currently silently caching pinned infos that failed to fetch. This avoids showing a big spinner on failure but it also kills all feeds which is very confusing. If the request to get feed gens fails, let's fail the whole query.
Then it can be retried.
* move error fallback to own component
* use error boundary on native
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* play when returning from background
* play when unfullscreening
* play when entering fullscreen, just to be sure
* state -> ref
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>