about summary refs log tree commit diff
path: root/src/view/com/util/post-embeds
Commit message (Collapse)AuthorAgeFilesLines
...
* [Video] Lexicon implementation (#4881)Samuel Newman2024-08-295-64/+146
| | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* [Video] 🫧 Move logic around by platform (#5003)Hailey2024-08-287-93/+75
|
* add indicator of time remaining (#5000)Samuel Newman2024-08-273-35/+58
|
* [Video] add scrubber to the web player (#4943)Samuel Newman2024-08-261-112/+380
|
* Use moderatePost_wrapped for post embeds (#4981)Eric Bailey2024-08-231-2/+2
| | | | | * Use moderatePost_wrapped * Add lint rule
* Detached QPs and hidden replies (#4878)Eric Bailey2024-08-211-0/+18
| | | | Co-authored-by: Hailey <me@haileyok.com>
* Add `list hidden` screen (#4958)Hailey2024-08-202-35/+13
| | | | | Co-authored-by: Hailey <me@haileyok.com> Co-authored-by: Eric Bailey <git@esb.lol>
* swap control files (#4936)Samuel Newman2024-08-144-592/+579
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Video] set audio category to ambient every time a new player is made (#4934)Samuel Newman2024-08-142-0/+10
| | | | | | | | | | | | * 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>
* [Video] Try/catch video play/pause (#4930)Samuel Newman2024-08-132-7/+21
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Video] Fix crash when switching tabs (#4925)Hailey2024-08-121-19/+4
|
* [Video] Invert usage of `setAudioActive` (#4924)Hailey2024-08-121-2/+2
|
* [Video] Resume background audio whenever muting video audio (#4915)Hailey2024-08-091-3/+3
|
* [Videos] Add error boundary to native (#4914)Samuel Newman2024-08-103-64/+116
| | | | | | | | | * move error fallback to own component * use error boundary on native --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Videos] handle app backgrounding (#4912)Samuel Newman2024-08-091-7/+36
| | | | | | | | | | | | | * 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>
* animate controls + fade out time after a while (#4913)Samuel Newman2024-08-091-28/+40
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Video] More tweaks to `AVAudioSession` options (#4910)Hailey2024-08-091-6/+15
|
* [Video] Prevent pausing of background audio with `expo-video` on iOS (#4908)Hailey2024-08-091-2/+14
| | | | | | | | | | | | | | | | | * audio mixing pref * lint * patch expo video to add enter/exit fullscreen events * rm logs * fix audio problems * toggle mute when enter/exiting fullscreen --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Video] more minor tweaks (#4906)Samuel Newman2024-08-091-9/+67
| | | | | | | | | | | | | * 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>
* [Video] Bundle of minor tweaks (#4904)Samuel Newman2024-08-092-26/+30
| | | | | | | | | | | | | * 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>
* [Video] Visibility detection view (#4741)Hailey2024-08-079-175/+143
| | | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Videos] Video player - PR #2 - better web support (#4732)Samuel Newman2024-08-078-61/+969
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Respect labels on feeds and lists (#4818)Eric Bailey2024-08-021-12/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Replace `import hairlineWidth =` with const (#4831)Samuel Newman2024-07-252-7/+5
| | | | | | | | | * replace import with const * just use `StyleSheet.hairlineWidth` --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Videos] Video player - PR #1 - basic player (#4731)Samuel Newman2024-07-256-0/+332
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Fix alt text for GIFs (#4766)Hailey2024-07-101-2/+11
| | | | | * fix alt text dialog for gifs * only apply to native
* tweak top padding external (#4755)Hailey2024-07-091-4/+8
|
* Ensure `/start` navigates to `/starter-pack` when clicking a link internally ↵Hailey2024-07-071-29/+27
| | | | | | | (#4745) * remove temporary metadata removal * ensure proper navigation
* Video compression in composer (#4638)Samuel Newman2024-07-051-1/+1
| | | | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com> Co-authored-by: Hailey <me@haileyok.com>
* Add starter pack embeds to posts (#4699)Hailey2024-07-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | * starter pack embeds * revert test code * Types * add `BaseLink` * precache on click * rm log * add a comment * loading state * top margin --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* change maxWidth -> width to fix GIFs in DMs (#4717)Samuel Newman2024-07-031-5/+2
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Better starterpack embed (#4659)Hailey2024-06-261-29/+47
|
* Option for large alt badges (#4571)Samuel Newman2024-06-202-9/+12
| | | | | | | | | | | | | * add pref for large alt badge * add to settings * do the large badge bit * Tweak wording --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Feed source card (#4512)Eric Bailey2024-06-141-1/+1
| | | | | | | | | | | | | | | * Pass event through click handlers * Add FeedCard, use in Feeds screen * Tweak space * Don't contrain rt height * Tweak space * Fix type errors, don't pass event to fns that don't expect it * Show unresolved RT prior to facet resolution
* Fix: visually indicate when quoted content is labeled (#4369)Paul Frazee2024-06-051-2/+4
|
* allow nested quotes in DMs (#4345)Samuel Newman2024-06-042-28/+26
|
* [🐴] Record message (#4230)Samuel Newman2024-05-312-9/+27
| | | | | | | | | | | | | | | | | | | | | | | * send record via link in text * re-trim text after removing link * record message * only show copy text if message + add translate * reduce padding * adjust padding * Tweak spacing * Stop clickthrough for hidden content * Update bg to show labels --------- Co-authored-by: Eric Bailey <git@esb.lol>
* Change many border widths from `1` to `hairlineWidth` (#4294)Hailey2024-05-312-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feed items * update some more * moar * profile card * composer and notifications * settings screen * remove border from first item in feeds * remove border from first item in feeds * more removal of top border * fix flatlist rendering * oops * scroll to top fab * a.border * centeredview/list * placeholder * web sidebar * search posts * feeds list * user lists * list header * account list width 1 * hide top border feedgens * same for lists * fix tab bar web desktop * wait... * show the border on desktop web * fix lists * fix lists * round
* Alt text followups -- SLIGHTLY larger, and update gifs (#4252)Paul Frazee2024-05-292-7/+7
| | | | | * Bump up the alt text indicator's text size just a smidge * Update the GIF alt indicator to match images (right side, visually smaller on mobile)
* Move ALT indicator right and shrink it a bit (#4213)Paul Frazee2024-05-241-2/+2
|
* [GIFs] Restore default alt text (#3893)Samuel Newman2024-05-071-4/+8
| | | | | | | | | | | | | | | | | | | | | | | * restore default alt text * factor out gif alt logic + enable require alt text setting * rm console.log * don't prefill input + esc handling * typo * Nits * shorten user alt prefix * Remove unnecessary condition, rename for clarity * Add comment --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Implement FeedFeedback API (#3498)Paul Frazee2024-05-073-7/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement onViewableItemsChanged on List.web.tsx * Introduce onItemSeen to List API * Add FeedFeedback tracker * Add clickthrough interaction tracking * Add engagement interaction tracking * Reduce duplicate sends, introduce a flushAndReset to be triggered on refreshes, and modify the api design a bit * Wire up SDK types and feedContext * Avoid needless function allocations * Fix schema usage * Add show more / show less buttons * Fix minor rendering issue on mobile menu * Wire up sendInteractions() * Fix logic error * Fix: it's item not uri * Update 'seen' to mean 3 seconds on-screen with some significant portion visible * Fix non-reactive debounce * Move methods out * Use a WeakSet for deduping * Reset timeout * 3 -> 2 seconds * Oopsie * Throttle instead * Fix divider * Remove explicit flush calls * Rm unused --------- Co-authored-by: dan <dan.abramov@gmail.com>
* make gif alt text prompt selectable (#3879)Samuel Newman2024-05-061-1/+1
|
* Alt text for gifs (#3876)Samuel Newman2024-05-062-5/+74
| | | | | | | | | | | | | | | | | | | | | * add alt text dialog * multiline alt text input * add pressable alt text badge * rename `ALT: ` to `Alt text: ` to avoid including old bad ones * reuse alt text reminder * reuse alt text reminder in gallery * add alt text reminder in the dialog itself * autofocus text input * reorder components to fix tab order * fix close btn position
* Performance improvements: structural sharing & moderation opts context (#3785)Paul Frazee2024-04-301-1/+1
| | | | | | | | | | | | | * Fix: correctly apply structural sharing to preferences object * Move moderation opts into a context * Fix import * Remove log * Pass userdid directly * Pass moderationPrefs directly
* remove precacheThreadPostProfiles (#3729)Hailey2024-04-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * remove `precacheThreadPostProfiles` * add `displayName` to `PreviewableUserAvatar` * memo * use `precacheProfile` * pass `profile` directly to `PreviewableUserAvatar` * update the `UserAvatar`'s props * remove feed cache * one more spot * rm unused queryClient * Don't call fn unnecessarily * Preload for display name too * try notification item * add to feeditem * and finally, precache for post threads * timestamp * Fix * onBeforePress --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add option to remove quoted post in composer (#3670)Samuel Newman2024-04-241-2/+39
| | | | | * add option to remove quoted post * add generous hitslop
* Add border radius to GIF loading state (#3669)Samuel Newman2024-04-231-0/+1
|
* GIF Viewer (#3605)Hailey2024-04-233-99/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ios player autoplay after recycle remove all items from AVPlayer queue recurururururursion use managers in the view add prefetch make sure player items stay in order add controller and item managers start of the view create module, ios * android player smoother basic caching prep cache somewhat works backup other files android impl blegh lets go touchup add prefetch to js use caching * bogus testing commit * add dims to type * save * add the dimensions to the embed info * add a new case * add a new case * limit this case to giphy * use gate * Revert "bogus testing commit" This reverts commit b3c8751b71f7108de9aa843b22ded4e0249fa854. * add web player base * flip mp4/webp * basic mp4 player for web * move some stuff into `ExternalLinkEmbed` instead * use a class component for web * remove extra component * add `onPlayerStateChange` event type on web * layer properly * fix tests * add new test * about ready. native portions done, a few touch ups on web needed show placeholder on ios fix type rm log display thumbnail until video is ready to play add oncanplay, playsinline remove unused method add `isLoaded` change event release player when finished apply gc to the view cleanup logs android gc rm log automatic gc for assets make `nativeRef` private remove unnecessary `await` cleanup rev log only play on prepare whenever needed rm unused perfperfperf rm var comment + android width native height calculations rm pressable add event dispatcher on android add event dispatcher on ios * ready to test ios fix autoplay ios clean oops * autoplay on web * normalize across all platforms add check for `ALT:` separate gif embed logic to another file handle permissions requests flatten web styles normalize styles normalize styles prefetch functions pause animatable on foreground android nits one more oops idk where that code went lint rethink the usage wrap up android clear bg update gradle more android rename dir update android namespace web ios add deps use webp rm unused update types use webp on mobile * rm gate from types * remove unused event param * only start placeholder op if doesn't exist in disk cache * fix gifs animating on app resume android * remove comment * add `isLoaded` for ios * add `isLoaded` to Android * onload for web * add visual loading state * rm a log * implement isloaded for android * dialogs * replace `webpSource` with `source` * update prop name * Move to Tenor for GIFs (#3654) * update some urls * right order for dimensions * add GIF coder for ios * remove giphy check * rewrite tenor urls * remove all the unnecessary stuff for consent * rm print * rm log * check if id and filename are strings * full size playback controls * pass tests * add accessibility to gifs * use `onPlay` and `onPause` * rm unused logic for description * add accessibility label to the controls * add gif into to external embed in composer * make it optional * gif dimensions * make the jsx look nicer --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com> Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Player improvement pre-reqs (#3618)Hailey2024-04-191-18/+29
| | | | | | | | | | | | | | | | | | | | | * add dims to type * save * add the dimensions to the embed info * add a new case * add a new case * limit this case to giphy * use gate * flip mp4/webp * fix tests * add new test