* Move video state into composer state
* Represent video as embed
This is slightly broken. In particular, we can't remove video yet because there's no action that results in video embed being removed.
* Properly represent video as embed
This aligns the video state lifetime with the embed lifetime. Video can now be properly added and removed.
* Disable Add Video when we have images
* Ignore empty image pick
* Remove unused video field
* Stop exposing video dispatch
* Move cancellation out of the reducer
* Make useUploadStatusQuery controlled by jobId
* Rename SetStatus to SetProcessing
This action only has one callsite and it's always passing "processing".
* Move jobId into video reducer state
* Make cancellation scoped
* Inline useCompressVideoMutation
* Move processVideo down the file
* Extract getErrorMessage
* useServiceAuthToken -> getServiceAuthToken
* useVideoAgent -> createVideoAgent
* useVideoUploadLimits -> getVideoUploadLimits
* useUploadVideoMutation -> uploadVideo
* Use async/await in processVideo
* Inline onVideoCompressed into processVideo
* Use async/await for uploadVideo
* Factor out error messages
* Guard dispatch with signal
This lets us remove the scattered signal checks around dispatch.
* Move job polling out of RQ
* Handle poll failures
* Remove unnecessary guards
* Slightly more accurate condition
* Move initVideoUri handling out of the hook
* Remove dead argument
It wasn't being used before either.
* Remove unused detailed status
This isn't being used because we're only respecting that state variable when isProcessing=true, but isProcessing is always false during video upload.
If we want to re-add this later, it should really just be derived from the reducer state.
* Harden the video reducer
* Tie all spawned work to a signal
* Preserve asset/media for nicer error state
* Rename actions to match states
* Inline useUploadVideo
This abstraction is getting in the way of some future work.
* Move MIME check to the only place that handles it
* add to dropdown menu
* use normal profile mutation hook
* add pin as reason
* request pins
* shadow update
* rm logs
* get prev pinned from getProfile
* fix toasts
* invalidate after appview ready
* don't mutate params
* rm log
* use checkCommited rather than manual whenAppViewReady
* move to mutation
* even more optimistic optimistic update
* allow pins in `posts_and_author_threads`
* update @atproto/api
* add reasonPin type
* fix strange type error in unrelated query
* another missing type
* grow banner when overscrolling
* add blurview
* make backdrop blur as it scrolls
* add activity indicator
* use rotated spinner instead of arrow
* persist position of back button
* make back button prettier
* make blur less jarring
* Unify effects
* Tweak impl
* determine if should animate based on scroll amount
* sign comment
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Set up additional mod authorities
* Filter out non-configurable mod authorities
* WIP
* Working
* Cleanup, add mod
* Cleanup
* Add more debug logs
* Tweak logs
* Filter out imperative labels from typeaheads
* Filter hideable content from notifications
* Add api
* Fall back in dev
* Remove space
* Use prod endpoint
* Add tiny notice
* Add notice to labeler card, show all labelers
* Add fontScale, gate it, fix some computes
* Add inter, integrate
* Clean up
* Apply to old Text component
* Use numeric weight
* Cleanup
* Clean up appearance settings
* Global tracking
* Fix regular italic variant
* Refactor settings and fontScale values
* Remove flags
* Get rid of lower weight font usage
* Remove gate from settings
* Refactor appearance settings for reuse
* Add neue type nux
* Update defaults
* Load fonts, add fallback families
* Load fonts via plugin in production
* Fixes
* Fix for web
* Nits
---------
Co-authored-by: Hailey <me@haileyok.com>
* DRY up video service auth code
* throw error if over upload limits
* use token
* xmark on toast
* errors with nice translatable error messages
* Update src/state/queries/video/video.ts
---------
Co-authored-by: Hailey <me@haileyok.com>
* tweak
* error state for upload toolbar
* catch errors in upload status query
* stop query on error
---------
Co-authored-by: Hailey <me@haileyok.com>
* video settings modal in composer
* show done button on web
* rm download options
* fix logic for showing settings button
* add language picker (wip)
* subtitle list with language select
* send captions & alt text with video when posting
* style "ensure you have selected a language" text
* include aspect ratio with video
* filter out captions where the lang is not set
* rm log
* fix label and add hint
* minor scrubber fix
* 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 1f1887730a.
* 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