···11-export type TrackPropertiesMap = {
22- // LOGIN / SIGN UP events
33- 'Sign In': {resumedSession: boolean} // CAN BE SERVER
44- 'Create Account': {} // CAN BE SERVER
55- 'Try Create Account': {}
66- 'Signin:PressedForgotPassword': {}
77- 'Signin:PressedSelectService': {}
88- // COMPOSER / CREATE POST events
99- 'Create Post': {imageCount: string | number} // CAN BE SERVER
1010- 'Composer:PastedPhotos': {}
1111- 'Composer:CameraOpened': {}
1212- 'Composer:GalleryOpened': {}
1313- 'Composer:ThreadgateOpened': {}
1414- 'HomeScreen:PressCompose': {}
1515- 'ProfileScreen:PressCompose': {}
1616- // EDIT PROFILE events
1717- 'EditHandle:ViewCustomForm': {}
1818- 'EditHandle:ViewProvidedForm': {}
1919- 'EditHandle:SetNewHandle': {}
2020- 'EditProfile:AvatarSelected': {}
2121- 'EditProfile:BannerSelected': {}
2222- 'EditProfile:Save': {} // CAN BE SERVER
2323- // FEED events
2424- 'Feed:onRefresh': {}
2525- 'Feed:onEndReached': {}
2626- // POST events
2727- 'Post:Like': {} // CAN BE SERVER
2828- 'Post:Unlike': {} // CAN BE SERVER
2929- 'Post:Repost': {} // CAN BE SERVER
3030- 'Post:Unrepost': {} // CAN BE SERVER
3131- 'Post:Delete': {} // CAN BE SERVER
3232- 'Post:ThreadMute': {} // CAN BE SERVER
3333- 'Post:ThreadUnmute': {} // CAN BE SERVER
3434- 'Post:Reply': {} // CAN BE SERVER
3535- 'Post:EditThreadgateOpened': {}
3636- 'Post:ThreadgateEdited': {}
3737- // PROFILE events
3838- 'Profile:Follow': {
3939- username: string
4040- }
4141- 'Profile:Unfollow': {
4242- username: string
4343- }
4444- // PROFILE HEADER events
4545- 'ProfileHeader:EditProfileButtonClicked': {}
4646- 'ProfileHeader:FollowersButtonClicked': {
4747- handle: string
4848- }
4949- 'ProfileHeader:FollowsButtonClicked': {
5050- handle: string
5151- }
5252- 'ProfileHeader:ShareButtonClicked': {}
5353- 'ProfileHeader:MuteAccountButtonClicked': {}
5454- 'ProfileHeader:UnmuteAccountButtonClicked': {}
5555- 'ProfileHeader:ReportAccountButtonClicked': {}
5656- 'ProfileHeader:AddToListsButtonClicked': {}
5757- 'ProfileHeader:BlockAccountButtonClicked': {}
5858- 'ProfileHeader:UnblockAccountButtonClicked': {}
5959- 'ProfileHeader:FollowButtonClicked': {}
6060- 'ProfileHeader:UnfollowButtonClicked': {}
6161- 'ProfileHeader:SuggestedFollowsOpened': {}
6262- 'ProfileHeader:SuggestedFollowFollowed': {}
6363- 'ViewHeader:MenuButtonClicked': {}
6464- // SETTINGS events
6565- 'Settings:SwitchAccountButtonClicked': {}
6666- 'Settings:AddAccountButtonClicked': {}
6767- 'Settings:ChangeHandleButtonClicked': {}
6868- 'Settings:InvitecodesButtonClicked': {}
6969- 'Settings:SignOutButtonClicked': {}
7070- 'Settings:ContentlanguagesButtonClicked': {}
7171- // MENU events
7272- 'Menu:ItemClicked': {url: string}
7373- 'Menu:FeedbackClicked': {}
7474- 'Menu:HelpClicked': {}
7575- // MOBILE SHELL events
7676- 'MobileShell:MyProfileButtonPressed': {}
7777- 'MobileShell:HomeButtonPressed': {}
7878- 'MobileShell:SearchButtonPressed': {}
7979- 'MobileShell:NotificationsButtonPressed': {}
8080- 'MobileShell:FeedsButtonPressed': {}
8181- 'MobileShell:MessagesButtonPressed': {}
8282- // NOTIFICATIONS events
8383- 'Notificatons:OpenApp': {}
8484- // LISTS events
8585- 'Lists:onRefresh': {}
8686- 'Lists:onEndReached': {}
8787- 'CreateList:AvatarSelected': {}
8888- 'CreateList:SaveCurateList': {} // CAN BE SERVER
8989- 'CreateList:SaveModList': {} // CAN BE SERVER
9090- 'Lists:Mute': {} // CAN BE SERVER
9191- 'Lists:Unmute': {} // CAN BE SERVER
9292- 'Lists:Block': {} // CAN BE SERVER
9393- 'Lists:Unblock': {} // CAN BE SERVER
9494- 'Lists:Delete': {} // CAN BE SERVER
9595- 'Lists:Share': {} // CAN BE SERVER
9696- // CUSTOM FEED events
9797- 'CustomFeed:Save': {}
9898- 'CustomFeed:Unsave': {}
9999- 'CustomFeed:Like': {}
100100- 'CustomFeed:Unlike': {}
101101- 'CustomFeed:Share': {}
102102- 'CustomFeed:Pin': {
103103- uri: string
104104- name?: string
105105- }
106106- 'CustomFeed:Unpin': {
107107- uri: string
108108- name?: string
109109- }
110110- 'CustomFeed:Reorder': {
111111- uri: string
112112- name?: string
113113- index: number
114114- }
115115- 'CustomFeed:LoadMore': {}
116116- 'MultiFeed:onEndReached': {}
117117- 'MultiFeed:onRefresh': {}
118118- // MODERATION events
119119- 'Moderation:ContentfilteringButtonClicked': {}
120120- // ONBOARDING events
121121- 'Onboarding:Begin': {}
122122- 'Onboarding:Complete': {}
123123- 'Onboarding:Skipped': {}
124124- 'Onboarding:Reset': {}
125125- 'Onboarding:SuggestedFollowFollowed': {}
126126- 'Onboarding:CustomFeedAdded': {}
127127- // Onboarding v2
128128- 'OnboardingV2:Begin': {}
129129- 'OnboardingV2:StepInterests:Start': {}
130130- 'OnboardingV2:StepInterests:End': {
131131- selectedInterests: string[]
132132- selectedInterestsLength: number
133133- }
134134- 'OnboardingV2:StepInterests:Error': {}
135135- 'OnboardingV2:StepSuggestedAccounts:Start': {}
136136- 'OnboardingV2:StepSuggestedAccounts:End': {
137137- selectedAccountsLength: number
138138- }
139139- 'OnboardingV2:StepFollowingFeed:Start': {}
140140- 'OnboardingV2:StepFollowingFeed:End': {}
141141- 'OnboardingV2:StepAlgoFeeds:Start': {}
142142- 'OnboardingV2:StepAlgoFeeds:End': {
143143- selectedPrimaryFeeds: string[]
144144- selectedPrimaryFeedsLength: number
145145- selectedSecondaryFeeds: string[]
146146- selectedSecondaryFeedsLength: number
147147- }
148148- 'OnboardingV2:StepTopicalFeeds:Start': {}
149149- 'OnboardingV2:StepTopicalFeeds:End': {
150150- selectedFeeds: string[]
151151- selectedFeedsLength: number
152152- }
153153- 'OnboardingV2:StepModeration:Start': {}
154154- 'OnboardingV2:StepModeration:End': {}
155155- 'OnboardingV2:StepProfile:Start': {}
156156- 'OnboardingV2:StepProfile:End': {}
157157- 'OnboardingV2:StepFinished:Start': {}
158158- 'OnboardingV2:StepFinished:End': {}
159159- 'OnboardingV2:Complete': {}
160160- 'OnboardingV2:Skip': {}
161161-}
162162-163163-export type ScreenPropertiesMap = {
164164- Login: {}
165165- CreateAccount: {}
166166- 'Choose Account': {}
167167- 'Signin:ForgotPassword': {}
168168- 'Signin:SetNewPasswordForm': {}
169169- 'Signin:PasswordUpdatedForm': {}
170170- Feed: {}
171171- Notifications: {}
172172- Profile: {}
173173- 'Profile:Preview': {}
174174- Settings: {}
175175- AppPasswords: {}
176176- Moderation: {}
177177- PreferencesExternalEmbeds: {}
178178- BlockedAccounts: {}
179179- MutedAccounts: {}
180180- SavedFeeds: {}
181181-}
+1-4
src/lib/hooks/useAccountSwitcher.ts
···22import {msg} from '@lingui/macro'
33import {useLingui} from '@lingui/react'
4455-import {useAnalytics} from '#/lib/analytics/analytics'
65import {logger} from '#/logger'
76import {isWeb} from '#/platform/detection'
87import {SessionAccount, useSessionApi} from '#/state/session'
···1413export function useAccountSwitcher() {
1514 const [pendingDid, setPendingDid] = useState<string | null>(null)
1615 const {_} = useLingui()
1717- const {track} = useAnalytics()
1816 const {resumeSession} = useSessionApi()
1917 const {requestSwitchToAccount} = useLoggedOutViewControls()
2018···2321 account: SessionAccount,
2422 logContext: LogEvents['account:loggedIn']['logContext'],
2523 ) => {
2626- track('Settings:SwitchAccountButtonClicked')
2724 if (pendingDid) {
2825 // The session API isn't resilient to race conditions so let's just ignore this.
2926 return
···6259 setPendingDid(null)
6360 }
6461 },
6565- [_, track, resumeSession, requestSwitchToAccount, pendingDid],
6262+ [_, resumeSession, requestSwitchToAccount, pendingDid],
6663 )
67646865 return {onPressSwitchAccount, pendingDid}
+11-13
src/lib/hooks/useNotificationHandler.ts
···33import {CommonActions, useNavigation} from '@react-navigation/native'
44import {useQueryClient} from '@tanstack/react-query'
5566+import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
77+import {NavigationProp} from '#/lib/routes/types'
88+import {logEvent} from '#/lib/statsig/statsig'
69import {logger} from '#/logger'
77-import {track} from 'lib/analytics/analytics'
88-import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher'
99-import {NavigationProp} from 'lib/routes/types'
1010-import {logEvent} from 'lib/statsig/statsig'
1111-import {isAndroid} from 'platform/detection'
1212-import {useCurrentConvoId} from 'state/messages/current-convo-id'
1313-import {RQKEY as RQKEY_NOTIFS} from 'state/queries/notifications/feed'
1414-import {invalidateCachedUnreadPage} from 'state/queries/notifications/unread'
1515-import {truncateAndInvalidate} from 'state/queries/util'
1616-import {useSession} from 'state/session'
1717-import {useLoggedOutViewControls} from 'state/shell/logged-out'
1818-import {useCloseAllActiveElements} from 'state/util'
1010+import {isAndroid} from '#/platform/detection'
1111+import {useCurrentConvoId} from '#/state/messages/current-convo-id'
1212+import {RQKEY as RQKEY_NOTIFS} from '#/state/queries/notifications/feed'
1313+import {invalidateCachedUnreadPage} from '#/state/queries/notifications/unread'
1414+import {truncateAndInvalidate} from '#/state/queries/util'
1515+import {useSession} from '#/state/session'
1616+import {useLoggedOutViewControls} from '#/state/shell/logged-out'
1717+import {useCloseAllActiveElements} from '#/state/util'
1918import {resetToTab} from '#/Navigation'
20192120type NotificationReason =
···228227 {},
229228 logger.DebugContext.notifications,
230229 )
231231- track('Notificatons:OpenApp')
232230 logEvent('notifications:openApp', {})
233231 invalidateCachedUnreadPage()
234232 truncateAndInvalidate(queryClient, RQKEY_NOTIFS())