Samuel Newman
aa897f55a0
The Great Unjanking of the Sheets ( #9973 )
2026-03-09 22:53:32 +02:00
Samuel Newman
d247a65683
Add Trans to string ( #9981 )
2026-03-02 11:39:50 -08:00
Samuel Newman
f614bf650d
Translation followups ( #9980 )
2026-03-02 11:01:09 -08:00
DS Boyce
9bbcb472ef
Use on-device translation on mobile when available ( #9930 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2026-02-27 16:59:19 -08:00
Alex Benzer
00816b70dc
[APP-1859] pinned feed drag n drop ( #9893 )
...
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
Co-authored-by: vineyardbovines <spencerfpope@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 11:52:10 -08:00
Samuel Newman
782edbf281
Restore type assert that got accidentally removed ( #9934 )
2026-02-23 23:11:39 -08:00
Samuel Newman
9ec06971af
Upgrade Lingui to v5 ( #9905 )
2026-02-23 20:28:03 +00:00
Samuel Newman
3fae42c077
Remove hardcoded warning color, add yellow and pink to ALF palette ( #9911 )
2026-02-20 10:17:11 -06:00
Samuel Newman
775a041b71
Add chat data export to Export My Data dialog ( #9900 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 11:01:58 -08:00
Samuel Newman
512ce3d5d0
ALF content language dialog ( #9471 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
2026-02-18 08:57:32 -08:00
DS Boyce
7c08bba6cf
Use Prompt.Action for delete account buttons ( #9889 )
2026-02-16 16:23:27 -08:00
DS Boyce
49253dbd88
Refactor delete account dialog using ALF ( #9863 )
2026-02-16 12:00:46 -08:00
Eric Bailey
cc2255cc49
[APP-1776] Refactor Live Now config, reorg files ( #9871 )
2026-02-16 11:44:22 -06: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
72b7516d9b
Prompts refresh ( #9781 )
...
* Round boi
* Wrap a few things in Prompt.Content
* Couple tweaks
2026-01-27 20:02:55 -06:00
Eric Bailey
3523e7ce58
1.115.0 fast follows ( #9743 )
...
* Fix caching, fix attributes setting
* Use useCallOnce hook
* Update dismissal handling
* Update copy
2026-01-23 16:28:40 -06:00
Eric Bailey
df89b79c2a
[APP-1787] Some analytics cleanup ( #9736 )
...
* Clean up flags
* Move getMetadataForLogger
* Nail down attributers
* Polyfill features cache
2026-01-22 16:57:59 -06: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
bd9e8244f1
[APP-1783] Clean up some feature gates and logging ( #9729 )
...
* Remove gates we don't need
* Clean up some logging
* Keep disable gates around for now
* Add missing gate
* Revert file
* Revert package changes
2026-01-19 15:32:02 -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
Eric Bailey
5922c6622f
[APP-1767] Live event feeds ( #9696 )
...
* Update env config for new worker setup
* Add liveEvents context
* Add live event feed card to Explore
* Add Discover banner/trending handling, device storage
* Add prefs methods, hook up to Discover banner
* Add settings toggle
* Fix up metrics and mutations
* Simplify undo logic
* Handle previews
* Update overlay color and text color handling
* Update metrics
* Handle live event in feed card
* Show multiple feeds on Explore for bsky team
* Fix dev/preview handling bug
* Add sidebar cards, update types
* Fix type error
* Fix type error
* Feedback
* Blurhash fix
* Copy update
* Dev only debug hook
2026-01-14 15:09:01 -06:00
Samuel Newman
7d5de60401
fix long handles in account switch ( #8373 )
2025-12-30 01:35:24 -08:00
Eric Bailey
b38013a12f
Small copy tweaks ( #9557 )
2025-12-29 10:21:09 -08:00
Eric Bailey
da87515d0a
[APP-1684] Some contact import tweaks ( #9555 )
...
* Handle download link
* Improve NUX geo gating from #9549
* Fix alignment of phone code select
* Show full name
* Add gate to nux banner
* Add gate to settings screen
* Invert gate check in settings, whoops
2025-12-15 13:35:28 -06:00
Samuel Newman
8cee40beff
Find Friend links ( #9546 )
...
* links
* policy
* Update PhoneInput.tsx
2025-12-12 12:23:19 -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
Samuel Newman
e34ed14887
CAR dialog - add close button ( #9470 )
...
* car dialog add close button
* update toast import
2025-12-10 13:22:55 -08:00
Samuel Newman
6ccda945e5
Telephone country code select ( #9473 )
...
* add telephone code select
* add flags
* run svgo on flags
* get it somewhat working on web
* get web closed state working
* verify country code we get from geo
* trim down names to shorter common versions
* add labels to other selects
* make international tel codes a static object
* add component to storybook
* Update src/lib/international-telephone-codes.ts
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* update to new geo hook
* use Intl.DisplayNames, add polyfill
* use in rather than keys().includes()
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
2025-12-10 12:12:30 -08:00
Anastasiya Uraleva
d0649e9a9e
[APP-1403] Profile empty states ( #8969 )
...
* update: Empty state component
* update type error fixes
* add empty state icon
* update translations on labels
* update: lint error for empty state
* remove unused prompt
* update type errors
* fix lint errors and update profile followers and profile follows
* updated starterpack
* fix lint errors
* address feedback
* update icons to be a react element
* update icons
* update viewbox for icons
* optimize: icons and update profile lists
* optimize: icons and update profile lists
* lint error fix
* update iconSize from the rebase
2025-11-27 03:22:03 -08:00
Samuel Newman
ef97a20c23
Fix password autofill on iOS ( #9397 )
...
* fix password autofill on iOS
* update autocomplete props, rm textContentType
2025-11-17 06:27:00 -08:00
Samuel Newman
92926a2417
✨ SegmentedControl component ( #8606 )
...
* new segmented control
* fix type error
* convert server input, use CSS for web
* add segmented control to storybook
* use segmented control in embed dialog
* add to suggested text wrappers
* update change handle dialog
* update styles since button changes
* fix atom
* style updates to segmented control, add size prop
* update state in layout effect rather than in render
* set type = 'radio' as default
* prevent expansion in server dialog on iOS
* use non reactive callback in needsUpdate effect
2025-11-14 11:43:28 -08:00
Samuel Newman
b422765aed
[Threadgate] Tweak threadgate buttons ( #9173 )
...
* tweak in-post threadgate button
* tweak composer threadgate button
* reduce date length slightly
* pressed styles
* make date length depend on breakpoint
* add chevron to label btn
* add tiny chevron, special-case button icon width
* [Threadgate] Add hint (#9350 )
* get tooltip working on web
* add compatibility layer for working in iOS sheets
* add timeout to profile tooltip now that it appears instantly
* rm debug code
* Update ThreadgateBtn.tsx
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* remeasure when keyboard changes
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* fix types
* [Threadgate] Refresh dialog (#9342 )
* wip new ui
* update threadgate dialog with new designs
* restore nobody option
* relayout android sheet when ratio changes
* fix ratio changing case in bottom sheet
* timebox reached, use setTimeout
* update panel styles
* missing imports
* extract out Panel
* tweak layout animation
* fix icon color
* use same color mechamism for icon as text
* restore the header
* refreshed toggle styles (#9343 )
* [Threadgate] Persist settings (#9341 )
* add persist toggle to threadgate dialog
* move state back down
* sort out spacing
* wire up query
* @surfdude29 tweaks
* use tiny chevron in WhoCanReply
* wait for prefetch before opening
* move Panel into the Toggle namespace
* default -> pref
* use medium date length
* rm hover state from web selects, fix border radius
* fix key issue in Selects
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
2025-11-14 06:21:37 -08:00
Samuel Newman
e663e824b7
Add rectangular shape to button ( #9382 )
2025-11-13 00:35:34 +02:00
Samuel Newman
68a4d84450
tweak settings divider color ( #9381 )
2025-11-12 04:09:57 -08: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
Eric Bailey
7bf00424c4
Clean up getPostThreadV2 settings/params in prep for future work ( #9179 )
...
* Deprecate prioritizeFollowedUsers
* Bump API package
2025-11-06 10:42:08 -06:00
Samuel Newman
5efae600dd
Add dark/tinted icon variants ( #9241 )
...
* add tinted icon style
* new dark icon
* use icon composer file
* rename some icons, ensure default ios is still there
* use solid fill instead of auto gradient
* fix web build
* back to gradient
* add . for consistency
* rename `default_old` to `legacy`
2025-10-29 09:49:45 -07:00
Samuel Newman
d49d43f6eb
update app icon ( #9219 )
2025-10-16 10:08:06 -07:00
Samuel Newman
be53a168ba
Move interests clientside and add finance ( #9176 )
...
* move interests clientside
* add finance
* try and ensure there's always data for the "all" category
* add empty state for suggested accounts
* simplify error wording
2025-10-15 09:37:24 -07:00
Samuel Newman
fe31cf4508
fix background colors ( #9174 )
2025-10-10 11:17:57 -05:00
Samuel Newman
6cd6a3447d
Tweak greens ( #9177 )
...
* tweak greens
* undo test code
2025-10-10 09:15:48 -07:00
Chenyu
f82a6188e6
Update admonition component ( #9068 )
...
* update admonition component
* fix linting, adominition alighment
* design tweak
* edge cases for admonition, update storybook
* Update src/components/Admonition.tsx
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
* fix mobile version
* change button style
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2025-09-30 05:27:19 -07: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
Samuel Newman
4a1b1f17f4
Clean up dialogs ( #8934 )
2025-09-09 18:45:36 +03:00
Samuel Newman
53e43a957c
run yarn lint --fix ( #9013 )
2025-09-09 08:38:21 -07:00
surfdude29
01c20958c1
Add english-only-resource context and tweak labels ( #8805 )
...
* add context in VerificationsDialog.tsx
* add context in VerifierDialog.tsx
* add context in VerificationSettings.tsx
* add context in EditProfileDialog.tsx
* add context and tweak label in ChangeHandleDialog.tsx
* tweak label in ContentHider.tsx
2025-08-27 18:12:01 -05:00
Samuel Newman
98d96bd28b
Modernise change password dialog ( #8269 )
...
* alf change password dialog
* rm old modal
* move dialog
* fix buttons on native
* lowercase
* fix dupe import
* Apply suggestions from code review
Thanks @surfdude29 :)
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
* use primary_subtle, change web layout
* move to into non-network err, warn -> error
* error -> safeMessage
* better message than token is invalid
* cancel button native only
* move close to end of focus priority
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com >
2025-08-26 10:50:39 -07:00
Eric Bailey
df20ae237e
Threads v2 cleanup ( #8902 )
...
* Delete root PostThread component
* Remove PostThreadItem, migrate DebugMod to use new components
* Remove other unused components
* Move PostThreadFollowBtn to new home
* Move PostThreadComposePrompt to new home
* Remove gate
* Keep naming in DebugMod
* rm v1 prefs
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com >
2025-08-26 09:54:19 -05:00
Samuel Newman
ce2604d0e9
Update @mozzius/expo-dynamic-app-icon ( #8834 )
2025-08-24 01:18:02 +03:00