about summary refs log tree commit diff
path: root/src/view/com
Commit message (Collapse)AuthorAgeFilesLines
...
* | make gif alt text prompt selectable (#3879)Samuel Newman2024-05-061-1/+1
| |
* | A few `containWeb` List nits (#3877)Hailey2024-05-061-22/+52
| | | | | | | | | | | | | | | | | | * use getters for returned values * pass ref * add log to `onScroll` in tester * improve expect error
* | remove `hide_vertical_scrollbars` test (#3855)Hailey2024-05-062-15/+1
| |
* | show spinner when preferences has not loaded yet (#3756)Hailey2024-05-061-3/+3
| |
* | Alt text for gifs (#3876)Samuel Newman2024-05-067-44/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* | [🐴] Finalize web message screen (#3868)Hailey2024-05-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add `onStartReached` to web list * fix `rootMargin` * Add `contain`, handle scroll events * improve types, fix typo * simplify * adjust `scrollToTop` and `scrollToOffset` to support `contain`, add `scrollToEnd` * rename `handleWindowScroll` to `handleScroll` * support basic `maintainVisibleContentPosition` * rename `contain` to `containWeb` * remove unnecessary `flex: 1` * add missing props * add root prop to `Visibility` * add root prop to `Visibility` * revert adding `maintainVisibleContentPosition` * remove unnecessary wrapper * add style * oops * maintain position for web * always apply `flex: 1` to styles when contained * add a contained list to storybook * make `onScroll` a worklet in storybook * revert test code * remove unnecessary `flex: 1`
* | Further align web `List` with `FlatList`, add `contain` mode to web list ↵Hailey2024-05-062-21/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementation (#3867) * add `onStartReached` to web list * fix `rootMargin` * Add `contain`, handle scroll events * improve types, fix typo * simplify * adjust `scrollToTop` and `scrollToOffset` to support `contain`, add `scrollToEnd` * rename `handleWindowScroll` to `handleScroll` * support basic `maintainVisibleContentPosition` * rename `contain` to `containWeb` * remove unnecessary `flex: 1` * add missing props * add root prop to `Visibility` * add root prop to `Visibility` * revert adding `maintainVisibleContentPosition` * oops * always apply `flex: 1` to styles when contained * add a contained list to storybook * make `onScroll` a worklet in storybook * revert test code * add scrolling to storybook * simplify getting scrollable node * nit: extra whitespace * nit: random comment * foolproof the logic * typecheck
* | Fix `IntersectionObserver` `rootMargin` in web `List` implementation, add ↵Hailey2024-05-051-8/+30
| | | | | | | | | | | | | | `onStartReached` (#3866) * add `onStartReached` to web list * fix `rootMargin`
* | Assorted clipclop fixes (#3853)Samuel Newman2024-05-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * empty state for new chat dialog * use terniary * dark mode pending state * copy message text option * fix service url input (scrollview ftw) * whoops, fix equality * slightly reduce horizontal message padding
* | Add kawaii mode (#3773)Samuel Newman2024-05-012-6/+21
| |
* | Performance improvements: structural sharing & moderation opts context (#3785)Paul Frazee2024-04-307-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | * Fix: correctly apply structural sharing to preferences object * Move moderation opts into a context * Fix import * Remove log * Pass userdid directly * Pass moderationPrefs directly
* | [Clipclops] Add clop sent time to clipclop (#3772)Samuel Newman2024-04-301-2/+6
| | | | | | | | | | * add message sent time to message * fix last message in group logic
* | Fix List onMomentumScrollEnd (#3759)dan2024-04-292-33/+43
| |
* | Remove useEffect from TimeElapsed (#3741)dan2024-04-281-4/+4
| |
* | Fix dropdown immediately closing on Enter (#3745)dan2024-04-281-63/+87
| | | | | | | | | | | | | | * Move dropdown content into separate component * Fix dropdown with keyboard * No-op is sufficient
* | Account for momentum when hiding minimal shell (#3740)dan2024-04-282-13/+51
| | | | | | | | | | | | | | | | | | * Add optional momentum events to scroll context * If there is a velocity, don't snap until momentum end * Don't show bar on scroll down * Rm onMomentumBegin
* | Reduce hovercard false positives, add them to display names and handles (#3739)dan2024-04-281-31/+34
|/ | | | | | | * Don't trigger hovercards on scroll * Add display name / handle hovercards * Increase hovercard delay
* remove precacheThreadPostProfiles (#3729)Hailey2024-04-2712-93/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* [Session] Add `useAgent` hook and replace (#3706)Eric Bailey2024-04-259-43/+57
| | | | | | | | | | | * Hook it up * Memoize getAgent method * Use one shared reference --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* remove use of `pointerEvents` on iOS profile header (#3694)Hailey2024-04-251-10/+15
|
* Rewrite the link detection (#3687)dan2024-04-243-87/+110
| | | | | * Rewrite the link detection * Handle parens and colons
* Remove unnecessary `.trimEnd()` and fix facet detection (#3672)Hailey2024-04-242-12/+23
| | | | | | | | | | | | | | | * Fix link facet detection Exclude the trailing period from the link, similar as done in the atproto package * Fix JSON to text conversion The trimEnd() call was only needed because we were always appending \n\n at the end. Fix that by only adding line breaks after non-final paragraphs. * Detect paste reliably --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Remove old old onboarding (#3674)Eric Bailey2024-04-238-1180/+0
|
* Add option to remove quoted post in composer (#3670)Samuel Newman2024-04-242-5/+47
| | | | | * add option to remove quoted post * add generous hitslop
* Add border radius to GIF loading state (#3669)Samuel Newman2024-04-231-0/+1
|
* Email auth factor (#3602)Paul Frazee2024-04-221-14/+22
| | | | | | | | | | | | | | | * Add email 2fa toggle * Add UI elements needed for 2fa codes in login * Wire up to the server * Give a better failure message for bad 2fa code * Handle enter key in login form 2fa field * Trim spaces * Improve error message
* GIF Viewer (#3605)Hailey2024-04-235-125/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* [GIFs] Replace GIPHY with Tenor (#3651)Samuel Newman2024-04-222-9/+10
| | | | | | | | | * replace GIPHY with Tenor * remove "directly" wording * replace GIPHY wording * remove log
* [GIFs] Add error boundary to GIF picker (#3643)Samuel Newman2024-04-221-3/+9
| | | | | | | | | | | | | * error boundary on gif picker * add dialog.close for web users * fix size of dialog on web * Safer coercion --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Revert "Add layout transitions to the composer photo gallery on iOS (#3609)" ↵Samuel Newman2024-04-222-27/+10
| | | | | (#3649) This reverts commit 1a5b8b2c94ce1e66bff7e7295b799ae5b0613988.
* remove unnecessary padding from the right hand side of the post in threaded ↵Hailey2024-04-221-1/+0
| | | | (#3645)
* Top/Latest for hashtags (#3625)dan2024-04-191-13/+38
| | | | | | | * Split HashtagScreen into two components * Hashtag tabs * Visual fixes
* 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
* [Statsig] Update experiments (#3617)dan2024-04-192-15/+9
|
* align center post meta in threaded (#3615)Hailey2024-04-192-3/+11
| | | | | | | | | * align center post meta in threaded * put `displayNameStyle` in correct place * maybe? * with mobile padding too?
* add dimensions to data (#3616)Hailey2024-04-181-1/+1
| | | | | | | | | * add dimensions to data * keep alt text * put it in the right url * just send the original height and width instead
* Add GIF select to composer (#3600)Samuel Newman2024-04-194-88/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * create dialog with flatlist in it * use alf for composer photos/camera/gif buttons * add gif icons * focus textinput on gif dialog close * add giphy API + gif grid * web support * add consent confirmation * track gif select * desktop web consent styles * use InlineLinkText instead of Link * add error/loading state * hide sideborders on web * disable composer buttons where necessary * skip cardyb and set thumbnail directly * switch legacy analytics to statsig * remove autoplay prop * disable photo/gif buttons if external media is present * memoize listmaybeplaceholder * fix pagination * don't set `value` of TextInput, clear via ref * remove console.log * close modal if press escape * pass alt text in the description * Fix typo * Rm dialog --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add layout transitions to the composer photo gallery on iOS (#3609)Samuel Newman2024-04-182-10/+27
| | | | | | | | | * add layoutanimation + transition to images * make iOS-only * use useLayoutEffect * make iOS only (again)
* [Statsig] Make gate checks lazily (#3594)dan2024-04-184-12/+13
|
* don't underline handle in post meta (#3591)Hailey2024-04-182-31/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alignment remove the unnecessary styles now seriously? flex-end everything flex shrink test test rm unneeded flex flex the text don't underline handle in post meta * use `paddingLeft` * use `paddingLeft` but with `4` * Fix overflow color * Use nbsp to make mobile work --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add hovercards to "Reply To" (#3587)dan2024-04-162-12/+17
| | | | | * Add hovercard for Reply To * Tweak durations
* Automatically add a link card for URLs in the composer (#3566)Hailey2024-04-164-79/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * automatically add a link card for urls in the composer simplify was paste check use a set simplify the cross platform reuse web implementation remove log pasting in the middle of a block of text proper regex dont re-add immediately after paste and remove don't use `byteIndex` lfg automatically add link card * `mayBePaste` * remove accidentally pasted url from comment
* Use the existing `ExternalLinkEmbed` for embed previews in the composer (#3579)Hailey2024-04-161-85/+63
| | | | | * use existing `ExternalLinkEmbed` for showing previews * cleanup
* Allow a post to contain only a quote (#3577)Hailey2024-04-161-1/+6
| | | | | * allow posts with only a quote * bump version while we're at it
* Hide translate/copy text options when `!no-unauthenticated` (#3573)Samuel Newman2024-04-161-17/+21
| | | | | | | | | * hide translate/copy text options when no-pwi * only do this for no-unauth * always show if logged in * swap order of OR
* Cache DID and profile basic on profile card presses (#3523)Hailey2024-04-131-2/+14
| | | | | | | | | | | * cache profiles add onPress back rm log cache profile and did when pressing profile card * minimal diff
* Remove extra wrapper on notification user links (#3548)Hailey2024-04-131-24/+23
|
* Profile hovers (#3518)Eric Bailey2024-04-132-38/+47
| | | | | | | | | * Add hover card for mentions * Reposted by * Fix key * Add to composer reply to
* [Embeds] "Embed post" post dropdown option (#3513)Samuel Newman2024-04-132-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | * add embed option to post dropdown menu * put embed post button behind a gate * increase line height in dialog * add gate to gate name union * hide embed button if PWI optout * Ungate embed button * Escape HTML, align implementations * Make dialog conditionally rendered * Memoize EmbedDialog * Render dialog lazily --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* cache fix for search post results (#3520)Hailey2024-04-121-21/+32
|