* Fix: mini profile on hover allows following a blocker/blocked user (#4423) (#4440)
* Tweaks
---------
Co-authored-by: Michał Gołda <michal.golda@hotmail.com>
* Add KnownFollowers component to standard profile header
* Prep for known followers screen
* Add known followers screen
* Tighten space
* Add pressed state
* Edit title
* Vertically center
* Don't show if no known followers
* Bump sdk
* Use actual followers.length to show
* Updates to show logic, space
* Prevent fresh data from applying to cached screens
* Tighten space
* Better label
* Oxford comma
* Fix count logic
* Add bskyweb route
* Useless ternary
* Minor spacing tweak
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Only enable keyboard controller when necessary
* make it screen only
* rm keyboard padding
* rm keyboardpadding file
* revert using keyboard controller in composer
* remove styles.outer (unnecessary for revert)
* continue to use keyboard padding in the report dialog for dms
---------
Co-authored-by: Hailey <me@haileyok.com>
* Increase the number of posts loaded when a self-thread is present
* Increase depth to 10, detect cutoffs on self-threads and show continue link
* Stacky the avis
* Move feeds screen into common navigator, handle usages
* Add link to Feeds from home screen (#4366)
* Add link to feeds to home screen header
* Center logo
* Replace icons
* Tweak spacing
* Tweak spacing
* Swap icon, sizing
* Buttonize, size
* Make menu same alignment on all screens
* Remove FeedsTab support, enable drawer swipe on MessagesTab
* Add note
* Vertically align header
* Swap in Pin
* Use hashtag icon
* Remove png
* Fix reference
* Ensure alignment with home and other screens
* register the push token after request has been approved on android
* use a `0` string for badge count
* Revert "use a `0` string for badge count"
This reverts commit efac39861817f4237c58211f68ef266d919b4d40.
* temporary fix
* revert to old modal on android
* close alf dialogs before closing composer
* Try to fix white area
* Use hook
* Fix Back button
* oops
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Sort profile feedgens by likes
* Sort entire set as we get more pages
* Nah
This reverts commit 3b8714fd97bb113cfd8c588d5cdfd063d395f553.
* Update profile-feedgens.ts
---------
Co-authored-by: dan <dan.abramov@gmail.com>
* Fix (#4430): Use separate hooks for shell mode animated styles
* Consolidate in one file
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* keep trying to open keyboard until it's open
* limit number of retries
* keep the original 50ms one as well
* Proper fix!
* disable autoFocus if not visible
* Reset derived state
* Revert "Reset derived state"
This reverts commit 71f57391ae78bac717282e699d1b83cbd87771eb.
* Use derived state pattern
* Rename for clarity
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Update French localizations
* Fix typos in French and misusage of "Ignorer"
Thanks @surfdude29 for the review!
Fixes#4296.
* Bump strings and remove unused one in French
* Translate three new missing strings in French
* Bump strings and trim unused old in French again
* Translate five new missing strings in French again
* Update types
(cherry picked from commit 27deac1f367825771ba76fa098ec1b0a62dcf64a)
* Integrate into deactivate dialog
(cherry picked from commit 84f299a447259cc1fbfc7be607e28197779e4ec1)
* Integrate into Deactivated screen
(cherry picked from commit 29193f34822ecdf11e2a407197fa230285dfe846)
* Bump api sdk
(cherry picked from commit 738c622d3e5a23bfbb0d3bdce3a6bdf01e54ca60)
* Update permalink
(cherry picked from commit c10bf5c071d76c3054bc4ce9d313c10b1820f038)
* Bump sdk pkg
* Update types to match backend
* Loosen types for forwards compat
* Hydrate status from persisted data
* Refresh session when re-activating, clear query cache
* Show app password error
* Refactor dialog to clear state when closed
* Add app password error to Deactivated screen
* replace w/ hairline width
* no border for placeholder
* few notifications screen fixes tablet
* still show the border on desktop
* Simp
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* add profiles to search history
* increasing horizontal padding slightly
* tightening up styling
* fixing navigation issue
* making corrections
* Make the search history profiles a little smaller
* bug stomping
* Fix issues
* Persist taps
* Rm unnecessary
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* reduce side gap + add overflow hidden
also remove the animations since they don't appear in prod, and are kinda broken
* removed fixed height to fix alt text
* native formsheet for gif select
* trigger confirm discard if have gif
* give modal a background color
* fix web top bar - unrelated but I cba to make a separate PR
* Support for Flickr album and group pool embeds
* Oops, forgot to add flickr to the persisted externalEmbeds schema
* Need a bigint since our id can have more than 52 bits...
* Remove unexpected trailing / from test data to match the expected behavior
* nits
---------
Co-authored-by: Hailey <me@haileyok.com>
* fix nits in add/remove users from list screen
invert check
use `ViewHeader`
simplify
replace with hairline width
fix top border width for user list updates
* dont use `ViewHeader`
* update one more hairline
* remove resolution from post thread
nit
completely remove did cache lookup
move cache check for did to `usePostThreadQuery`
remove resolution from post thread
* helper function
* simplify
* simplify search too
* fix missing check for root or parent quoted post 🤯
* fix thread traversal
* fix accessibility label in notifications
* add accessibility options to expand post
* inherit from outside, but always include `activate`
* include option to disable label/hint on previewable avatar
* fix hidden elements still being read on voiceover
* make it work for followers too
* extract variable
* fix hint
* update wording elsewhere
* add emoji multiplier prop to RichText and bump it up for DMs
* remove background if only emoji
* Handle more emoji
* Adjust emoji regex and length
* Fix bad merge conflict res
* Fix logic
* Revert to emoji specific regex
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add send via chat button to post dropdown
(cherry picked from commit d8458c0bc344f993266f7bc7e325d47e40619648)
* let usePostQuery take uris with DIDs
(cherry picked from commit 16b577ce749fd07e1d5f8461e8ca71c5b874a936)
* add embed preview in composer
(cherry picked from commit 795ceb98d55b6a3ab5b83187a582f9656d71db69)
* rm log
(cherry picked from commit 374d6b8869459f08d8442a3a47d67149e8d9ddd4)
* remove params properly, or at least as close to
(cherry picked from commit c20e0062c2ca4d9c2b28324eee5e713a1a3ab251)
* show images in preview
(cherry picked from commit 5bb617a3ce00f67bfc79784b2f81ef8dcb5bfc25)
* Register embed immediately
(cherry picked from commit ee120d5438a2c91c8980288665576d6a29b4c7e7)
* Add hover to match embeds
(cherry picked from commit 5297a5b06e499f46a9f6da510124610005db2448)
* Update post dropdown copy
(cherry picked from commit bc7e9f6a4303926a53c5c889f1f1b136faf20491)
* Embed preview style tweaks
(cherry picked from commit 9e3ccb0f25ac2f3ce6af538bb29112a3e96e01b1)
* use hydrated posts from API and just use postembed component
(cherry picked from commit cc0b84db87ca812d76cc69f46170ae84cfdde4ef)
* fix type error
(cherry picked from commit 9c49b940e1248e8a7c3b64190c5cb20750043619)
* undo needless export
(cherry picked from commit 1186701c997c50c0b29a809637cb9bc061b8c0a0)
* fix overflow
(cherry picked from commit 8868d5075062d0199c8ef6946fabde27e46ea378)
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* send record via link in text
* re-trim text after removing link
* record message
* only show copy text if message + add translate
* reduce padding
* adjust padding
* Tweak spacing
* Stop clickthrough for hidden content
* Update bg to show labels
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* fix depreciated import
* add animations to old dropdown
* wrap modals in fullwindowoverlay
* move errors inside header
* add background to bottom bar and stop overlap
* nest dialogs on android
* fix android (wrap in gesturehandlerrootview)
* make borders all the same color
* revert threadgate button back to solid
* feed items
* update some more
* moar
* profile card
* composer and notifications
* settings screen
* remove border from first item in feeds
* remove border from first item in feeds
* more removal of top border
* fix flatlist rendering
* oops
* scroll to top fab
* a.border
* centeredview/list
* placeholder
* web sidebar
* search posts
* feeds list
* user lists
* list header
* account list width 1
* hide top border feedgens
* same for lists
* fix tab bar web desktop
* wait...
* show the border on desktop web
* fix lists
* fix lists
* round
* add follow button to feed item avatar
* remove confirmation
* add confirmation (just system alert)
* Shrink the avi follow indicator a smidge
* gate the follow button
* remove from your own posts
* add to post thread item
* hide the follow button locally to component
* Use native dropdown
* Add follow btn to notifications and search
* UI tweaks
* Hide on PWI
* Add toast for confirmation
* Check gate last
* compiler
* Rm unused
* Use names
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* use <Modal> to display composer
* trigger `onPressCancel` on modal cancel
* remove android top padding
* use light statusbar on ios
* use KeyboardStickyView from r-n-keyboard-controller
* make extra bottom padding ios-only
* make cancelRef optional
* scope legacy modals
* don't change bg color on ios
* use fullScreen instead of formSheet
* adjust padding on keyboardaccessory to account for new buttons
* Revert "use KeyboardStickyView from r-n-keyboard-controller"
This reverts commit 426c812904f427bdd08107cffc32e4be1d9b83bc.
* fix insets
* tweaks and merge
* revert 89f51c72
* nit
* import keyboard provider
---------
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Update PostAlerts rendering to show the avi of the labeler rather than the display name; also add size variations
* Update ProfileHeaderAlerts to match PostAlerts behavior
* always show header on native
* ALF ALF ALF
* rm offset for top border
* wrap in a `CenteredView`
* use `CenteredView`'s side borders
* account for loading state on web
* move `isTabletOrMobile`
* hide top border on first post in list
* show border if parents are loading
* don't show top border for deleted or blocked posts
* hide top border for hidden replies
* Rm root post top border
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* add prop to `ListImpl` for `content-visibility` style
* change to `disableContentVisibility`
* lint
* tweaks
* Keep the fix more general
* Clarify ambiguity
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* alf the repost dropdown on web + import icons
* alf like icon
* convert other post controls
* add missing padding to share button
* refine buttons and use better icons
* revert buttonicon changes
* remove ButtonIcon and ButtonText from repost dialog
* use 15px font size when not big
* reduce size and use contrast_25
* add hover state to logged out view
* add `userSelect: 'none'` to buttons
* use width rather than height
* fix quote close behaviour
* prettier
* Fix Esc on repost
* Use new icons for placeholder
* Fix placeholder
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* translation expo module
* add `onClose` and `onReplacementAction`
* rm onReplacementAction
* make all props published
* make translation api available globally w/o wrapper (#4110)
* conditionally import the translation module
* only use native translation if language is probably supported
* open native translation via dropdown menu
---------
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* bump and rm patch
* use the better settings
* fix types
* remove animation duration
* try it with full screen
* thanks mozz - use `ios` only on android
* maybe a little duration
* slightly faster duration
* Revert "fix types"
This reverts commit d15d4b7a9b59da6d45211bfc4b526c5701db83c6.
* Revert "bump and rm patch"
This reverts commit 571f85f9e5b7e1381ac9477db6e551dff65e80ce.
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Updated Japanese translation
* Updated Japanese translation to resolve conflicts and updated msg
* Updated Japanese translation
ref. #4145
* changed the "Clip clop" translation
* Updated Japanese translation
* Updated Japanese translation
* Updated Japanese translation
* 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>
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
* 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>
* 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>
* use `align_center`
* revert
* account for firefox textarea size differences
set to `38`
remove some extra stuff
equal height on all platforms
* use atom
* 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`
* 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`
* 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
* 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>
* 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
* 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
* 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
* disable badge increments for dms
* revert decrementing in js for dms
* reset badge on read notifications
* remove some other code
* prevent duplicate notification events
* 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>
* 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
* 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>
* 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>
* 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
* 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>
* 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)
* 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>
* 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
* 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
* `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
* 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>
* 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>
* 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>
* 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>
* 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>
* 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
* 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
* 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
* 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
* ❓
* 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
* 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>
* 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
* 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
* 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>
* 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>
* Update Japanese translations
* Updated Japanese translation
* Updated Japanese translation
* Update Japanese translations
* Updated based on @Hima-Zinn's suggestion
* 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
* 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.
* 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
* 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
* 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>
* 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
* Expand currentAccountDid into currentAgentState
* Inline all callsites of upsertAccount
* Inline all internal callsites of clearCurrentAccount
* Add agent to currentAgentState
* Collapse extra setStates
* Add TODOs
* 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>
* 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>
* 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