Commit graph

163 commits

Author SHA1 Message Date
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
Eric Bailey
051e897a2b
[Clipclops] Moar error (#3837)
* Add history error

* Log error

* Add period
2024-05-03 09:39:40 -05: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
Samuel Newman
a9af83692c
visually align icon (#3831) 2024-05-03 01:28:03 +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
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
dan
1a07e23192
[Session] Extract selectAccount out (#3812) 2024-05-02 18:25:09 +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
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
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
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
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
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
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
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
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
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
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
Hailey
5b82b15007
remove use of pointerEvents on iOS profile header (#3694) 2024-04-25 01:24:20 +01: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
dan
d3c0b48da3
Top/Latest for hashtags (#3625)
* Split HashtagScreen into two components

* Hashtag tabs

* Visual fixes
2024-04-19 23:37:11 +01:00
dan
55aea348c2
[Statsig] Update experiments (#3617) 2024-04-19 15:23:47 +01:00
dan
02becdf449
[Statsig] Make gate checks lazily (#3594) 2024-04-18 04:39:29 +01:00