* overflow posts, via contentHider
* margin->padding for a bit more leeway
* overflow notifications
* overflow on header
* revert from contenthider, put on text in all places
* fix zalgo text in handle in composer
---------
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>
* set height to 20+(2*hairline)
* animate switch
* Try to align on line height across platforms
* Use border 1px
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* 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
* use a scale of `1` on QR code inner logo
* remove logo entirely
* Revert "remove logo entirely"
This reverts commit dee57f48c7bf5e3b5765631b8cbbd1c746e9c884.
* use scale of 0.95
* Use user action and viewing history to inform suggested follows
* Remove dynamic spreads
* Track more info about seen posts
* Add ranking
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* 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>
* 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
* New label pills
* Fix type errors, add default case
* Remove negative margin, only works in some places
* Fix alignment edge case
* Add a bit of padding
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Extract ListCard from FeedCard
* Export FeedCard.Action and optionally include in ListCard
* Remove list dual usage from most of FeedCard
* Update usages of FeedCard and ListCard
* Add back list purpose logic
* Make Action comp easier to use, clarify list purpose
* Rename Action to SaveButton
* Break up new profile card for easier re-use
* Break things up a bit more
* Add round variant support and other button props
* Handle blocks
* Add Outer export
* Tweak space