* Limit height of images within posts
* Add some future-proofness
* Comments, improve a11y
* Adjust ALT, add crop icon
* Fix disableCrop in record-with-media posts
* Clean up aspect ratios, handle very tall images
* Handle record-with-media separately, clarify intent using enums
* Adjust spacing
* Adjust rwm embed image size on mobile
* Only do reduced layout if images embed
* Adjust gap in small embed variant
* Clean up grid layout
* Hide badge on small variant with one image
* Remove crop icon from image grid, leave on single image
* Fix sizing in Firefox
* Fix fullBleed variant
* 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
* implement AppBskyEmbedVideo lexicon in player
* add alt to native player
* add prerelease package
* update prerelease
* add video embed view manually from record
* fix type error on example video
* black bg + use aspect ratio on web
* add video to feeds
* fix video overflowing aspect ratio
* remove prerelease package
---------
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>
* 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>
* update expo-video
* pause when on a different screen
* rm collapsable
* add mute/unmute button
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* fix bg color
* unique video urls for debug
* improve controls slightly
* mute until fullscreen
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* attempt some sort of "usurping" system
* polling-based active video approach
* split into inner component again
* click to steal active video
* disable findAndActivateVideo on native
* new intersectionobserver approach - wip
* fix types
* disable perf optimisation to allow overflow
* make active player indicator subtler, clean up video utils
* partially fix double-playing
* start working on controls
* fullscreen API
* get buttons working somewhat
* rm source from where it shouldn't be
* use video elem as source of truth
* fix keyboard nav + mute state
* new icons, add fullscreen + time + fix play
* unmount when far offscreen + round 2dp
* listen globally to clicks rather than blur event
* move controls to new file
* reduce quality when not active
* add hover state to buttons
* stop propagation of videoplayer click
* move around autoplay effects
* increase background contrast
* add subtitles button
* add stopPropagation to root of video player
* clean up VideoWebControls
* fix chrome
* change quality based on focused state
* use autoLevelCapping instead of nextLevel
* get subtitle track from stream
* always use hlsjs
* rework hls into a ref
* render player earlier, allowing preload
* add error boundary
* clean up component structure and organisation
* rework fullscreen API
* disable fullscreen on iPhone
* don't play when ready on pause
* debounce buffering
* simplify giant list of event listeners
* update pref
* reduce prop drilling
* minimise rerenders in `ActiveViewContext`
* restore prop drilling
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
* Prep
* Pass in optional moderation to FeedCard
* Compute moderation decision, filter contentList contexts, pass into card
* Let's go a different route
* Filter from within search queries
* Use same search query for starter packs
* Filter lists from profile tabs
* Cleanup
* Filter from profile feeds
* Moderate post embeds
* Memoize
* Use ScreenHider on lists
* Hide both list types
* Fix crash on iOS in screen hider, fix lineheight
* Memoize renderItem
* Reuse objects to prevent re-renders
* add ffmpeg-kit-react-native
* get select video button + compression working
* up res to 1080p
* add progress component
* move logic out of compressVideo
* (WIP) add lonestar compression
* rework web compression a bit
* mess around with adding a thumbnail
* 3mbps
* replace
* use 3mbps
* add expo-video
* remove unnecessary try/catch
* rm ToastAndroid
* fix web
* wrap lazy component in suspense
* gate video select button
* rm web compression
* flip sign
* remove expo-video from web
* review nits
* add video picker permissions + rm temp buttons
* add ffmpeg-kit-react-native
* replace
* hls-capable player
* start trying to hoist up video player instance
* hoist video player and move things around
* always show native controls
* fix controls on expo video android
* gate temp video player in feed
* rm IS_DEV, doesn't do what I thought it did
* use __DEV__ instead
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>