Samuel Newman
1b3b8e493a
[Chat] Defer message send until after textinput resizes ( #10405 )
2026-05-04 14:05:15 -07:00
Samuel Newman
dc9b9a887b
[Chat] Reenable the gc gate ( #10406 )
2026-05-04 10:24:25 -07:00
DS Boyce
f1764f1d61
Move useListConvoMembersQuery inside AddMembersFlow ( #10386 )
2026-04-29 16:49:47 +01:00
Samuel Newman
7eec65ac78
[Chat] Temporarily turn off gate ( #10368 )
2026-04-24 22:45:22 +03:00
Eric Bailey
cdb8d4bfb8
Group Clops Feature Branch ( #10360 )
...
Co-authored-by: DS Boyce <260543580+ds-boyce@users.noreply.github.com >
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-24 11:38:50 -07:00
Samuel Newman
e832791367
[Chat] Improve gate ( #10359 )
2026-04-24 08:48:57 -05:00
Samuel Newman
deb3f26d3e
Fix send button disabled when sharing post via DM without text ( #10355 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-24 05:50:08 -05:00
Samuel Newman
7b490d8bcd
Only lock viewport zoom while text inputs are focused ( #10340 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-04-23 10:42:05 -07:00
DS Boyce
9ba11baab7
Display actual number of group clip clop requests ( #10333 )
2026-04-22 12:31:38 -07:00
DS Boyce
38c8adcc27
Fix some minor chat issues ( #10332 )
2026-04-22 10:18:01 -07:00
DS Boyce
dcc06a90a0
Display sender name in last message for group clip clops ( #10320 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-04-22 10:03:53 -07:00
Samuel Newman
bfdaab0a14
[Chat] Workaround for autocomplete suggestion bug on iOS ( #10321 )
2026-04-21 15:56:07 -05:00
Samuel Newman
3153ea4302
Refactor minimal shell mode to refcounting ( #10319 )
2026-04-21 13:04:02 -07:00
Samuel Newman
6d53459e92
[Chat] Gate groupchat screen ( #10316 )
2026-04-21 11:21:19 -07:00
DS Boyce
2ab1e2c9e9
Display system messages in chats ( #10312 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-04-21 10:43:22 -07:00
DS Boyce
d58ff89441
Require age assurance to access chat settings ( #10053 )
2026-04-20 15:34:32 -05:00
surfdude29
2798e98c9c
Add context for translators and tweak strings ( #10280 )
2026-04-20 07:06:18 -07:00
Samuel Newman
bc3672ceeb
[Chat] Remove convoState dependency from header ( #10293 )
2026-04-18 12:58:16 -07:00
DS Boyce
935347c73d
Use convo view instead of convo state for driving the UI ( #10290 )
2026-04-17 15:23:44 -07:00
DS Boyce
adca192f3a
Add ability to edit group clip clop name ( #10275 )
2026-04-17 11:44:34 -07:00
DS Boyce
9e9ff70682
Enable access for group clip clops with no messages ( #10276 )
2026-04-17 10:40:37 -07:00
Samuel Newman
a97b15b204
✨ EmojiPicker component ( #10249 )
2026-04-17 02:42:10 -07:00
DS Boyce
6e3c9c3a9f
Add flow for adding people to a group clip clop ( #10255 )
2026-04-16 11:55:19 -07:00
DS Boyce
36c95d7dc6
Remove console log ( #10273 )
2026-04-16 10:57:48 -07:00
DS Boyce
9f3c21e298
Add header to group clip clops ( #10254 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-04-16 10:48:30 -07:00
DS Boyce
e10c05d735
Reveal chat timestamp on tap ( #10262 )
2026-04-16 10:17:01 -07:00
DS Boyce
a9e170b6d0
Integrate more group chat settings ( #10253 )
2026-04-16 10:15:59 -07:00
Samuel Newman
f51602b3fe
Support group chats across other surfaces ( #10266 )
2026-04-16 09:55:30 -07:00
Samuel Newman
d3f5093817
Groupchats feature branch ( #10181 )
...
Co-authored-by: DS Boyce <260543580+ds-boyce@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 12:15:45 -07:00
Samuel Newman
888eca73b3
Refactor chat list implementation ( #10059 )
2026-04-10 09:58:16 -07:00
Eric Bailey
0a5ae17738
New rich text composer + autocomplete ( #10159 )
2026-04-07 20:37:50 -05:00
DS Boyce
35cb2bcf94
Create codemod for updating Toast calls to v2 ( #10045 )
2026-03-12 11:35:58 -07:00
DS Boyce
1db01a09a8
Create codemod for addressing ESLint warnings ( #10032 )
2026-03-11 15:51:31 -07:00
Spence Pope
2bd9811652
[APP-1928] add bot/automated account badge and self-labeling settings ( #10008 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
2026-03-10 13:28:49 -05:00
Samuel Newman
37a82761f5
Cache profile view before opening AfterReportDialog ( #9962 )
2026-03-03 13:50:22 -06:00
Samuel Newman
9ec06971af
Upgrade Lingui to v5 ( #9905 )
2026-02-23 20:28:03 +00:00
Samuel Newman
338016ed5c
Android sheets edge to edge ( #8342 )
2026-02-10 21:01:58 +00:00
surfdude29
b8db36afb0
Add context for translators for "No one" string ( #9844 )
...
* add context for translators 'No one' option
* update ActivityPrivacySettings to add context for translators
* update translation context for 'No one' option
2026-02-09 15:37:04 -08:00
Eric Bailey
25a1ed1209
[APP-1782] Analytics migration ( #9734 )
...
* WIP
* Clean up growthbook code, integrate into init and sessions
* Move everything out of React
* Add metrics client
* Move to separate file
* Shared metadata cache
* Ensure we update metadata when session ID changes
* Ensure userMetadata is cleared when logging out
* WIP revamp
* Integrate feature gates into analytics context
* Clean up old code
* Fix useMeta util
* Some comments and cleanup
* Add logger to base analytics context
* Refactor current route handling
* Rip out LogEvent from navigation
* Update tracking endpoint
* Migrate toClout
* Clear out statsig client
* Add todo, reset logger readme
* Ope fix statsig noop
* Refactor logging in feed-feedback, add debug logging to metrics client
* Remove LogEvents alias for Metrics
* Prefer root package export
* Remove Metrics alias from logger
* [APP-1782] Migrate to new analytics APIs (#9735 )
* Migrate logEvent to useAnalytics
* Migrate logger.metric to useAnalytics
* Migrate tricky spot, fix types
* Migrate remaining tricky spot
* Missed one
* Remove metric() from logger
* Migrate useGate to useAnalytics
* Remove all other StatSig mentions
* Update event payload
* Update logger tests
* Mock expo method
* Fix session ID bug
* Add session ID test
* Add test for metrics client
* Clarify intent
* Clean up core analytics file
* Clean up the call once utils
* Fix TODO
* Fix TODO
* Fix TODO
* Fix TODO
* Fix TODO
* Remove debug code
* Fix navigation context
* OK nav context is not working, todo
* Checkpoint: works but feels hacky
* Fix navigation context issue
* Improve feature API
* Improve metric logging
* Update logger tests
2026-01-22 15:33:45 -06:00
Eric Bailey
62c0c06bbf
Move browser env into main env ( #9718 )
2026-01-16 17:20:03 -06:00
Eric Bailey
0589bd7d9e
Move /platform/detection vars into /env ( #9707 )
...
* Add platform vars to env
* Replace /platform/detection with /env
2026-01-16 16:28:17 -06:00
Samuel Newman
bd510d8468
Upgrade ESLint to v9 with flat config ( #9680 )
...
* Upgrade ESLint to v9 with flat config
- Upgrade eslint from v8 to v9.18.0
- Migrate from .eslintrc.js to eslint.config.mjs (flat config)
- Upgrade typescript-eslint to v8.20.0 (unified package)
- Replace eslint-plugin-import with eslint-plugin-import-x for flat config support
- Add globals package for environment globals
- Update eslint-plugin-bsky-internal with proper meta objects for ESLint v9
- Fix deprecated context.getScope() API usage
- Update bskyembed to use flat config
- Remove deprecated --ext flag from lint scripts
- Configure rules to maintain previous behavior while using new ESLint version
* Fix varsIgnorePattern to require character after underscore
Restore the original pattern `^_.+` instead of `^_` so that lingui's
`const { _ } = useLingui()` will still be flagged when unused.
* Update ESLint rule tests for flat config format
- Update RuleTester to use flat config languageOptions instead of
eslintrc parser format
- Remove duplicate test case that ESLint v9 now detects
- Add Jest globals for test files
* update eslint package versions
* lint android a11y
* enable typechecked rules, switch them to warn
* fix yarn lock ci
* Fix CI failure
* Remove unused globals?
* Organize a bit, add quiet to main lint command
* Allow ternary
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2026-01-16 16:24:28 -06:00
Samuel Newman
9743149c26
Replace graphemer with unicode-segmenter ( #9526 )
...
* replace graphemer with unicode-segmenter
* use grapheme entrypoint
* force resolution of unicode-segmenter
2025-12-30 03:39:09 -08:00
Samuel Newman
ad7d49ef8f
[Contacts] Contacts matching flow ( #9486 )
...
* add expo-contacts
* add expo-sms
* update copy
* add basic settings screen
* state machine, flow screen
* phone input screen
* otp screen
* tweak spacing
* resend code logic
* add layoutanimationconfig
* check availablility in settings screen
* get contacts
* matches screen
* search, temp setup for matches UI
* add a bunch of number parsing logic with libphonenumber
* cast to looser type
* rename sync to find
FCF (Find Contacts Flow)
* update geolocation hook
* nicer design for settings screen
* add completed state
* up border contrast
* update expo deps
* add pending spinner
* add country whitelist
* add empty state screen
* drop add more functionality
* upload -> import
* fix typo
* fix permission string
* copy updates
* rm envelope icon
* update sms copy
* add inviteinfo component
* woke is back
* [Contacts] NUXes (#9515 )
* add a bunch of number parsing logic with libphonenumber
* add banner nux
* add announcement nux
* native only nux
* rm shitty animation
* move isNative check
* [Contacts] Onboarding step (#9489 )
* add a bunch of number parsing logic with libphonenumber
* restructure onboarding to better support dynamic screens
* integrate existing flow into onboarding
* add intro step
* lift state up to allow going back freely
* gate onboarding by geo if unsupported country
* add done button to standalone flow
* [Contacts] Add `contact-match` notification type to feed (#9519 )
* add a bunch of number parsing logic with libphonenumber
* add contact-joined notif type
* update string, api package
* Update NotificationFeedItem.tsx
* Update NotificationFeedItem.tsx
* Delete SyncContactsFlow.web.tsx
* fix follow back btn for this case
* [Contacts] API integration (#9487 )
* api integration for flow
* copy tweak
* tweaks after running it
* wire up status page
* rename toast
* use api lib
* rm temp code
* maybe fix otp error
* clear code on error/resend
* add 1s delay to verify success
* update package versions
* Delete SyncContactsFlow.web.tsx
* try and fix yarn.lock lint
* even woker
* fix uppercase friends
* surfdude feedback
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* rm log
* allow resend on invalid code
* Update GetContacts.tsx
* overwrite country code if possible
* fix Apple's Best Feature
* devenv latest
* disable bounces
* interactive keyboard dismiss
* copy changes
* national format
* allow resending immediately
* move success state down a bit
* Update FindContactsSettings.tsx
* [Contacts] More onboarding changes (#9491 )
* integrate existing flow into onboarding
* refreshed onboarding styles, rm stepper
* center content on web
* Add back dismiss button for internal onboarding
* Import sort
---------
Co-authored-by: Eric Bailey <git@esb.lol >
* add matches query to shadow
* add clockwise arrow
* update status design, fix dismiss, fix queries
* add metrics
* add more comments
* Update metrics.ts
* refetch both queries on PTR
* fix shadow state in matches page
* reduce empty space at bottom
* show contact info on matches
* filter out contacts without numbers at an earlier stage
* Error handling ✨
* get notifs working
* filter out businesses
* rm log
* remove TODO from learn more links
* try and exclude from web bundle
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2025-12-12 10:32:06 -08:00
Eric Bailey
1711626493
Migrate remaining old report reasons, remove old unused file ( #9378 )
2025-11-11 14:13:11 -06:00
hailey
d6ca9e6b41
[Reporting] Add new reporting categories and reasons ( #9079 )
...
* start adding new report reasons
* cleanup
* use updated types
* cleanup open/closed logic
* other fix
* state fix
* rename type
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/index.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* Update src/components/moderation/ReportDialog/utils/useReportOptions.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* add mapping
* Replace consts and maps using exported values
* Map to deprecated reason if necessary, send some reports only to Bluesky
* Use only new report reason types
* Cleanup
* Bump package, integrate new reasons
* Adjust sorting, return type, integrate feedback
* Just remove sort
* Finish 'other' handling
* Update descriptions
* Just invert filter logic, no functional change but feels more correct
* Clarify handling
* fix deep imports
* fix type error
* [Reporting] Integrate new `ReportDialog` into DMs (#9213 )
* Update types, fork copy for convo vs message
* Integrate in remaining spots
* Replace DoneStep with separate dialog that opens after reporting
* Handle profile error state by just showing a success message
* Delete old dms ReportDialog
* Chats only go to bsky
* Only open block or delete dialog if submitted successfully
* make close button always large
* prevent expansion of blockordelete dialog
* Delete old report dialog (#9214 )e
* Skip labeler selection for Bluesky-only cases
* Rename AfterReportDialog
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
Co-authored-by: Eric Bailey <git@esb.lol >
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2025-11-06 15:40:13 -06:00
Samuel Newman
1b0fbd503e
Remove use of flatten where possible ( #9325 )
...
* remove use of flatten where possible
* restore flatten where it says it's needed
* missing utils alpha
2025-11-04 05:43:08 -08:00
Samuel Newman
54b8eacba1
Fix chat request buttons not moving with swipe gesture ( #9155 )
...
* portal in buttons so they move with swipe
* remove outline style buttons
2025-10-10 11:30:29 -05:00
Eric Bailey
bd17f04810
Migrate to @bsky.app/alf package ( #9030 )
...
* Add storybook shortcut in dev
* Migrate to alg pkg
* Migrate font_bold to new font_semi_bold
* Migrate font_heavy to font_bold
* Fix old theme refs
* Remove leading util
* Bump
* Revert "Add storybook shortcut in dev"
This reverts commit 7a86195c77fb5d449c7782e64ebabb6addfab919.
* Remove alf script
* Adjust font scale
* Bump
* Bump pkg
* Migrate values from conflicts
* Create default themes outside react
* Use built-in alf utils
* Migrate old font styles
* Remove unused tokens
* Move theme creation to more appropriate file
* Update button colors
* Adjust TextField colors, line heights
2025-09-24 11:47:08 -05:00
Samuel Newman
5211b26903
Expo 54 ( #8931 )
...
* update deps
* update patches
* fix new arch optout
* build from source, disable new arch
* update to preview.14
* upgrade off of preview to release
* fix lockfile lint
* update patches
* add back expo-location
* downgrade reanimated
* downgrade pagerview
* use expo-file-system/legacy
* try and upgrade types/react-dom
* fix type of uint8array
* rm @types/react resolution from bad rebase
* more type errors
* fix mock
* bump rn-compressor
* add patch of https://github.com/bluesky-social/react-native-paste-input/pull/5
* delete NativeDropdown & remove Zeego
* `import React` in expo modules
* bump cocoapods
* rm unused picker lib
* add speculative react-native-mmkv patch
* revert patch, add temp debug info to error
* bring back speculative patch, patch built JS code instead of source
* revert patch, just do debugging part
* dep update
* update resolutions, dynamic-app-icon
* bump node version in eas.json
* update build instructions
* rm atob from docs
* Delete react-native-mmkv+2.12.2.patch
* bump expo which might include fix
* update expo patch version
* bump expo patch version
* wrong version oops
* update expo to latest
* update react-native-compressor, rm patch
2025-09-22 08:52:07 -07:00