Commit Graph

3551 Commits (65b5d31b581ad9f6c46a76175643437cd113903b)

Author SHA1 Message Date
Samuel Newman dc9d80d2a8
[🐴] update convo list from message bus (#4189)
* update convo list from message bus

* don't increase unread count if you're the sender

* add refetch interval back

* Fix deleted message state copy

* only enable if `hasSession`

* Fix logged out handling

* increase refetch interval to 60s

* request 10s interval when message screen active

* use useAppState hook for convo resume/background

* Combine forces

* fix useFocusEffect logic

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-24 13:59:28 -05:00
Eric Bailey c0175af76a
Recover from initial failed firehose state (#4211) 2024-05-24 13:50:50 -05:00
Paul Frazee afab4d5129
Move ALT indicator right and shrink it a bit (#4213) 2024-05-24 11:24:20 -07:00
Eric Bailey 2897b79bef
Make sure failed messages enter error state (#4210) 2024-05-24 10:01:30 -05:00
Hailey 85782aeb93
[🐴] Don't submit the message on return press when on a phone (web input) (#4203)
move this to the `onKeyDown` prop

Revert "do the same for tablets"

This reverts commit 47c709e2734f2acf34f89dd5aca42a75a2b56270.

do the same for tablets

don't submit message if the device is a phone on web

move `onTouchStart` to `browser.ts` globals
2024-05-23 19:45:50 -07:00
dan fa039e542d
Include feedContext in DOM as data- (#4206) 2024-05-24 01:25:11 +01:00
Paul Frazee f7ee532a85
Improve moderation behaviors: show alert/inform sources and improve UX around threads (#3677)
* Dont show account or profile alerts and informs on posts

* Sort threads to put blurred items at bottom

* Group blurred replies under a single 'show hidden replies' control

* Distinguish between muted and hidden replies in the thread view

* Fix types

* Modify the label alerts with some minor aesthetic updates and to show the source of a label

* Tune when an account-level alert is shown on a post

* Revert: show account-level alerts on posts again

* Rm unused import

* Fix to showing hidden replies when viewing a blurred item

* Go ahead and uncover replies when 'show hidden posts' is clicked

---------

Co-authored-by: dan <dan.abramov@gmail.com>
2024-05-24 00:39:39 +01:00
Samuel Newman d2c42cf169
Privileged app passwords (#4200)
* add checkbox to create privileged app password

* add indicator to privileged app pwds to list

* bump api

* oops missed the yarnlock

* adjust modal padding

* lowercase

* one more lowercase

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-23 16:10:13 -07:00
Eric Bailey 406993cf0e
[🐴] Overfetch follow for default new dialog state (#4205) 2024-05-23 16:06:50 -07:00
Eric Bailey 9096655955
Reduce polling (#4204)
* Reduce polling a bit

* Bump to 60

* Increase all

* ok 3
2024-05-23 17:21:47 -05:00
Hailey 5c2e99e3e6
[🐴] Fix Firefox send button positioning (#4201)
* use `align_center`

* revert

* account for firefox textarea size differences

set to `38`

remove some extra stuff

equal height on all platforms

* use atom
2024-05-23 13:08:12 -07:00
Hailey af20229b41
Add `bundleDate`, `bundleIdentifier` to `StatsigUser` (#4199)
* record event for fetched ota update

* Revert "record event for fetched ota update"

This reverts commit 4b49efe036c0c9605eabf1d5715586d093d60e9e.

* add `bundleDate` to `StatsigUser`

* include `bundleIdentifier` too

* move to `custom`
2024-05-23 19:52:36 +01:00
Hailey 70f190d44f
Remove `getProfile` calls when loading feed (#3881)
* remove unnecessary `getProfile()` calls from feed load

add comments

ensure only if first

simplify

nit

handle cases where the parent is removed

add a comment

remove unnecessary `getProfile()` calls from feed load

limit only to the first post in the returned items

move the logic out of the render and into the query

add the grandparent properly

update `FeedItem`

bump package

update `FeedItem`

update `post-feed` query

update `FeedSlice`

* nit

* simplify logic

* always pass `parentAuthor`

* oops!

* update `DebugMod`
2024-05-23 19:35:49 +01:00
Eric Bailey 6d647551cd
Log error statuses from failed resume session calls (#4174)
* Add log to track how resume fails

* Use safe field name

* Better log

* Properly catch
2024-05-23 19:27:53 +01:00
Hailey e5fc0baa6a
disable alt text auto focus on Android (#4198)
* disable alt text auto focus on Android

* revert timeout change
2024-05-23 11:04:20 -07:00
Samuel Newman 0e77280310
[🐴] add link to chat settings from main settings (#4197)
* add link to chat settings from main settings

* move to beneath saved feeds

weird ass diff on this commit lol
2024-05-23 18:57:23 +01:00
Hailey 9900d32904
Decrease thickness of border on message input (#4196) 2024-05-23 10:17:50 -07:00
Samuel Newman b093e0b673
[🐴] better error message for "Bad token scope" error (#4194)
* better error message for "Bad token scope" error

* log -> sign
2024-05-23 18:05:30 +01:00
Hailey 5217876f24
Add padding to dialogs when keyboard is open on Android (#4182)
* add keyboard padding to android dialogs

* missing `keyboardDismissMode` for `ScrollableInner`

* add to `MutedWords`

* add to `LabelsOnMe`
2024-05-23 10:01:31 -07:00
Eric Bailey 3d1ed04a70
[🐴] Do not init event bus if no session (#4193)
* Do not init event bus if no session

* Be explicit

* Simplify, fix log
2024-05-23 12:00:56 -05:00
Samuel Newman 17e0cb62a8
stop line breaks for timeelapsed (#4191) 2024-05-23 17:55:27 +01:00
Eric Bailey 9011c11eaf
Reduce polling when app is backgrounded (#4192) 2024-05-23 11:54:22 -05:00
Hailey d051614342
implement a safari hack for ime (#4186)
remove debug logs

use a better hack

implement a safari hack

extract `isSafari` and `isFirefox` to a global variable
2024-05-23 16:45:24 +01:00
Eric Bailey 2c6c906934
[🐴] Suspend event bus when switching accounts (#4190)
* Suspend event bus when switching accounts

* Make effect symmetrical
2024-05-23 10:08:37 -05:00
Hailey 69f4684859
Handle zero bottom inset on iOS (#4184)
* set message padding to a minimum of 60 and max of 70

* adjust range
2024-05-22 19:44:37 -07:00
Dan Abramov 8938fc87a0 [Session] Dispose of stale agents immediately 2024-05-23 03:35:25 +01:00
Dan Abramov acf1def6c1 [Session] Persist updates from inactive agent 2024-05-23 03:35:25 +01:00
Hailey 03655abb7c
wrap web in disabled keyboard provider (#4176) 2024-05-22 14:19:47 -07:00
dan e6e7027d01
Cleanup gates (#4170)
* Unlaunch disable_poll_on_discover_v2

* Rm unused gates

* Unlaunch autoexpand_suggestions_on_profile_follow_v2

* Launch disable_min_shell_on_foregrounding_v3
2024-05-22 18:19:07 +01:00
Samuel Newman 3ca41e4efb
[🐴] Invalidate list convos query on block (#4171)
* more memoization

* invalidate listconvos query on block
2024-05-22 18:14:15 +01:00
Eric Bailey b937372325
More retries when resuming non-stale account (#4156) 2024-05-22 11:34:21 -05:00
Samuel Newman 690926dd90
Add note to clarify "allow new messages from" setting (#4166) 2024-05-22 15:52:04 +01:00
Hailey 6522ee9bbf
don't use `contentVisibility` on Firefox (#4164) 2024-05-22 14:07:07 +01:00
Eric Bailey 4b0e118844
Remove added radius, add to specific location (#4160) 2024-05-21 17:14:30 -05:00
Hailey cbfb69dd15
[🐴] Support Japanese (et al.) IME in message input on web (#4159)
* support japanese et al. IME

* update comment

* nit
2024-05-21 13:37:16 -07:00
Samuel Newman 866b0b9121
[🐴] Fix convo menu overlap (web) (#4153)
* add right padding to chatlistitem to avoid overlap

* reduce padding amount
2024-05-21 15:33:00 -05:00
Hailey 630b9b7786
check `maxTouchPoints` is greater than 1, not zero (#4158) 2024-05-21 20:18:56 +01:00
Samuel Newman 7334e9fd81
close loggedout view when logging in (#4154) 2024-05-21 12:49:46 -05:00
Samuel Newman e5a1472974
flip order (#4152) 2024-05-21 16:16:36 +01:00
Samuel Newman f06a6024e6
fix to negative top of component so it moves with container growth (#4151) 2024-05-21 16:16:27 +01:00
Hailey 1ec4e0a867
Make list end text customizable (#4145)
* only try to initialize once

* nit

* change to `You have reached the end`

* make the text at end of list customizable

* make the text at end of list customizable

* update intl
2024-05-20 21:04:19 -07:00
dan b89e4ded2f
Only fallback to Discover if Following is first pinned (#4146) 2024-05-20 21:03:17 -07:00
dan d6625c29d1
[Statsig] Sample router events (#4143) 2024-05-20 20:28:12 -07:00
Hailey 8cec1679a7
[🐴] only try to initialize once in the NUX (#4142)
* only try to initialize once

* nit
2024-05-20 20:13:06 -07:00
Paul Frazee 184c65836b Run intl extract 2024-05-20 20:09:03 -07:00
Hailey 5bbb5f5806
use same visuals for notification sounds setting as the allow messages from (#4141) 2024-05-20 20:08:29 -07:00
Eric Bailey 8be65a8790
Add convoId as key to Convo wrapper (#4140) 2024-05-20 21:59:55 -05:00
Paul Frazee 6b6a002b0a Run intl extract 2024-05-20 19:52:04 -07:00
Paul Frazee cb4045d2be
Switch to a more visually obvious button for the threadgate (#4139)
* Switch to a more visually obvious button for the threadgate

* Move threadgate button into the keyboard-sticky area

* Fix keyboard offset
2024-05-20 19:51:34 -07:00
Eric Bailey 6cc040a94e
[🐴] Add end of list text, fix threshold (#4138)
* Add end of list text

* onEndReachedThreshold
2024-05-20 21:42:49 -05:00
Eric Bailey ad2d84fb05
Fix button size on labeler (#4137)
* Fix button size

* Fix mobile
2024-05-20 21:04:27 -05:00
Pokai Chang 87fa501433
expand the background color to cover the overscroll area on settings screen (#4101) 2024-05-21 02:28:18 +01:00
Paul Frazee aa34d6b4d2
Release 1.83 (#4136)
* Test fixes

* Run intl:extract
2024-05-20 18:23:41 -07:00
Hailey a7c2370680
[🐴] set layout height in `onLayout` (#4135)
* set layout height in `onLayout`

* keep setting it in `onScroll` too
2024-05-20 18:03:53 -07:00
Pokai Chang cadc33c625
Fix laggy scrolling on mobile app's home screen, etc. (#4108)
* Improve scrolling performance for List

* Update List.tsx

* Apply same fix to profile labels

---------

Co-authored-by: dan <dan.abramov@gmail.com>
2024-05-21 01:41:12 +01:00
Samuel Newman 4a7436886d
remove DMs gate (#4112) 2024-05-20 19:29:22 -05:00
Eric Bailey a7b0242cc8
[🐴] Empty chat prompt (#4132)
* Add empty chat pill

* Tweak padding

* move to `components`, place inside `KeyboardStickyView`

* cleanup unused vars

* add a new animation type

* (unrelated) add haptic to long press

* adjust shrink and pop

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-20 16:56:44 -07:00
Eric Bailey 6dde487563
[🐴] Prevent flash upon first message (#4133)
* Prevent flash upon first message

* set `hasScrolled` to true when sending a message if it isn't already true

* revert other change

* lint

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-20 16:29:16 -07:00
dan 4fa92d7a49
[Statsig] Fix exposure logging for reduced onboarding (#4131)
* Add dangerouslyDisableExposureLogging option

* Rename onboarding gate to v2

* Disable exposure logging for onboarding in PostFeed query
2024-05-21 00:17:57 +01:00
Hailey 516eb69637
[🐴] Add new chat metrics (#4130)
* remove a comment

* add types for event, add log to profile button

* add `chat:open`

* add to chat list items

* fix types

* oops

* oops 2.0
2024-05-20 15:26:05 -07:00
Eric Bailey 22522090c2
Ensure deleted chats don't count towards unread (#4129) 2024-05-20 17:19:01 -05:00
Eric Bailey e98bf6521b
[🐴 Tweak appeal button styles (#4128)
* Tweak styles

* Tweak copy
2024-05-20 16:41:03 -05:00
Samuel Newman d3d2dc8ad4
[🐴] Appeal form for disabled DMs (#4126)
* add appeal dialog

* use useMutation for the labels on me dialog

* replace text button with small button
2024-05-20 22:23:36 +01:00
Samuel Newman e5aa8c081a
in-convo muted chat indicator (#4127) 2024-05-20 22:16:53 +01:00
Eric Bailey 70019e73ef
Some styling of empty list chats states (#4124) 2024-05-20 16:16:46 -05:00
Eric Bailey 31a716d256
[🐴] Handle deleted accounts, restructure ChatListItem (#4114)
* Handle deleted accounts, restructure ChatListItem

* Remove triggerOpacity option

* account for handle change in screen reader

* simplify the check

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-20 16:16:29 -05:00
Eric Bailey becf373edb
Maybe? (#4125) 2024-05-20 14:06:29 -07:00
Stanislas Signoud aa7c3130db
Update French localization (#4113)
* Extract new strings to translate in French

* Translate new strings into French
2024-05-20 13:22:11 -07:00
Takayuki KUSANO 8194e07092
Update Japanese translations (#3886)
* Update Japanese translations

* Updated as PR on Plural is merged (#3882)
* Feedback API (#3498)

etc.

* Improve localization marks (#3285)

* Update Lightbox.tsx

* Change strings for easier localization

* Update DeleteAccount.tsx

* Update LabelsOnMeDialog.tsx

* Update FeedCard.tsx

* Update index.tsx

* Update LabelsOnMeDialog.tsx

* Update index.tsx

* Update FeedCard.tsx

* Update SelfLabel.tsx

* Update Hashtag.tsx

* Update index.tsx

* Update Hashtag.tsx

* Update ChangeHandle.tsx

* Update index.web.tsx

* Update index.web.tsx

* Update index.tsx

* Remove unnecessary `<Trans>` tags

* Update Drawer.tsx

* Finnish translation update (#3755)

* Update messages.po

Translated new strings (GIF's etc) and cleaned up deprecated ones.

* Update messages.po

resolve conflict

* Update messages.po

removed double quotes. Thanks @lapanti

* fix bad bool check in action (#3885)

* fix bad bool check in action

* add `fetch-depth` so we can get the commit hash

* `.env` should be in `.easignore` 🙃

* Updated to follow #3285 etc.

* The translation of 'place' and 'apply' of labels has been unified into '適用する'.

* Fix translation of "repost"

* Updated

* Updated Japanese translation

* Updated Japanese translation

- #3816

* Fixed translations

* Updated translation : #3995

* Updated Japanese translation

* Updated Japanese translation (ref. #3962 #4028)

* Updated Japanese translation

* Updated Japanese translation

* Updated Japanese translation

---------

Co-authored-by: Minseo Lee <itoupluk427@gmail.com>
Co-authored-by: Jan-Olof Eriksson <jan-olof.eriksson@iki.fi>
Co-authored-by: Hailey <me@haileyok.com>
2024-05-20 13:21:21 -07:00
Gildásio Filho 37739e817b
Update pt-BR localization to latest version (#4009)
* Update messages.po

* Update src/locale/locales/pt-BR/messages.po

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>

---------

Co-authored-by: Gleydson Rodrigues <gleydsonsr@gmail.com>
2024-05-20 13:20:29 -07:00
Frudrax Cheng 6fba4143b4
Update zh-CN translations (#3932)
* remove superseded strings

* update messages.po

* fix typo

* remove messages.mo

* Simplify plural strings

* Correct some translations

* Correct some translations#2

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* fixed typo

* normalize string

* re-translated camera roll

* re-translated library

* remove .mo

* run intl:extract & update messages.po

* remove superseded strings

* update messages.po

* update messages.po

* adjust following feed translations

* adjusted feed translations

* adjusted following feed settings translations

* adjusted following feed settings translations#2

* Update messages.po

Co-authored-by: Kuwa Lee <kuwalee1069@gmail.com>

* Update messages.po

Co-authored-by: Kuwa Lee <kuwalee1069@gmail.com>

* Update messages.po

Co-authored-by: Kuwa Lee <kuwalee1069@gmail.com>

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* Update src/locale/locales/zh-CN/messages.po

* update messages.po

* update header information

* reverse some translations

* update messages.po

* fix removed translation

* run intl:extract

* update messages.po

* remove superseded strings

* translate 'People I Follow'

* make more localizable

* Fix special case "WhoCanReply"

* Update messages.po

* remove extraneous blank line

* remove duplicate 'click'

* update messages.po

* update messages.po

* update messages.po

* update messages.po

* update messages.po

---------

Co-authored-by: Kuwa Lee <kuwalee1069@gmail.com>
2024-05-20 13:19:59 -07:00
Kuwa Lee 2df0919e2d
Update zh-TW translations (#4025)
* Update new strings to 1.82

* finalize 1.82 zh-TW

* Clean unused string

* zh-TW daily update

* zh-TW daily update

* unify "unblock" for "解除封鎖"

* Update messages.po

* Update zh-TW new strings

* Update messages.po

* fix typo

* Fix special case "WhoCanReply"

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update "Adjust the number of likes a reply must have to be shown in your feed."

* Update messages.po

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update latest commit sttrings

+ 3 new strings

* Update latest commit strings

* Update strings to latest commit

* Fix special case "WhoCanReply" again

* Explicitly description for "Graphic Media"

* small improve

* Update strings to latest commit

+21

* Small improve

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* fix "WhoCanReply" , and update

---------

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>
2024-05-20 13:19:14 -07:00
Minseo Lee b524d5409b
Update Korean localization (#4030)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po
2024-05-20 13:18:32 -07:00
Ivan Beà 7cc3e958c8
Update catalan messages.po (#4079)
* Update catalan messages.po

New lines added, new lines localized.

Check it please @jordimas @darccio @surfdude29

* Update messages.po

apply @surfdude29 correction

* Update messages.po

Apply @jordimas corrections
2024-05-20 13:18:02 -07:00
Brodie 76be48b1a1
Update Spanish Localization (#4105) 2024-05-20 13:15:01 -07:00
Eric Bailey fe15e9df26
Allow removal of feeds that fail to load (#4121) 2024-05-20 13:04:33 -07:00
Hailey 52a885ad19
[🐴] Make message input layout resizing synchronous (#4123)
* make input resizing synchronous

* remove a log

* make scroll enable/disable sync

* lint

* start as undefined
2024-05-20 13:01:21 -07:00
Hailey 994af1454f
[🐴] Adjust content height whenever the emoji picker keyboard is opened or closed (#4120)
* properly resize whenever the emoji keyboard is opened

* properly resize whenever the emoji keyboard is opened
2024-05-20 12:53:15 -07:00
Eric Bailey 5771ff4b56
Conditionally set chat declaration (#4122) 2024-05-20 14:41:24 -05:00
Eric Bailey f52db843ad
[🐴] Fix load state for disabled chats (#4119) 2024-05-20 12:17:26 -07:00
Eric Bailey d0bfe703d9
[🐴] Switch back to encouraging users to report messages (#4117)
* Swap prompt back in

* Remove unused convoAccount affordances
2024-05-20 13:49:20 -05:00
Samuel Newman cc7a0da1a2
convo button skeleton (#4115) 2024-05-20 19:44:50 +01:00
Hailey 492216a584
[🐴] Screenreader accessibility actions for individual chat items (#4116)
* add accessibility tap to messages

* add a label for the accessibility action

* improve accessibility actions on chat list items

* adjust types

* more consistent wording

* make the strings localizable
2024-05-20 11:36:08 -07:00
Samuel Newman 24f8794d4d
[🐴] DM button on profile (#4097)
* add profile button

* separate out button to component

* normalise subscribe to labeller button size

* infinite staletime

* use Link rather than Button and change icon

* adjust icon position
2024-05-20 17:18:56 +01:00
Eric Bailey 2414559b80
[🐴] Don't retry sends (#4111)
* Don't retry sends

* Don't retry batch sends
2024-05-20 09:56:57 -05:00
Hailey 52beb29a0d
[🐴] Fully implement keyboard controller (#4106)
* Revert "[🐴] Ensure keyboard gets dismissed when leaving screen (#4104)"

This reverts commit 3ca671d9aa.

* getting somewhere

* remove some now nuneeded code

* fully implement keyboard controller

* onStartReached check

* fix new messages pill alignment

* scroll to end on press

* simplify pill scroll logic

* update comment

* adjust logic on when to hide the pill

* fix backgrounding jank

* improve look of deleting messages

* add double tap on messages

* better onStartReached logic

* nit

* add hit slop to the gesture

* better gestures for press and hold

* nits
2024-05-19 19:25:49 -07:00
Eric Bailey 7de0b0a58c
[🐴] Convo agent cleanup (#4109)
* Move comment, remove unused code

* Clean up sending

* Remove temp hack

* Remove debug
2024-05-19 18:52:51 -05:00
Hailey 3ca671d9aa
[🐴] Ensure keyboard gets dismissed when leaving screen (#4104) 2024-05-18 18:25:42 -07:00
Samuel Newman cb7ce1d22e
disable min shell on convo screen (#4103) 2024-05-19 02:14:04 +01:00
Hailey 1ac13abf4d
[🐴] Minor nits (#4102)
* set a better size for `initialNumToRender`

* memo list items

* scroll to end on both platforms

* rev
2024-05-18 16:45:46 -07:00
Hailey 5343910570
[🐴] 🤞 This should be the final message list change - Use `dispatchCommand` so we don't need to know the content height (#4090)
* handle keyboard scroll more elegantly

simplify

missing `runOnUI`

better naming to avoid confusion

nit

remove unused function

use `dispatchCommand` in `onContentSizeChanged` as well

use `dispatchCommand` so we don't need to know the content height

remove `isMomentumScrolling`

* better timing

* nit

* another nit

* handle message input resizes better too

* account for other size changes like emoji keyboard opening

* one last nit

* just adding comments

* account for dragging

* make it easier to read

* add a comment

* 🤦‍♀️

* remove a little bit of that padding at the top
2024-05-18 12:29:23 -07:00
Hailey 2eaecfcaa4
[🐴] Reset screen when pressing a DM notification while already in the conversation screen (#4091)
* add a small comment

* reset if current screen
2024-05-18 12:23:24 -07:00
Hailey d2c81c9d3d
Disable badge incrementing for DMs (#4088)
* disable badge increments for dms

* revert decrementing in js for dms

* reset badge on read notifications

* remove some other code

* prevent duplicate notification events
2024-05-17 16:05:32 -07:00
Eric Bailey 49314e2d1f
[🐴] Mod disabled (#4089)
* Handle send failures

* Add chat disabled state
2024-05-17 16:05:21 -07:00
Eric Bailey 8b3bfb3cf7
Make generic convo report dialog (#4085) 2024-05-17 17:56:58 -05:00
Eric Bailey 1cdcb3e6c3
[🐴] New chat dialog refresh (#4071)
* Checkpoint, header styled, empty

* Checkpoint, styles

* Show recent follows in initial state, finesse some styles

* Add skeleton

* Add some limits

* Fix autofocus on web, use bottom sheet input on native

* Ignore type

* Clean up edits

* Format

* Tweak icon placement

* Fix type

* use prop for dismissing keyboard

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-17 15:03:50 -07:00
Hailey d02e0884c4
[🐴] Block Info (#4068)
* get the damn thing in there 😮‍💨

* more cleanup and little fixes

another nit

nit

small annoyance

add a comment

only use `scrollTo` when necessary

remove now unnecessary styles

* move padding out

* add unblock function

* rm need for moderationpts

* ?

* ??

* extract leaveconvoprompt

* move `setHasScrolled` to `onContentSizeChanged`

* account for block footer

* wrap up

nit

make sure recipient is loaded before showing

refactor to hide chat input

typo squigglie

add report dialog

finalize delete

implement custom animation

add configurable replace animation

add leave convo to block options

* correct functionality for report

* moev component to another file

* maybe...

* fix chat item

* improve

* remove unused gtmobile

* nit

* more cleanup

* more cleanup

* fix merge

* fix header

* few more changes

* nit

* remove old
2024-05-17 16:21:15 -05:00
Eric Bailey 1b47ea7367
Set chat declaration upon signup (#4084) 2024-05-17 15:38:47 -05:00
Samuel Newman cef243bcf4
[🐴] delete chat service account on account delete (#4056)
* delete chat service account on account delete

* Add proxy header

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-17 14:53:51 -05:00
Samuel Newman f42f7fa035
[🐴] don't include blocked convos in unread count (#4082)
* don't include blocked convos in unread count

* Use moderateProfile

* Handle blocked state in chat list

* Fix logic formatting, add todo

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-17 14:46:01 -05:00
Samuel Newman dd0f57e3e3
[🐴] NUX (#4062)
* remove type assertion

* DMs NUX

* delete button for testing

* tweak styles and copy

* rm log

* style tweaks

* reduce amount of words

* Fix not showing on first load

* Spacing tweaks

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-17 14:24:06 -05:00
Samuel Newman 115041f4bf
[🐴] Reduce header size (#4078)
* make text input container smaller

* make header much smaller

* improve web styling
2024-05-17 14:17:59 -05:00
Hailey 5e312d5f3a
[🐴] Don't always show notification for everything (#4083)
* don't always show a notification

* nit
2024-05-17 09:23:46 -07:00
Hailey dd4c8d8e4f
[🐴] Additional tweaks to the message list (#4075)
* more cleanup and little fixes

another nit

nit

small annoyance

add a comment

only use `scrollTo` when necessary

remove now unnecessary styles

* move `setHasScrolled` to `onContentSizeChanged`

* account for block footer
2024-05-17 08:21:35 -07:00
Eric Bailey 829f6a9e64
Conditionally load unreads (#4072) 2024-05-16 20:13:55 -05:00
Eric Bailey 0444e69c35
Revert "Aggregate quickly-sent messages into batches (#4061)" (#4069)
This reverts commit d424945eed.
2024-05-16 19:51:26 -05:00
Eric Bailey 1ff15b47f4
100% Real Deal™ (#4070) 2024-05-16 19:51:20 -05:00
Hailey 808511617d
[🐴] 60 FPS Keyboard (#4066)
* use `scrollTo`

* let the animated reaction handle keyboard scroll

* no need for `requestAnimationFrame` now

* 'worklet'

* nit

* fixes

* more nits

* bool check
2024-05-16 17:12:41 -07:00
Eric Bailey eb1428b1d8
Fix delete message error (#4065) 2024-05-16 19:08:04 -05:00
Eric Bailey d424945eed
Aggregate quickly-sent messages into batches (#4061) 2024-05-16 16:39:05 -05:00
Hailey a84a14d084
[🐴] Input hover and focus styles (#4064)
* styles for native input

* web focus/hover

* nit
2024-05-16 14:23:02 -07:00
Hailey ba068c8934
fix typo (#4060) 2024-05-16 16:16:51 -05:00
Eric Bailey 0c6af4fc6e
Fix error styles (#4063) 2024-05-16 16:16:28 -05:00
Eric Bailey 449f16b7c5
Reset leave chat optimistic update if fails (#4058) 2024-05-16 15:52:53 -05:00
Hailey 5e5716c0a8
don't show individual labels on own profile, only "have been placed..." (#4057) 2024-05-16 13:22:04 -07:00
Eric Bailey 3a8baba129
[🐴] Tweak header styles (#4053)
* Tweak desktop header styles

* Tweak mobile

* Bump icon size

* Remove unused else
2024-05-16 15:19:35 -05:00
Hailey 72550df0e2
Properly update badge for other unread notifications (#4052)
* decrement badge count for chats

* handle decrement in `useMarkAsRead`

* remove async

* remove setting badge count

* oops

* update the number correctly

* nit
2024-05-16 12:21:29 -07:00
Hailey 5e8650a204
[🐴] Decrement app badge when opening unread chat (#4040)
* decrement badge count for chats

* handle decrement in `useMarkAsRead`

* remove async

* oops
2024-05-16 12:15:35 -07:00
Eric Bailey 4bceabc21c
[🐴] Error recovery (#4036)
* Handle block state when sending messages

* Handle different pending failures

* Use existing profile data to handle blocks

* Better cleanup, leave room for more

* Attempt recover upon next send

* Reset pending failure

* Capture unexpected error

* Gracefully handle network errors and recovery

* Re-align error components and types

* Include history fetching in recoverable states
2024-05-16 14:01:39 -05:00
Hailey dff6bd7c65
[🐴] infinite stale time (#4051) 2024-05-16 11:58:45 -07:00
Hailey ef0ce951e7
[🐴] Only scroll down one "screen" in height when foregrounding (#4027)
* maintain position after foreground

* one possibility

* don't overscroll when content size changes.

* ignore the rule on 1 item

* fix

* [🐴] Pill for additional unreads when coming from background (#4043)

* create a pill with some animatons

* add some basic styles to the pill

* make the animations reusable

* bit better styling

* rm logs

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>

* import

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-05-16 10:40:12 -07:00
Hailey b15b49a48f
[🐴] Remove keyboard controller lib (#4038)
* remove library

* implement using just reanimated

* always return false for `keyboardIsOpening` on web

* undo comment

* handle input focus scroll more elegantly

* add back minimal shell toggle on mobile web

* adjust initialnumtorender

* oops

* nit
2024-05-16 09:32:10 -07:00
Samuel Newman da2bdf5d6f
[🐴] use Toggle component in settings screen (#4048)
* use Toggle component

* nits + notifs sounds native only
2024-05-16 16:57:07 +01:00
Hailey d639c40e17
[🐴] Tweak padding of web input (#4033)
* tweak more

* nit
2024-05-16 08:52:53 -07:00
Eric Bailey 98af0e8678
Handle failed resumeSession case when switching accounts (#4047) 2024-05-16 10:46:20 -05:00
Hailey 400c269330
[🐴] Copy tweaks (#4042)
* `notifications` -> `conversation`

* `users` -> `people`

* `other participants` -> `the other participant`

* rename
2024-05-16 08:37:04 -07:00
Hailey b635d000b5
[🐴] Disable hover card when blocked or blocking (#4041) 2024-05-16 08:17:34 -07:00
Hailey 9499d4343d
[🐴] A few tweaks to message input on native (#4035)
* tweaks

* only apply the padding on ios

* use a hitslop of 10 instead

* version bump
2024-05-16 08:09:14 -07:00
Samuel Newman aded49f65b
Implement prefersReducedMotion on native (#4039)
* implement prefersReducedMotion on native

* just take the function from the reanimated source

* use patch-package to export internal function
2024-05-16 12:01:26 +01:00
Eric Bailey 3674c8abce
Remove error for refresh, not necessary (#4034) 2024-05-15 15:32:40 -05:00
Hailey bf7b66d5c1
Add push notification extensions (#4005)
* add wav

* add sound to config

* add extension to `updateExtensions.sh`

* add ios source files

* add a build extension

* add a new module

* use correct type on ios

* update the build plugin

* add android handler

* create a patch for expo-notifications

* basic android implementation

* add entitlements for notifications extension

* add some generic logic for ios

* add age check logic

* add extension to app config

* remove dash

* move directory

* rename again

* update privacy manifest

* add prefs storage ios

* better types

* create interface for setting and getting prefs

* add notifications prefs for android

* add functions to module

* add types to js

* add prefs context

* add web stub

* wrap the app

* fix types

* more preferences for ios

* add a test toggle

* swap vars

* update patch

* fix patch error

* fix typo

* sigh

* sigh

* get stored prefs on launch

* anotehr type

* simplify

* about finished

* comment

* adjust plugin

* use supported file types

* update NSE

* futureproof ios

* futureproof android

* update sound file name

* handle initialization

* more cleanup

* update js types

* strict js types

* set the notification channel

* rm

* add silent channel

* add mute logic

* update patch

* podfile

* adjust channels

* fix android channel

* update readme

* oreo or higher

* nit

* don't use getValue

* nit
2024-05-15 11:49:07 -07:00
Hailey 31868b255f
[🐴] Tweak list on mobile web (#3958)
* mobile web tweaks chat screen

* revert a change

* remove unnecessary prop

* Spacing tweaks

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-15 09:50:16 -07:00
Eric Bailey 04aea93192
[🐴] Better retry styling (#4032)
* Pass whole object to MessageItem for clarity

* Add retry to pending-message

* Style send failure, retry

* Group pending messages

* Remove todos

* Fix types with fake message
2024-05-15 11:45:18 -05:00
Samuel Newman ed8922281a
[🐴] Show if user can be messaged in new chat search (#4021)
* show if user can be messaged

* allow 2 lines in handle field due to new text

* cannot -> can't

* rework canBeMessaged logic and move to new file

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-15 16:05:17 +01:00
Minseo Lee 2121b5f86f
Make more localizable (#3962)
* Update ProfileList.tsx

* Update NoFollowingFeed.tsx

* Update LabelsOnMeDialog.tsx

* Update LabelsOnMeDialog.tsx

* Update NoFollowingFeed.tsx

* Update SavedFeeds.tsx

* Revert "Update SavedFeeds.tsx"

This reverts commit db128eb27d76d27dffa87e0e70e34f603da75778.
2024-05-14 22:44:59 -07:00
Hailey a90cc1c030
[🐴] change `Follows Only` to `People I Follow` (#4028) 2024-05-14 19:58:56 -07:00
Eric Bailey 6382fec732
Reset after 5 min (#4026) 2024-05-14 21:21:09 -05:00
Eric Bailey 6efe90a5f5
[🐴] Block states, read only (#4022)
* Refactor ChatListItem for mod state

* Refactor Conversation Header for mod state

* Invalidate query for list when blocking/unblocking

* Remove unused prop, restore border

* Add mutations, hook up profile shadow to list query, use shadow-aware query for convo (#4024)
2024-05-14 20:07:53 -05:00
Samuel Newman 0e04b19627
remove serviceurl gate (#4019) 2024-05-14 21:19:22 +01:00
Samuel Newman ebc7571368
reword subtitle (#4017) 2024-05-14 21:18:54 +01:00
Hailey e1ed4a4429
[🐴] show deleted account for `missing.invalid` (#4014)
* show deleted account for `missing.invalid`

* sigh
2024-05-14 11:42:54 -07:00
Samuel Newman 08836ecbec
[🐴] use "Chats" instead of "Messages" (#4013)
* use "Chats" instead of "Messages"

* chats to chat

* use messages in the header
2024-05-14 19:18:08 +01:00
Samuel Newman 6b2635c870
100vh settings screen (#4015) 2024-05-14 19:17:53 +01:00
Paul Frazee 03da056513
Run intl extract (#4016) 2024-05-14 11:15:27 -07:00
Samuel Newman 5af61ca4e4
[🐴] Settings screen (#3830)
* create settings screen + api

* update api package

* use putrecord API with validate false

* create new RadioGroup component
2024-05-14 18:57:16 +01:00
Samuel Newman 9861494e34
[🐴] Message drafts (#3993)
* drafts

* don't throw if no convo ID

* Remove labs package

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-14 18:55:43 +01:00
Minseo Lee f147256fdc
Update Korean localization (#3887)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update src/locale/locales/ko/messages.po

Co-authored-by: Frudrax Cheng <i@cynosura.one>

* Update src/locale/locales/ko/messages.po

Co-authored-by: Frudrax Cheng <i@cynosura.one>

* Update src/locale/locales/ko/messages.po

Co-authored-by: Frudrax Cheng <i@cynosura.one>

* Update src/locale/locales/ko/messages.po

Co-authored-by: Frudrax Cheng <i@cynosura.one>

* Update messages.po

* Update src/locale/locales/ko/messages.po

Co-authored-by: Frudrax Cheng <i@cynosura.one>

* Update messages.po

* Update messages.po

---------

Co-authored-by: Frudrax Cheng <i@cynosura.one>
2024-05-14 10:51:13 -07:00
Ivan Beà d515985fdd
Update catalan messages.po (#3984)
* Update catalan messages.po

New lines update
You can check it @jordimas @darccio @ferranrego @MiquelAdell @johnnydement @surfdude29

* Update messages.po

apply @surfdude29 corrections
2024-05-14 10:48:47 -07:00
Eric Bailey d7f1b2a5df
Fix dep (#4011) 2024-05-14 12:20:12 -05:00
Eric Bailey 1c51a48764
[🐴] Make status checks easier, fix load state (#4010)
* Make status checks easier, fix load state

* Make naming more clear

* Split up types for easier re-use

* Replace hacky usage
2024-05-14 11:59:53 -05:00
Samuel Newman bffb9b5906
[🐴] Chat muted state (#3988)
* separate out chatlistitem and add muted icon

* move bell icon to the right of the timeelapsed
2024-05-14 17:41:20 +01:00
Eric Bailey 9173be686c
[🐴] Swap in new package, update usages (#3992)
* Swap in new package, update usages

* Remove uneccessary patch

* Override type in safe place
2024-05-14 09:22:09 -05:00
Paul Frazee 107760d551
Add better onboard testing (#4007) 2024-05-13 20:23:31 -07:00
Hailey fd704bfd44
add a `Login` notifications request (#4006) 2024-05-13 19:51:12 -07:00
Hailey fce65b74ff
align the trash icon in the center in feed edit list (#4004)
* align the trash icon in the center

* align_center instead of align_start
2024-05-13 18:26:58 -07:00
Paul Frazee 0776cd99e5
Make feeds easier to reorder (#3998)
* Make feeds easier to reorder

* Add reorder e2e test

* Tweak feed card to only allow one line (#4002)

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-13 15:56:48 -07:00
Eric Bailey 95514e3af7
[Reduced Onboarding] Fix forward/backward nav with profile step (#3997)
* WIP

* Fix forward-backward to profile step

* [Reduced Onboarding] Add avatar metric (#3999)

* Add prop to finished event

* Fix type

* Use separate event
2024-05-13 16:54:12 -05:00
Eric Bailey 9980012021
Gate base following feed usage (#3994) 2024-05-13 16:54:03 -05:00
Samuel Newman 5d92ac2ce3
dont send message if >1000 graphemes (#3995) 2024-05-13 22:36:56 +01:00
Paul Frazee 27bb73c701
New onboarding tests (#3996)
* Add onboarding test

* Add onboarding avatar-creator test

* Update profile screen edit test
2024-05-13 14:20:27 -07:00
Eric Bailey f0cd8ab6f4
Swap in base following (#3991) 2024-05-13 12:44:21 -07:00
Eric Bailey 10919319bf
Remove profile step from old onboarding (#3989) 2024-05-13 13:15:38 -05:00
Hailey 8e1541e0a5
actually register token on permissions change (#3990)
* actually register token on permissions change

* actually register token on permissions change

* get updated permissions every time

* remove all usages of `usePermissions`

* skip perms check on granted result from request
2024-05-13 11:11:35 -07:00
Hailey d3406c89cf
Move request for notifications permissions to `HomeReadyScreen` (#3977)
* cleanup the current logic

* add statsig logs

* implement requests for permissions where needed

* oops

* let `addPushTokenListener` handle the token registration

* place new log event type with the other `notifications` type

* place registration next to handler

* more organization

* only call `gate()` if permission is not yet granted

* be more specific to prevent gate pollution

* nit

* make `token` non-optional in `registerToken`

* remove `prevDid`, move `registerPushToken` into `useEffect`

* keep it outside actually

* nit
2024-05-13 09:19:35 -07:00
Matthieu Sieben 63b38b413d
fix wording in french onboarding (#3987) 2024-05-13 09:19:21 -07:00
Hailey e02cae2acd
Fix overflowing text on web and iOS in `PostMeta` (#3982)
* `flexShrink` on iOS and web

`flexShrink` on iOS and web

`flexShrink` on iOS and web

actually, `flexShrink`

use `flex`

* adjust web

* `expect-error` `onMouseUp`

* ignore ref type check
2024-05-13 08:49:54 -07:00
Paul Frazee d49b93dc7e
Replace e2e tests with Maestro (#3983)
* Setup maestro tests and convert some initial tests

* Remove detox

* Replace all tests with maestro
2024-05-13 08:43:13 -07:00
Hailey 5cd4ac3a34
get a little more accurate with month length (#3981)
* get a little more accurate with month length

* create some wiggle room, create some specific tests

* update more tests
2024-05-13 08:39:34 -07:00
Hailey 73d094c67e
Delete the entire temporary directory instead of just the temp file, also use `cacheDirectory` over `documentDirectory` (#3985)
* lint

* remove extra arg
2024-05-13 02:10:29 -07:00
Matthieu Sieben 00a57df5b1
Fix "Download CAR file" on mobile (#3816)
* download CAR file using AtpAgent instead of building URL

* add loader icon on download car button

* actually save to disk on android

* style nits

* bottom margin nit

* localize toast

* remove fallback so back button works correctly

* keep throwing an error if mime type isn't used

* be more explicit with toasts

* send errors to sentry when encountered

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-12 14:18:42 -07:00
dan 4458b03173
FeedFeedback fixes (#3968)
* Lower seen threshold to 1.5s

* Send feedContext for replies

* Use a simpler and more reliable feedContext fallback

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-05-12 10:30:00 -07:00
Hailey 97750c4aab
Show "label has been placed..." even for self-labels (#3874)
* show labels placed on your content even if it's a self-label

even friendlier wording

friendlier wording

remove unnecessary `export`

temp revert reordering

show labels placed on your content even if it's a self-label

* Bump api 0.12.9

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-05-11 15:07:50 -07:00
dan 08462375ca
Fix flashes when replacing For You (#3967)
* Fix flashes when replacing For You

* Switch to Discover if pinned after removing
2024-05-11 20:35:08 +01:00
dan 51b4b22dec
Onboarding fixes (#3966)
* Ensure prefs are up-to-date before leaving onboarding

* Parallelize upsertProfile call

* Don't upsertProfile if no image

* Don't waterfall blob upload

* Fix useProfileUpdateMutation to parallelize uploads

* Invalidate user profile before leaving onboarding

* Ungate setting the pic
2024-05-11 19:54:58 +01:00
Paul Frazee 6f5b551bda
Add shutdown message to for you feed (#3776) 2024-05-11 05:57:21 +01:00
Eric Bailey 4e37e2f59b
[Reduced Onboarding] Add profile step (#3933)
* Onboarding avatar creator or upload (#2860)

* add screen to onboarding flow

* update base

* add icon

* fix icon

* fix after merge

* create flatlist

* add emoji list

* add state context, pressables

* select/update

* add camera icon

* add photo selection button

* image selection

* cleanup

* add most needed icons

* fix icon naming

* add icons

* export path strings for emoji

* canvas drawing for web

* types

* move breakpoints to individual steps

* create canvas

* canvas working 🎉

* update state

* it works!

* working on both platforms

* remove comments

* remove log

* remove unused web canvas

* animate picture selection/removal

* compress images on web correctly

* add times icon

* scrollable horizontal flatlist on web

* prefetch

* adjustments

* add more assets

* remove unused smiles

* add all the icons

* adjust color options

* animate grow/shrink selections

* change layout on tablet/desktop

* better web layout

* fix path

* adjust web layout

* organize

* organize imports and cleanup styles

* make generated images smaller

* implement design changes

use row for buttons on web

use RNGH FlatList

random color at start

improve logic

update dialog for web

update dialog style on mobile

some more progress

create dialog

simplify context

start implementing design

* rm change

* cleanup imports

* trigger a pr label

* Formatting

---------

Co-authored-by: Eric Bailey <git@esb.lol>
(cherry picked from commit 087186e3867b0eefb11a056b0b644f5585fa16bd)

* UI tweaks

* Revert layout change

* Gate avi upload

* Support returning to profile step

* Add Statsig

---------

Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-05-11 05:37:23 +01:00
Eric Bailey 80ce6f980e
[Reduced Onboarding] Add new step, new state to reducer (#3931)
* Add new step, new state to reducer

* Don't set default feeds
2024-05-11 05:19:16 +01:00
Eric Bailey 08979f37e7
Movable following feed (#3593)
* Handle home algo with backwards compat

* Remove todo, fix pwi view

* Simplify filter logic

* Handle edge case

* Handle home algo in FeedSourceCard

* Fix handling of pinned feed if home algo is disabled

* Handle home algo on ProfileFeed screen

* Rename

* Fix pinned feeds key

* Improve perf of pinned feeds with primary algo

* Update statsig API

* Revert unneeded changes

* Support following feed as well

* Better formatting

* Clarify primary algo usage

* Better comment

* Handle saved feed screen edge case

* Restore Feeds sparkle, fix line height

* Move gate call down

* Filter out primary algo from feeds page

* Filter dupe from Feeds screen

* Simplify logic

* Missing following handling

* Hide primary feed setting outside exp

* Revert testing change

* Migrate usePinnedFeedInfos

* Migrate FeedSourceCard

* Migrate Feeds screen

* Migrate SavedFeeds screen

* Handle timeline in feed infos

* Finish migrating ProfileFeed, FeedSourceCard

* Migrate ProfileList

* Finalize mutation hooks

* Allow unsaving lists

* Handle following feed on Feeds screen

* Handle following on SavedFeeds

* Get rid of deprecated interface usages

* Handle no pinned feeds

* Handle no feeds on Feeds screen

* Reuse component on SavedFeeds screen

* Handle no following feed

* Remove primary algo references

* Migrate to new plural APIs

* Remove unused event

* Prevent duplicate keys

* Make handling much more clear

* Dedupe useHeaderOffset

* Filter unknown feed types at source

* Use just following

* Immprove key handling

* Resume from last tab

* Bump sdk

* Revert Gemfile

* Additional protection in FeedSourceCard

* Fix ProfileList save/unsave handling

* Translate

* Translate

* Match existing handling post-signup

* Ensure onboarding results in correct selected feeds

* Some testing tweaks on create/onboarding

* Revert primary algo consderations

* Remove comment

* Handle default feed setting

* Rm unnecessary type cast

* Remove premature gate check

* Remove nullable check in onPageSelecting, assume the pager checks bounds

* Use null for default selected feed

* Rm unrelated change

* Remove the concept of __key__

I don't think this concept is consistent.

It's introduced on FeedSourceInfo which is used both by pinned feeds and by useFeedSourceInfoQuery. Pinned feeds use the pinning ID there. But there is no pinning ID for useFeedSourceInfoQuery. So this means this field is sometimes one thing and sometimes some other thing. That is a decent sign that it shouldn't be on that type at all.

It's not used anywhere except the desktop feed enumeration. It seems reasonable to assume there that we wouldn't want to show the same feed URL twice. (And if it does occur in the array twice, IMO we should solve that at the API level and dedupe it on read or next write.) So I think we should just use the URL in that place. (I used the descriptor, which is equivalent.)

* Dedupe pinned feeds by URL on read

* Filter timeline out of mergefeed sources

* Put FeedDescriptor into FeedSourceInfo

* Group saved info with feed for pins

This removes a loop within a loop within a loop.

* Fix Feeds link on native

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-05-11 04:39:21 +01:00
Eric Bailey 2974ce1b20
Gate chat icon in bottom bars (#3959) 2024-05-10 18:02:33 -05:00
Eric Bailey f84a2def29
[🐴] Simplify message passing, cleanup (#3952)
* Simplify message passing

* Setup/teardown events
2024-05-10 12:44:55 -05:00
Samuel Newman ab21aafc28
[🐴] Report message dialog (#3941)
* message report dialog

* report chat prompt

* typo

* 100% height sheet on android

* messages-specific report options

* restore unwanted sexual content

* chat -> conversation
2024-05-10 17:52:21 +01:00
Samuel Newman 7370bebf07
remove 12hr time (#3954) 2024-05-10 17:36:06 +01:00
Eric Bailey cf981124e4
Add icons to drawer (#3956) 2024-05-10 11:08:53 -05:00
Hailey 9f6552241f
bump max width of message (#3955) 2024-05-10 09:04:03 -07:00
Hailey f928e0a547
[🐴] Mutate data instead of invalidating queries when muting or unmuting (#3946)
* mutate for mutes

* mutate data for mutes

* add initial data, `useConvoQuery` in `ConvoMenu`

* `useInitialData`

* don't use `identifier` for notifications, use `dates` instead

* better implementation

* simplify

* simplify

* fix types
2024-05-10 08:46:51 -07:00
Eric Bailey 8f56f79c6c
[🐴] Change up icons (#3938)
* Swap for chat icon

* Replace icons in left nav

* Replace icons in bottom bars

* Ditch feeds, drop size

* Fine tune

* Swap bell icon, improve alignment and size
2024-05-10 10:42:45 -05:00
Eric Bailey d7f3a8d01f
[🐴] Clean up after deleting message (#3950)
* Clean up after removal

* Remove console
2024-05-10 10:40:52 -05:00
Hailey 54c4baacb6
[🐴] Move `KeyboardAvoidingView` up to the main screen (#3953) 2024-05-10 08:24:29 -07:00
Hailey e729647c02
[🐴] Adjust messages list styles (#3945)
* some initial tweaks

* tweaks

* more tweaks

* tweak chat header

* properly align placeholders

* tweak web header

* one more...

* remove extra loading states from chat

* limit line count for display name

* Tweaks styles (#3949)

* Adjust sizing

* Consistent font size

* Adjust header

* oops

* fix accessibility in list

* don't use `identifier` for notifications, use `dates` instead

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-10 08:09:00 -07:00
Hailey 1a90426026
[🐴] Remove extra spinner states from chat screen (#3947)
* remove extra loading states from chat

* nits

* fix scrolling animation to bottom

* nit

* move spinner to top
2024-05-10 07:49:08 -07:00
Eric Bailey 195c9f1045
[🐴] Handle errors, improve styling (#3937)
* Handle errors, improve styling

* Remove old UI
2024-05-10 08:23:37 -05:00
dan 6e172b6ce3
[Session] Restore emailAuthFactor and emailConfirmed from last session (#3939) 2024-05-09 16:05:44 -07:00
Eric Bailey 55fdbc7399
Add retries to all handlers (#3935) 2024-05-09 16:31:36 -05:00
Samuel Newman becc708c61
[🐴] Rich text in messages (#3926)
* add facets to message

* richtext messages

* undo richtexttag changes

* whoops, don't redetect facets

* dont set color directly

* shorten links and filter invalid facets

* fix link shortening

* pass in underline style
2024-05-09 21:08:56 +01:00
Samuel Newman 03b2796976
lowcase ALT text (#3934) 2024-05-09 20:58:22 +01:00
Hailey 17e3b946cb
Handle push notifications for DMs (#3895)
* add some better handling for notifications

prep merge

move `useNotificationsListener` into shell

progress

better structure

only show messages notifications while using app if it is the current account

progress

only emit on native

current chat emitter

only show alerts for the current chat

type

add logs

setup handlers

* remove event emitter

* just needs cleanup

* oops

* remove unnecessary `queryClient` param

* few fixes

* cleanup

* nit

* remove folds

* remove comment

* simplify if

* add back invalidate

* comment out other navigations for now

* rename type

* handle various navigation cases

* push to conversation from notification

* update badge in all cases except `chat-message`

* ensure no duplicate notifications

* rm unused `animationOnReplace`

* revert to using `goBack` in the conversation header

* add todo comment
2024-05-09 10:04:05 -07:00
Eric Bailey 1341845537
Add gate, a:a swap onboarding state (#3930) 2024-05-09 11:34:36 -05:00
Hailey 2fe76333bc
[🐴] Add hover context menu for convo list on web (#3923)
* remove some unnecessary props

* add hover trigger on web for convo list

* lint

* use `UserAvatar` to not affect accessibility

* remove extra wrapper

* add `label`

* always show on mobile

* adjust size of dots

* make the message trigger dots the same size

* 
2024-05-09 09:07:57 -07:00
Samuel Newman 55ac287d5e
[🐴] Skeleton header (#3921) 2024-05-08 17:08:24 -07:00
Eric Bailey 3bac0182b5
[🐴] Integrate event bus (#3915)
* Integrate event bus

* Fixes

* Move events mgmt into Convo class

* Clean up poll interval updates

* Remove unused

* Remove annoying log
2024-05-08 18:01:07 -05:00
Eric Bailey ce2eddca8e
[🐴] Refactor event bus (#3919)
* Refactor to singleton class outside react

* Fix retry, remove debug logs
2024-05-08 17:41:10 -05:00
dan 0c6bf276dd
Replace updateCurrentAccount() with refreshSession() (#3910)
Replace updateCurrentAccount() with resumeSession()
2024-05-08 23:11:39 +01:00
Hailey f62b0458a7
[🐴] Adjust press and hold delay on messages (#3918)
* adjust press and hold delay on messages

* adjust hit slop
2024-05-08 13:56:36 -07:00
Samuel Newman 701e508a1a
add sideborders prop (#3920) 2024-05-08 21:44:49 +01:00
Samuel Newman 750a5c899b
actually optimistic mark as read (#3917) 2024-05-08 21:19:45 +01:00
Eric Bailey 7d06fb9432
Move to requestPollInterval handling (#3914) 2024-05-08 11:34:04 -05:00
Samuel Newman 38198fdf7f
[🐴] Mark as read in convo menu (#3913)
* add mark as read option

* optimistic update + link up menu

* rm messageid
2024-05-08 15:48:05 +01:00
Eric Bailey 56f713077f
[🐴] Reorg convo files (#3909)
* Remove unused prop

* Reorganize
2024-05-07 19:46:59 -07:00
dan 814ec2bd7f
Add session reducer tests (#3860) 2024-05-08 03:34:35 +01:00
dan 0910525e2e
[Session] Code cleanup (#3854)
* Split utils into files

* Move reducer to another file

* Write types explicitly

* Remove unnnecessary check

* Move things around a bit

* Move more stuff into agent factories

* Move more stuff into agent

* Fix gates await

* Clarify comments

* Enforce more via types

* Nit

* initSession -> resumeSession

* Protect against races

* Make agent opaque to reducer

* Check using plain condition
2024-05-08 03:30:55 +01:00
Samuel Newman 4fe5a869c3
[🐴] Unread messages badge (#3901)
* add badge

* move stringify logic to hook

* add mutation hooks

* optimistic mark convo as read

* don't count muted chats

* Integrate new context

* Integrate mark unread mutation

* Remove unused edit

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-07 21:23:09 -05:00
dan 0c41b3188a
[Session] Remove global agent (#3852)
* Remove logs and outdated comments

* Move side effect upwards

* Pull refreshedAccount next to usage

* Simplify account refresh logic

* Extract setupPublicAgentState()

* Collapse setStates into one

* Ignore events from stale agents

* Use agent from state

* Remove clearCurrentAccount

* Move state to a reducer

* Remove global agent

* Fix stale agent reference in create flow

* Proceed to onboarding even if setting date fails

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-08 03:10:03 +01:00
Eric Bailey 31a8356aef
Handle invalid service URLs (#3908) 2024-05-07 21:09:02 -05:00
Eric Bailey 165fdb7049
[🐴] Integrate global event bus (#3904)
* Conditionally run global event bus

* Add current convo id context, bundle providers
2024-05-07 20:25:58 -05:00
Eric Bailey 53d844495b
Remove messages provider (#3902) 2024-05-07 18:29:06 -05:00
Eric Bailey f78126e01a
[🐴] State transitions (#3880)
* Handle init/resume/suspend/background and polling

* Add debug and temp guard

* Make state transitions sync

* Make init sync also

* Checkpoint: confusing but working state machine

* Reducer-esque

* Remove poll events

* Guard fetchConvo

(cherry picked from commit 8385579d31500bb4bfb60afeecdc1eb3ddd7e747)

* Clean up polling, make sync

(cherry picked from commit 7f75cd04c3bf81c94662785748698640a84bef51)

* Update history handling

(cherry picked from commit b82b552ba4040adf7ead2377541132a386964ff8)

* Check for screen focus in app state listener

* Get rid of ad-hoc status checks
2024-05-07 17:54:52 -05:00
Eric Bailey 87cb4c105e
[🐴] Global event mgmt (#3897)
* Add global event bus for messages logs

* Add rev to state

* Better handle error

* Clean up polling, add backgrounding

* Add trailConvo method

* Extend polling until we're ready for this
2024-05-07 17:54:34 -05:00
Paul Frazee 0625a914bd Run intl:extract 2024-05-07 14:15:34 -07:00
Minseo Lee c6d30f671a
Remove unnecessary Trans tags (#3888) 2024-05-07 20:06:39 +01:00
Samuel Newman 7d72dfb1cb
[GIFs] Restore default alt text (#3893)
* 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>
2024-05-07 20:05:40 +01:00
Minseo Lee af77574b3c
Update Feed.tsx (#3715) 2024-05-07 11:09:22 -07:00
Minseo Lee b1a1ca98e8
Update Feeds.tsx (#3719) 2024-05-07 11:07:57 -07:00
kodebanget 3cca5f04d6
Update Indonesian translation (#3891)
* Update Indonesian translation

* Update id/messages.po

---------

Co-authored-by: Indonesian <github-actions@github.com>
2024-05-07 10:33:59 -07:00
Minseo Lee 7f88ec7ca5
Update WhoCanReply.tsx (#3720) 2024-05-07 10:20:05 -07:00
Hailey 790a9c4fad
fix bad bool check in action (#3885)
* fix bad bool check in action

* add `fetch-depth` so we can get the commit hash

* `.env` should be in `.easignore` 🙃
2024-05-06 20:13:12 -07:00
Jan-Olof Eriksson 92f6665f93
Finnish translation update (#3755)
* Update messages.po

Translated new strings (GIF's etc) and cleaned up deprecated ones.

* Update messages.po

resolve conflict

* Update messages.po

removed double quotes. Thanks @lapanti
2024-05-06 20:08:36 -07:00
Minseo Lee 2ea9e2c929
Improve localization marks (#3285)
* Update Lightbox.tsx

* Change strings for easier localization

* Update DeleteAccount.tsx

* Update LabelsOnMeDialog.tsx

* Update FeedCard.tsx

* Update index.tsx

* Update LabelsOnMeDialog.tsx

* Update index.tsx

* Update FeedCard.tsx

* Update SelfLabel.tsx

* Update Hashtag.tsx

* Update index.tsx

* Update Hashtag.tsx

* Update ChangeHandle.tsx

* Update index.web.tsx

* Update index.web.tsx

* Update index.tsx

* Remove unnecessary `<Trans>` tags

* Update Drawer.tsx
2024-05-06 19:58:04 -07:00
Paul Frazee 4fad18b2fa
Implement FeedFeedback API (#3498)
* 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>
2024-05-07 03:08:33 +01:00
Paul Frazee 032f849092 Protect against missing element 2024-05-06 18:06:31 -07:00
Paul Frazee 0a8dc289ff Merge branch 'web-loading' of https://github.com/TuxPenguin09/bsky-social-app into TuxPenguin09-web-loading 2024-05-06 17:51:51 -07:00
Paul Frazee 901feba6db
Replace pluralize by plural by @tkusano (#3882)
* Replace pluralize with plural or Plural
* Replace all pluralize (defined by src/lib/strings/helpers.ts) with plural or Plural (defined by @lingui/macro) to make some UI elements translatable.
* Delete pluralize() and related test.

* Import @formatjs polyfill libraries for plural on ios and android

- ios and andorid: import `@formtjs/intl-locale` and `@formatjs/intl-pluralrules` to polyfill `Intl.Locale` and `Intl.PluralRules` which are used in `plural()` and '<Plural />'.
- update `plural` use in notification messages for better translation.

* Rewrite to pass lint

* Add Catalan plural polyfill

* more replacement

* import zh plural data for zh-CN

* Refactor feed header components (#2964)

* Move home-related files to view/com/home

* Add HomeHeader in front of FeedTabBar

* Move isDekstop check outside FeedsTabBar

* Remove PWI logic from tabbar

* Separate platform-specific layout from shared logic

* Rename Home Feed Prefs to Following Feed Prefs (#2965)

* use `useOpenLink` hook for links in ALF (#2975)

* use `useOpenLink` hook for links in ALF

* web only for `outline`

* increase timeout to 15s (#2958)

* Normalize relative day (#2874)

* fix: normalize relative date

* chore: add comments

* refactor: skip flooring normalized diff

* refactor: let -> const

* fix: get own copy of date to prevent mutating

* refactor: rounding does the same trick

* Add handle validation to create account UI (#2959)

* show uiState errors in the box as well

simplify copy

update ui for only letters and numbers

add ui validation to handle selection

* simplify names

* Fix accidental text-node render

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>

* Make dim theme dim (#2966)

* Make dim color scheme dim

* Tweaks

* Overall tweaks

* We have to go darker

* Tweak saturation of blues in dim

* Increase contrast on dark-dark mode

* adjust dim

---------

Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>

* Fix dim mode unread notif color

* use `showControls` to show/hide live text icon on ios (#2982)

* Update .po files

* fix reversed icons in validator 🤦 (#2991)

* Adjust `windowSize` on `PostThread` `FlatList` (#2989)

* adjust window size, cells batching period

* rm batching period change

* Pluralize 'follow(s)'

* Include a space between the msgid count and "follower(s)/following(s)" so the translator can adjust the translated count line to fit within the Drawer.

* pluralie '# following'

* Fix & Update

* Rewrite to use Plural

* rmeove unused import

* When commiting changes, disable 'simple-import-sort' plugin in .eslintrc.js to sync with bluesky-social:main

* Revert simple-import-sort/imports related changes

* Move ProfileHoverCard web to plural util

* Followings -> following

* Add plural following to hovercard

* Followings -> Following

---------

Co-authored-by: Takayuki KUSANO <kusano@tkusano.jp>
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
Co-authored-by: dan <dan.abramov@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-06 16:55:57 -07:00
Paul Frazee fe82257801 Dont leave promise unresolved 2024-05-06 15:44:19 -07:00
Paul Frazee e1940983a3 Merge branch 'fix-banner-cropper' of https://github.com/piotrpalek/social-app into piotrpalek-fix-banner-cropper 2024-05-06 15:30:54 -07:00
Samuel Newman 136b0e12ab
make gif alt text prompt selectable (#3879) 2024-05-06 22:14:00 +01:00
Hailey fdb5ffff53
remove trailing period from query term in `useActorAutocompleteQuery` (#3765)
* remove trailing period from query term

* Rm useMemo

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-05-06 22:04:47 +01:00
Hailey 99f3f10fe7
A few `containWeb` List nits (#3877)
* use getters for returned values

* pass ref

* add log to `onScroll` in tester

* improve expect error
2024-05-06 21:45:14 +01:00
Eric Bailey 0b6ace990e
[Clipclops] All my clops gone (#3850)
* Handle two common errors, provide more clarity around error states

* Handle failed polling

* Remove unused error type

* format
2024-05-06 15:35:05 -05:00
Ivan Beà 2a1dbd2756
Update catalan messages.po (#3764)
Translate new lines, messages are coming! 
You can check it @jordimas @darccio @ferranrego @MiquelAdell @mvdan @johnnydement @Mejans @surfdude29
2024-05-06 13:27:08 -07:00
Minseo Lee a9feba4efd
Update Korean localization (#3809)
* Update messages.po

* Update messages.po

* Update messages.po
2024-05-06 13:26:32 -07:00
Takayuki KUSANO 5cfe5d4f58
Update Japanese translations (#3810)
* Update Japanese translations

* Updated Japanese translation

* Updated Japanese translation

* Update Japanese translations

* Updated based on @Hima-Zinn's suggestion
2024-05-06 13:25:59 -07:00
Frudrax Cheng c90443b37a
Update zh-TW translations (#3873)
* 修正及改進翻譯

* Epic zh-TW rebrand

* small fix

* remove reundant "設定" for "偏好"

* legacy for "殘存"

* Update Translator

---------

Co-authored-by: Kuwa Lee <kuwalee1069@gmail.com>
2024-05-06 13:25:07 -07:00
Hailey b34d224207
remove `hide_vertical_scrollbars` test (#3855) 2024-05-06 20:59:36 +01:00
Hailey db0b030359
show spinner when preferences has not loaded yet (#3756) 2024-05-06 20:58:03 +01:00
Samuel Newman c33c3b7d1e
Alt text for gifs (#3876)
* 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
2024-05-06 17:28:38 +01:00
Hailey ae7626ce6e
[🐴] Finalize web message screen (#3868)
* 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`
2024-05-06 08:48:08 -07:00
Hailey bc07019911
Further align web `List` with `FlatList`, add `contain` mode to web list 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
2024-05-06 08:34:32 -07:00
Hailey 594b40c3ae
Fix `IntersectionObserver` `rootMargin` in web `List` implementation, add `onStartReached` (#3866)
* add `onStartReached` to web list

* fix `rootMargin`
2024-05-05 04:24:01 -07:00
Hailey 6b615f3720
only use `KeyboardProvider` in conversation screen (#3869) 2024-05-05 03:14:14 -07:00
Hailey c4160c25a3
[Clipclops] Delete message in dialog (#3849)
* delete and copy

* add retry dialog if message send fails

* add layout animation

* fix `nextMessage` being incorrect

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-05-05 02:06:10 +01:00
Samuel Newman 7448c8f785
[🐴] Improve message pressing (#3864)
* allow tapping message when keyboard open

* dismiss keyboard on open msg menu

* show message info on press

* Revert "show message info on press"

This reverts commit 61d039a7024c27583aed7d1e9f1ff5b919dc7d30.
2024-05-05 01:13:57 +01:00
Hailey 91f8202549
fix typo in `app-info` (#3863) 2024-05-04 16:45:59 -07:00
Samuel Newman 9b7818d358
[🐴] Dismiss keyboard before opening convo menu (#3862)
* Dismiss keyboard before opening convo menu

* call `props.onPress()` instead
2024-05-05 00:39:52 +01:00
Hailey 4862bc2ba8
add bundle identifiers to app-info (#3861)
* add bundle identifiers to `app-info`

* add them to the `.env.example`

* add environment variables for docker build

* add environment variables for native builds and bundles

* also include the hour in bundle date

* organize app info better in settings
2024-05-04 16:33:10 -07:00
Hailey eb55bdf172
[🐴] List Adjustments (#3857) 2024-05-04 13:22:14 -07:00
Samuel Newman c223bcdaf7
Assorted clipclop fixes (#3853)
* 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
2024-05-04 01:49:49 +01:00
Hailey feff55a14a
Clipclop tweaks (#3851)
* scroll on input resize

* add back the padding 🙊

* fix timestamps
2024-05-03 15:08:59 -07:00
Hailey 876816675e
[Clipclops] Refactor message list (#3832)
* rework the list for accessibility

* Reverse reverse

* progress

* good to start testing

* memo `MessageItem`

* small hack

* use our custom `List` impl

* use `ScrollProvider` for `onScroll` event

* remove use of `runOnJS`

* actually, let's keep it

* add some comments

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-03 14:18:01 -07:00
Samuel Newman 6a4199febb
[Clipclops] Pending message style with layout animation (#3844)
* decrease group gap to 3 mins

* pending style with layout animation

* make pending state lighter
2024-05-03 20:19:48 +01:00
Samuel Newman 55f3df5596
reenable tabs (#3847) 2024-05-03 20:14:10 +01:00
Samuel Newman ce02a41163
add focus refresh + polling (#3846) 2024-05-03 17:57:20 +01:00
dan 4a2d4253e5
[Session] Align state and global agent switchpoints (#3845)
* Adopt synced accounts unconditionally

* Remove try/catch around resuming session

* Move to login form on resume failure

* Restructure code flow for easier reading

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-03 17:57:09 +01:00
dan 85b34418ef
Don't clear toasts when changing users (#3843)
* Move ThemeProvider to the top

* Move RootSiblingParent above the remounted part

* Move ToastContainer outside the remounted part

* Remove setTimeout around toasts

* Consistently handle dropped session
2024-05-03 16:36:58 +01:00
Samuel Newman aeed4786db
make service url gate friendlier (#3841) 2024-05-03 16:32:20 +01:00
Samuel Newman 67b0cdf649
remove broken keyboard offset code (#3842) 2024-05-03 16:14:25 +01:00
Samuel Newman 997e621ce3
[Clipclops] Header tweaks (#3839)
* wrap text

* add dividers to convo menu
2024-05-03 15:55:35 +01:00
Samuel Newman a5511e3c22
update date logic to account for timezones (#3840) 2024-05-03 15:55:24 +01:00
Eric Bailey 051e897a2b
[Clipclops] Moar error (#3837)
* Add history error

* Log error

* Add period
2024-05-03 09:39:40 -05:00
dan 1e484c6318
[Session] Reset global agent on expire (#3838) 2024-05-03 13:46:34 +01:00
dan cdf7a1957a
[Session] Rely on agent session change event for persisting resumed session (#3836)
* Rely on agent session change handler for resumption

* Add a fast path for noop resumes
2024-05-03 03:47:11 +01:00
Eric Bailey c9cf608f78
[Clipclops] External store, suspend/resume (#3829)
* Initial working external store

* Clean up WIP, explore suspend/resume

* Clean up state, bindings, snapshots, add some logs

* Reduce snapshots, add better logic check

* Bump interval a smidge

* Remove unused type
2024-05-02 20:57:51 -05:00
dan c13685a0cf
[Session] Fix stale emailAuthFactor and emailConfirmed on the client (#3835)
* Fix account refresh to not clobber falsy values

* Use ?? in more places
2024-05-03 02:52:37 +01:00
dan 0f827c3213
[Session] Track agent in state (#3833)
* Expand currentAccountDid into currentAgentState

* Inline all callsites of upsertAccount

* Inline all internal callsites of clearCurrentAccount

* Add agent to currentAgentState

* Collapse extra setStates

* Add TODOs
2024-05-03 02:04:36 +01:00
Samuel Newman a9af83692c
visually align icon (#3831) 2024-05-03 01:28:03 +01:00
dan 6405ad7cba
[Session] Call persist handler directly (#3828) 2024-05-02 23:05:53 +01:00
dan b86c3b486f
Improve account switcher pending state (#3827)
* Protect against races

* Reduce UI jank when switching accounts

* Add pending state to selected account

* Disable presses while pending
2024-05-02 21:55:50 +01:00
Hailey 8ba1b10ce0
[Clipclops] Message actions for native and web (#3807)
* haptic on long press

* add animation to press and hold

* eslint disable for now

* adjust styles

* dont trigger if animation is cancelled

* organize

* add a delete menu

* reset scale automatically

* message actions dialog

cleanup

center the trigger

handle focus/unfocus better

make triggers accessible

weg dropdown menu

add a wep specific wrapper

decrease press delay

add report button

improve shrink logic

use `self_end` instead of `margin: auto`

rm extra `?`

move `MessageItem` to `components`

add delete button

* rm some padding

* update after merge

* fix merge

* web only types

* fix crash

* add an explanation

* fix web types

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-05-02 13:54:17 -07:00
Samuel Newman 6da18e3dcf
Only run "disable min shell on foregrounding" behaviour if on the home screen (#3825)
* change useEffect to useFocusEffect

* v2 -> v3
2024-05-02 21:27:54 +01:00
Samuel Newman 96c5db3e69
create keyboardverticaloffset hook (#3823) 2024-05-02 21:05:11 +01:00
Samuel Newman aca55cb192
rename "MessagesList" to "Messages" (#3826) 2024-05-02 21:02:45 +01:00
Eric Bailey a20fe4c9a0
[Clipclops] Deletions (#3824)
* Handle message deletions

* Handle failures
2024-05-02 13:12:34 -05:00
dan 1a07e23192
[Session] Extract selectAccount out (#3812) 2024-05-02 18:25:09 +01:00
dan 5ec945b762
[Session] Extract resumeSession out (#3811) 2024-05-02 18:17:53 +01:00
Samuel Newman dadf27fd2f
[Clipclops] Minor web tweaks (#3822)
* add a11y + onPress to web send button

* only adjust leading on web, due to overflow issue
2024-05-02 18:00:42 +01:00
Samuel Newman bff055f618
[Clipclop] Input polish (#3819)
* tweak input styles + add min-shell mode

* android tweaks + hitslop
2024-05-02 17:08:41 +01:00
Hailey e977c99c96
[Clipclops] rm `<Trans>` from header (#3818) 2024-05-02 08:54:12 -07:00
Eric Bailey c2062753c5
Allow unmuting and unblocking of curate lists, but not the opposite (#3817) 2024-05-02 10:17:17 -05:00
aliamanuba c303df5bd6
Added Preload for Web
- Bluesky logo in the center when a new visitor or shift+refresh by browser client
2024-05-02 19:24:35 +08:00
Hailey cc9727a844
[Clipclops] Remove viewability config (#3805)
* remove viewability config

* use `onScroll` for keeping track of content offset
2024-05-01 16:26:19 -07:00
Samuel Newman e19f882450
[Clipclops] Clop menu, leave clop, mute/unmute clop (#3804)
* convo menu

* memoize convomenu

* add convoId to useChat + memoize value

* leave convo

* Create mute-conversation.ts

* add mutes, remove changes to useChat and use chat.convo instead

* add todo comments

* leave convo confirm prompt

* remove dependency on useChat and pass in props instead

* show menu on long press

* optimistic update

* optimistic update leave + add error capture

* don't `popToTop` when unnecessary

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-05-02 00:15:10 +01:00
Paul Frazee d3fafdc066
Fix: put label defs provider above moderation opts provider (#3806) 2024-05-01 15:59:19 -07:00
Eric Bailey 5148b957b7
[Clipclops] Pending messages (#3803)
* Make pending message like normal message

* Remove getter

* Make props public
2024-05-01 16:29:34 -05:00
Samuel Newman e2556d9f40
[Clipclops] Replace 🐴 with real icon (#3802)
* replace 🐴 with paper plane icon

* replace envelope with plus
2024-05-01 21:49:10 +01:00
Eric Bailey fc0eab2d03
Retry clops (#3800)
* Add convo retries, sketch out tests

* Only append nextMessage to messages

* Remove debug code
2024-05-01 15:24:56 -05:00
Hailey 333ccdad39
[Clipclops] Dynamic input height (#3778)
* input max height/scrollability

* remove unused imports

* add a web-specific version

* enter and shift enter for web

* missing onSubmit for native

* missing attributes

* improve layout of input on web

* use the correct text color in the input

* trim messages

* remove `onSubmit`

* move prop up

* trim message on web

* remove extra function call

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-05-01 20:42:11 +01:00
Hailey 6f9993ca55
[Clipclops] Fix list, rework structure (#3799)
* proper min index

* move keyextractor out of react

* move onSendMessage out

* don't render the flatlist conditionally

* add loader

* rework structure

* remove some unneeded logic
2024-05-01 11:48:19 -07:00
Samuel Newman 8304ad91ac
add header to empty chat list view (#3791) 2024-05-01 18:43:54 +01:00
Eric Bailey 538ca8dff1
[Clipclops] 2 Clipped 2 Clopped (#3796)
* Add new pkg

* copy queries over to new file

* useConvoQuery

* useListConvos

* Use useListConvos

* extract useConvoQuery

* useGetConvoForMembers

* Delete unused

* exract useListConvos

* Replace imports

* Messages/List/index.tsx

* extract getconvoformembers

* MessageItem

* delete chatLog and rename query.ts

* Update import

* Clipclop service (#3794)

* Add Chat service

* Better handle deletions

* Rollback unneeded changes

* Better insertion order

* Use clipclops

* don't show FAB if error

* clean up imports

* Update Convo service

* Remove temp files

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-05-01 10:14:41 -07:00
dan d61b366b26
[Session] Derive currentAccount from accounts + currentAccountDid (#3795)
* Derive currentAccount from accounts and currentAccountDid

* Add TODOs for divergence with __globalAgent
2024-05-01 17:35:27 +01:00
dan df9af92eb2
[Session] Use flag on state for persistence (#3793)
* Move isInitialLoad and isSwitchingAccounts out of main state

* Remove spreads, order object keys

* Track need to persist on state object

* Reoder state variables
2024-05-01 17:26:33 +01:00
Samuel Newman a6061489ff
replace getDate with toIsoString().slice(0,10) (#3792) 2024-05-01 15:50:30 +01:00
Samuel Newman 09f3b2ae14
[Clipclops] Improve message list behaviour (#3789)
* improve message list behaviour

* replace useAgent with useSession

* add explicit types to appease linter
2024-05-01 15:16:54 +01:00
Hailey b8d8bec388
sentry errors for captcha web views and registration attempts (#3761)
* sentry errors for captcha web views

* include handles with errors

* log all registration request failures

* rm

* use a better trigger for web captcha errors

* add another trigger for recording a possible signup error

* unknown error type

* don't needlessly log on href errors

* honestly i probably cant always do a captcha in 20 seconds

* rm log

* timeout on back

* remove unnecessary colons
2024-05-01 01:08:59 -07:00
Samuel Newman 81ae7e425d
Add kawaii mode (#3773) 2024-05-01 08:59:40 +01:00
dan 181e61bedb
Memoize context value (#3786) 2024-05-01 05:35:52 +01:00
Paul Frazee 31cb3e5422
Performance improvements: structural sharing & moderation opts context (#3785)
* Fix: correctly apply structural sharing to preferences object

* Move moderation opts into a context

* Fix import

* Remove log

* Pass userdid directly

* Pass moderationPrefs directly
2024-04-30 21:06:51 -07:00
dan 39807a8630
[Session] Refactor to prepare for V2 (#3781)
* Move types to another file

Co-authored-by: dan <dan.abramov@gmail.com>

* Move utilities out

Co-authored-by: dan <dan.abramov@gmail.com>

* Move PUBLIC_BSKY_AGENT

Co-authored-by: dan <dan.abramov@gmail.com>

* Move createPersistSessionHandler inline

Co-authored-by: dan <dan.abramov@gmail.com>

* Call configureModeration when clearing account too

This ensures that the app labelers get reset in a test environment.

Co-authored-by: dan <dan.abramov@gmail.com>

* Make guest configureModeration sync, non-guest async

* Extract isSessionExpired

Co-authored-by: dan <dan.abramov@gmail.com>

* Flip isSessionExpired condition

Co-authored-by: dan <dan.abramov@gmail.com>

* Extract agentToSessionAccount

Co-authored-by: dan <dan.abramov@gmail.com>

* Extract createAgent*

Co-authored-by: dan <dan.abramov@gmail.com>

* Simplify isSessionExpired

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-01 02:55:43 +01:00
dan 66ad5543f1
[Session] Move deactivated field off the session object (#3780) 2024-05-01 01:36:56 +01:00
dan 339f26567a
[Session] Consistently copy SessionAgent fields (#3779)
Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-01 01:13:55 +01:00
Samuel Newman 80bcf81dc5
[Clipclops] Separate messages if there's a time gap (#3777)
* separate msg groups by age

* clean up logic and add comments
2024-04-30 23:40:26 +01:00
Hailey db968b7610
[Clipclops] Header for chat (#3775)
* add temp `getchat` query

* properly get the other profile

* add basic header

* normalize layout on all devices

* remove unused imports, adjust style

* remove unnecessary log

* remove another log

* remove some more imports

* cleanup

* use `Button` instead in the header

* lint
2024-04-30 15:04:17 -07:00
Hailey 268e30d21a
[Clipclops] adjust scroll position, keyboard color (#3771)
* use the correct keyboard appearance based on theme

* i guess the min index should be 1
2024-04-30 11:33:41 -07:00
Samuel Newman 611ff0c7e4
[Clipclops] Add clop sent time to clipclop (#3772)
* add message sent time to message

* fix last message in group logic
2024-04-30 19:31:30 +01:00
Samuel Newman 7b694fd860
[Clipclops] Use API data for clipclop list (#3769)
* use real API

* remove extra tab icon

* messages list web layout + style improvements

* use style's text color for input

* make new chat button way more obvious

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-04-30 18:15:48 +01:00
Samuel Newman bcd3678067
[Clipclops] New clipclop dialog (#3750)
* add new routes with placeholder screens

* add clops list

* add a clop input

* add some better padding to the clops

* some more adjustments

* add rnkc

* implement rnkc

* implement rnkc

* be a little less weird about it

* rename clop stuff

* rename more clop

* one more

* add codegenerated lexicon

* replace hailey's types

* use codegen'd types in components

* fix error + throw if fetch failed

* remove bad imports

* update messageslist and messageitem

* import useState

* replace hailey's types

* use codegen'd types in components

* add FAB

* new chat dialog

* error + default search term

* fix typo

* fix web styles

* optimistically set chat data

* use cursor instead of last rev

* [Clipclops] Temp codegenerated lexicon (#3749)

* add codegenerated lexicon

* replace hailey's types

* use codegen'd types in components

* fix error + throw if fetch failed

* remove bad imports

* update messageslist and messageitem

* import useState

* add clop service URL hook

* add dm service url storage

* use context

* use context for service url (temp)

* remove log

* cleanup merge

* fix merge error

* disable hack

* sender-based message styles

* temporary filter

* merge cleanup

* add `hideBackButton`

* rm unneeded return

* tried to be smart

* hide go back button

* use `searchActorTypeahead` instead

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-04-30 17:43:57 +01:00
dan 2b7d796ca9
Session fixes, pt. 1 (#3762)
* Update persisted schema for new source of truth, implement in existing session

(cherry picked from commit b1e5f12baee932721d66c60dd51c981b46b0c274)

* Improve toasts, log caught error, during switch account

(cherry picked from commit fe0d1507063d2e532b7b1a447670b689292d1dc3)

* Handle thrown errors from initSession during login

(cherry picked from commit 2c85c045917e923901284b9ba310a82e28f37b5c)

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2024-04-30 17:38:05 +01:00
Samuel Newman 4de78fb69e
use keyboardDismissMode rather than onScrollBeginDrag (#3767) 2024-04-30 16:11:41 +01:00
Hailey eb8bfd11d1
[Clipclops] Add screen to view and send clip clops (#3754)
* add new routes with placeholder screens

* add clops list

* add a clop input

* add some better padding to the clops

* some more adjustments

* add rnkc

* implement rnkc

* implement rnkc

* be a little less weird about it

* rename clop stuff

* rename more clop

* one more

* [Clipclops] Temp codegenerated lexicon (#3749)

* add codegenerated lexicon

* replace hailey's types

* use codegen'd types in components

* fix error + throw if fetch failed

* remove bad imports

* update messageslist and messageitem

* import useState

* add clop service URL hook

* add dm service url storage

* use context

* use context for service url (temp)

* remove log

* nits

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2024-04-29 23:34:26 -07:00
dan 42966fb49e
Fix List onMomentumScrollEnd (#3759) 2024-04-29 23:38:03 +01:00
Paul Frazee 28fc98d942
Release 1.80 (#3757)
* Test fixes

* Intl extract
2024-04-29 15:00:25 -07:00
Frudrax Cheng 599dab1c7a
Update zh-TW translations (#3678)
* consistent improvements

* update messages.po

* improve translation

* improve translation

* fix punctuation issues

* remove superseded strings

* GIFs to GIF

* modify according to review suggestions

* fix some misnomers

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* modify according to review suggestions

* modify according to review suggestions

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update src/locale/locales/zh-TW/messages.po

Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* Update messages.po

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>

* modify according to review suggestions

* a small adjustment

---------

Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>
Co-authored-by: Yuki Cheung <13027432+snowleo208@users.noreply.github.com>
2024-04-29 14:54:17 -07:00
Gabriella 6dd2e07ab9
Italian localization (#3684)
* Add files via upload

* Update messages.po

Changed the grama of string

* Update messages.po

Following the input of @niconick89.bsky.social I have added additional correction to some of the strings.
2024-04-29 14:53:45 -07:00
Ivan Beà 983d9e55b3
Update catalan messages.po (#3697)
* Update catalan messages.po

New lines translated
You can check it @jordimas @darccio @ferranrego @MiquelAdell @mvdan @johnnydement @Mejans @surfdude29

* Update messages.po

Remove extra space

* Update messages.po
2024-04-29 14:53:13 -07:00
Minseo Lee c8aa16e90e
Update Korean localization (#3698)
* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po

* Update messages.po
2024-04-29 14:52:39 -07:00
Takayuki KUSANO c2fff6a861
Update Japanese translation (#3734)
* Remove old old onboarding related entries

cf. https://github.com/bluesky-social/social-app/pull/3674

* Update Japanese translation

(accessibilityLabel & accessibilityHint)
cf. https://github.com/bluesky-social/social-app/pull/3670

* Update Japanese translation

* Fix Japanase translation related to block
2024-04-29 14:52:15 -07:00
Frudrax Cheng f3c32f9996
Update zh-CN translations (#3716)
* fix punctuation issues

* improve translation

* remove superseded strings

* update messages.po

* fix typo

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* Update src/locale/locales/zh-CN/messages.po

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>

* update language-team

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

* Update messages.po

Co-authored-by: Leonid <kasumi@bangdream.moe>

---------

Co-authored-by: IceCodeNew <32576256+IceCodeNew@users.noreply.github.com>
Co-authored-by: Leonid <kasumi@bangdream.moe>
2024-04-29 14:51:41 -07:00
Eric Bailey a4e34537ce
Send Bluesky feeds and suggested follows more data (#3695)
* WIP

* Fix constructors

* Clean up

* Tweak

* Rm extra assignment

* Narrow down the argument

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-29 22:04:35 +01: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
Piotr P bf7aee19b8 add missing cropImageUtil file 2024-04-27 14:59:00 +02:00
Piotr P beddddcb57 hide alternative ratio buttons when using custom ratio 2024-04-27 14:31:51 +02:00
Piotr P bc956803b8 allow for custom cropper aspect ration based on image 2024-04-27 14:31:45 +02:00
Piotr P ebd333b331 Fix cropper crashing after clicking cancel 2024-04-27 14:31:39 +02:00
Piotr P ae26963b45 eslint autofixes 2024-04-27 14:31:33 +02: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 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
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
dan 861804629a
[GIFs] Remove consent flow (#3652)
* Remove tenor from settings

* Remove consent flow
2024-04-23 00:18:03 +01:00
Samuel Newman 76449fb6ef
[GIFs] Replace GIPHY with Tenor (#3651)
* replace GIPHY with Tenor

* remove "directly" wording

* replace GIPHY wording

* remove log
2024-04-22 23:39:32 +01:00
Hailey 1a4e05e9f9
properly close the switch account dialog (#3558)
* properly close the switch account dialog

* use it for switch account as well

* ensure dialog is closed on unmount

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

* Revert "ensure dialog is closed on unmount"

This reverts commit a48548fd8ed53ae3eb08a0e05bb89f641c112b95.
2024-04-22 22:46:05 +01:00
Samuel Newman f49d73dd00
[GIFs] Reset scroll on query change (#3642)
* scroll list to top on query change

* dismiss keyboard on swipe list

* don't need an effect
2024-04-22 22:18:39 +01:00
surfdude29 0b3cc59019
Update French translations (#3644)
* Update French translations

* Apply suggestions from code review

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>

---------

Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
2024-04-22 14:13:10 -07:00
Samuel Newman f4e72cc83c
[GIFs] Add error boundary to GIF picker (#3643)
* 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>
2024-04-22 22:07:48 +01:00
Samuel Newman 27c4054fcb
Revert "Add layout transitions to the composer photo gallery on iOS (#3609)" (#3649)
This reverts commit 1a5b8b2c94.
2024-04-22 21:56:40 +01:00
Jan-Olof Eriksson 94ea2a3e56
Update Finnish translations (#3630)
* Update messages.po

Repostausten yhdenmukaistamista

* Update messages.po

* Update messages.po

* Update messages.po

Typos

* Update messages.po

Couple of typos

* Update messages.po

Removed strings that are obsolete and no longer used.

* Update messages.po
2024-04-22 13:48:48 -07:00
Takayuki KUSANO c525974d51
Update Japanese translations (#3632)
* Update Japanese translations

- Add GIPHY related messages
- Add a11y related messagges
- Update a message in empy search screen

* Updated Japanese translation.
2024-04-22 13:48:22 -07:00
Minseo Lee 0e082cb094
Update messages.po (#3639) 2024-04-22 13:47:49 -07:00
Hailey 551e3330b9
remove unnecessary padding from the right hand side of the post in threaded (#3645) 2024-04-22 21:44:01 +01:00
Samuel Newman b09903e3b8
only open tag menu on long press (#3553) 2024-04-22 21:29:29 +01:00
Samuel Newman bcd88b088a
add maxwidth to app language dropdown (#3635) 2024-04-22 21:24:50 +01:00
Hailey 243769e657
remove gate from updates (#3646) 2024-04-22 21:06:25 +01:00
dan ce1c1e1cbe
Search in PWI (#3628) 2024-04-20 00:29:35 +01:00
dan d3c0b48da3
Top/Latest for hashtags (#3625)
* Split HashtagScreen into two components

* Hashtag tabs

* Visual fixes
2024-04-19 23:37:11 +01:00
Hailey c0ca891501
Player improvement pre-reqs (#3618)
* 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
2024-04-19 23:31:20 +01:00
Samuel Newman 22e86c9903
fix onEndReached issue by forcing flatlist to scroll (#3623) 2024-04-19 23:26:04 +01:00
Samuel Newman edbb18afa4
Throttle gif search by 500ms (#3622)
* debounce gif search by 300ms

* Throttle it instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-19 22:55:53 +01:00
Samuel Newman 8b33ffdfb5
Add disable autoplay preference and group related settings into a dedicated page (#3626)
* add autoplay preference

* group accessibility settings into a dedicated page

* fix gray background on web

* Put a11y first

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
2024-04-19 22:10:37 +01:00
dan ade2ea6172
Ungate Top/Latest search (#3627) 2024-04-19 21:58:18 +01:00
dan c42a557417
[Statsig] Send locale info (#3621) 2024-04-19 15:51:41 +01:00
dan 55aea348c2
[Statsig] Update experiments (#3617) 2024-04-19 15:23:47 +01:00