* 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>
* 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>
* 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
* 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
* 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
* 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
* use `scrollTo`
* let the animated reaction handle keyboard scroll
* no need for `requestAnimationFrame` now
* 'worklet'
* nit
* fixes
* more nits
* bool check
* 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
* 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>
* 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
* 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)
* 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
* 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>
* 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
* 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