Commit Graph

3361 Commits (d893fe005d9d43e28b2926f8fed4f13165843d3b)

Author SHA1 Message Date
Kisaragi Hiu d893fe005d
android: fix various places still using default Material Teal (#3555)
These places include TextInput cursor, TextInput selection, and the
spinner (ActivityIndicator) --- the default Material Teal is out of
place wherever it shows up.

This sets Expo's primaryColor to #1083fe, which is the color that
defaultTheme.palette.default.brandText resolves to, then applies it as
the native accent color via a plugin because Expo doesn't apply the
accent color.
2024-04-29 11:36:05 -07:00
Hailey 2feea51ae3
clear search on tab press (#3753)
* clear search on tab press

* don't need to call `onPressCancelSearch`
2024-04-29 17:32:20 +01:00
dan 5d715ae1d0
Improve search screen perf (#3752)
* Extract SearchHistory to a component

* Extract AutocompleteResults to a component

* Extract SearchInputBox to a component

* Add a bunch of memoization

* Optimize switching by rendering both

* Remove subdomain matching

This is only ever useful if you type it exactly correct. Search now does a better job anyway.

* Give recent search decent hitslops
2024-04-29 16:52:24 +01:00
dan 3c2d73909b
Remove layout animation from search (#3751) 2024-04-29 16:11:59 +01:00
Hailey 388c4f79cf
Increase search `TextInput` hit area and improve the related UI (#3748)
* improve hit area of search text input

use text cursor on web

use a pressable instead

use a vertical padding of 9

oops

move vertical padding to `TextInput` to increase hit area

* Hide it from a11y tree, change cursor

* Hide clear on empty text

* Render either Clear or Cancel

* Remove Clear button

* Animate it

* Better animation

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-29 05:12:20 +01:00
dan dfce190cb6
[iOS] Fix selecting search input on focus (#3746)
* Select search text on focus

* Scope to iOS only
2024-04-28 22:52:40 +01:00
dan 361d255e95
Remove useEffect from TimeElapsed (#3741) 2024-04-28 22:37:00 +01:00
dan 256bb33de0
Remove test gating code (#3742) 2024-04-28 22:36:50 +01:00
dan 2a08931127
Fix dropdown immediately closing on Enter (#3745)
* Move dropdown content into separate component

* Fix dropdown with keyboard

* No-op is sufficient
2024-04-28 21:29:43 +01:00
dan 1dd3d6657c
Account for momentum when hiding minimal shell (#3740)
* 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
2024-04-28 17:48:20 +01:00
dan 3b4848ba59
Reduce hovercard false positives, add them to display names and handles (#3739)
* Don't trigger hovercards on scroll

* Add display name / handle hovercards

* Increase hovercard delay
2024-04-28 13:59:18 +01:00
Mary 74cd1d4458
YouTube Music as supported player (#3736) 2024-04-27 22:11:08 -07:00
dan 21e5a87fab
Patch lexicon for perf (#3733) 2024-04-27 07:54:47 +01:00
Hailey 61d7e6014b
ensure dialog is closed on unmount (#3650)
Revert "properly check if the ref is null"

This reverts commit 8f563808a5d39389b0bc47a31e73cd147d1e7e8b.

properly check if the ref is null

ensure dialog is closed on unmount
2024-04-27 07:42:49 +01:00
Hailey 7eb1444f2c
remove precacheThreadPostProfiles (#3729)
* 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>
2024-04-27 06:31:07 +01:00
Samuel Newman ce85375c85
[Clipclops] New routes with placeholder screens (#3725)
* add new routes with placeholder screens

* gate content

* add filled envelope style

* swap filled state

* switch to `useAgent`
2024-04-27 05:54:18 +01:00
Samuel Newman 1af59ca8a7
Special-case bsky.app/download to open share sheet or copy to clipboard (#3710)
* special-case bsky.app/download to share

* Address feedback

* Improve detection

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-27 05:25:28 +01:00
Hailey b10c96f28d
ver bump (#3731) 2024-04-27 04:38:51 +01:00
Hailey 5f9136479b
Improve usability of search on web (#3663)
* dont select the text on web

* TODO REVERT THESE CHANGES

* use `usethrottledvalue` for autocomplete

* use `isFetching` from query

* rm setTimeout

* getting there

* improve functionality of cancel button

* rm todo

* add comment back

* encode `searchText` rather than `queryTerm`

* use "back" on web in some cases

* don't flash results in autocomplete

* remove unnecesary usestate

* rename everything to `query` temporarily

* revert accidental lint

* rm todo

* rm comment

* use `useFocusEffect` to update the query term on back navigation

* `searchText` is always defined here

* Fix race

* remove back functionality

* use `keepPreviousData` for query

* rename `q` to `queryParam`

* remove hack

* remove `q=` on cancel

* blur on submit

* use `setParams` instead of `replace`

* use `replace` on web still

* clear the search input when we clear `q` on native

* onPress dismiss attempt

* Adjustments

* Fix search history

* Always hide autocomplete

* Clear right pane search on select

* `blur` on autosuggestion press

* Rename to reduce diff

* Fixes

* Unify codepaths

* Fixes

* precache the autosuggestion

* do the cache in the link card

* Revert "precache the autosuggestion"

This reverts commit 79c433e984621ba4231a2a4c4b3f4690b0516b4d.

* use `throttledValue` and `keepPreviousData` in sidebar search

* show spinner when fetching pt 1

* show spinner when fetching pt 2

* show spinner properly for autocomplete

* Fix extra border

* Position fixed

* TS

* Revert "TS"

This reverts commit df187ea2d7a96d0f1832bc2392215f4d969a87c9.

* Revert "Position fixed"

This reverts commit 9c721c952b0fa4e5e4a23de38cab916ab13397e6.

* Maybe fix iPad

* Revert "TODO REVERT THESE CHANGES"

This reverts commit 279f717f3091c9df8c73ba35f9a038e12f5a1122.

* Rename var

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-27 04:34:53 +01:00
bnewbold d81a373d21
embedr: handle out-of-range maxwidth; change default (#3713) 2024-04-25 17:23:45 -07:00
dan f2797218f8
Move Notifications up on desktop web (#3696) 2024-04-25 23:30:07 +01:00
Eric Bailey 45d354cd0c
[Session] Add `useAgent` hook and replace (#3706)
* Hook it up

* Memoize getAgent method

* Use one shared reference

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 22:29:05 +01:00
Eric Bailey d8c8e1e854
[Session] Drill `getAgent` into notifications handlers (#3705)
* Drill into notifications handlers

(cherry picked from commit 7ac9e500866732e1f2e205bbe96e70db331e5ffb)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:57:45 +01:00
Eric Bailey e5fdbfe294
[Session] Drill `getAgent` into `Onboarding/util` (#3704)
* Drill agent into Onboarding/util

(cherry picked from commit 2ba68eb5e446a694730b720f2a5b3307eb0914ef)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:53:27 +01:00
Eric Bailey 35005da59e
[Session] Drill `getAgent` into `notifications/utils` (#3703)
* Drill into notifications/util

(cherry picked from commit 84b535ed54f4fe93debcd198809bb184519c3507)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:48:01 +01:00
Eric Bailey a69e567991
[Session] Drill into `getAgent` into `whenAppViewReady` (#3702)
* Drill into whenAppViewReady

(cherry picked from commit e290e5be3df509bdd9d0e626a164996c9dee3636)

* Drill getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:39:28 +01:00
Eric Bailey ec37696034
[Session] Drill `getAgent` into feed APIs (#3701)
* Update to desired post-feed usage

* Drill agent into feed apis

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 21:29:06 +01:00
Kevin Scannell 282ad4b17d
Irish translation back to 100% (#3683) 2024-04-25 09:08:56 -07:00
Eric Bailey 6aded4f257
[Session] Base (#3541)
* Add readLastActiveAccount to use accounts[] as source of truth

* Add public service constant, use
2024-04-25 10:35:21 -05:00
Hailey 5b82b15007
remove use of `pointerEvents` on iOS profile header (#3694) 2024-04-25 01:24:20 +01:00
Hailey c3fcd486b3
Cleanup files after each iteration of compression and downloading (#3599)
* delete image on each iteration of compression

* replace a few other instances of `unlink()`

* ensure that moving to the permanent path will succeed

* use `cacheDirectory`

* missing file extension?

* assert

* Remove extra .

* Extract safeDeleteAsync, fix normalization

* Normalize everywhere

* Use safeDeleteAsync in more places

* Delete .bin too

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-25 01:12:36 +01:00
dan 90c3ec8749
Ignore image responses on non-200 status (#3693)
* Ignore image responses on non-200 status

* Fix tests
2024-04-24 23:16:11 +01:00
Mary 15055cb8c4
Persist PDS URL for session resumption (#3620)
* fix: store PDS URL for session resumption

* fix: handle a few more cases

* fix: blocking resumption should also use pds url

* refactor: do it in the construct itself

* fix: revert ce96223
2024-04-24 21:57:16 +01:00
dan 05212ca9e3
Remove Moderation from sidebar (#3692) 2024-04-24 21:37:16 +01:00
dan e2a59449df
Remove old Suggested Follows logic (#3689) 2024-04-24 17:45:11 +01:00
dan 8ec3d8c76e
Rewrite the link detection (#3687)
* Rewrite the link detection

* Handle parens and colons
2024-04-24 17:30:44 +01:00
Hailey b3df0b177f
Remove unnecessary `.trimEnd()` and fix facet detection (#3672)
* 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>
2024-04-24 15:10:29 +01:00
Eric Bailey 05beb1bbad
Remove old old onboarding (#3674) 2024-04-23 19:30:49 -05:00
dan 24da3a8f4e
Disable autoplay by default if prefers-reduced-motion (#3671) 2024-04-23 17:07:18 -07:00
Samuel Newman 0847e2752b
Add option to remove quoted post in composer (#3670)
* add option to remove quoted post

* add generous hitslop
2024-04-24 00:36:59 +01:00
Samuel Newman 9ebfa9a015
Add border radius to GIF loading state (#3669) 2024-04-23 23:56:23 +01:00
Hailey 76aef2d064
use mp4 over webm (#3666)
* use mp4 over webm

* tinymp4

* safari only
2024-04-23 23:55:01 +01:00
Paul Frazee 316fce6439
Release 1.79 (#3661)
* Update tests

* Intl exract
2024-04-23 11:26:50 -07:00
Takayuki KUSANO dc3f694a91
Update Japanese translation (#3656)
* Update Japanese translation

- GIPHY is replaced by Tenor
- Accessibility hint for long-pressing hashtags have been changed to follow

* Translated accessibility hints related to embedded GIFs

* Translate Email 2FA related messages.

* Updated Japanese transaltion

* More update

* Update
2024-04-23 10:55:03 -07:00
dan 096725110a
[Statsig] Add test gates and events (#3659)
* [Statsig] Add test gates and events

* Better types
2024-04-23 04:47:13 +01:00
Paul Frazee 30c2c05103
Quick fix to ensure disable 2fa dialog adjusts to keyboard (#3658) 2024-04-22 19:43:54 -07:00
Paul Frazee 710e913024
Email auth factor (#3602)
* 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
2024-04-22 19:18:13 -07:00
Hailey cbb817b5b7
GIF Viewer (#3605)
* 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>
2024-04-23 02:54:15 +01:00
dan fe9b3f0432
Ungate profile scroll fix (#3655) 2024-04-23 00:54:59 +01:00
Samuel Newman 49b5d420e6
rm country param (#3653) 2024-04-23 00:37:46 +01:00