diff options
Diffstat (limited to 'src/view/screens')
-rw-r--r-- | src/view/screens/AccessibilitySettings.tsx | 5 | ||||
-rw-r--r-- | src/view/screens/AppPasswords.tsx | 7 | ||||
-rw-r--r-- | src/view/screens/LanguageSettings.tsx | 8 | ||||
-rw-r--r-- | src/view/screens/ModerationBlockedAccounts.tsx | 15 | ||||
-rw-r--r-- | src/view/screens/ModerationMutedAccounts.tsx | 15 | ||||
-rw-r--r-- | src/view/screens/Notifications.tsx | 11 | ||||
-rw-r--r-- | src/view/screens/PreferencesExternalEmbeds.tsx | 5 | ||||
-rw-r--r-- | src/view/screens/Profile.tsx | 6 | ||||
-rw-r--r-- | src/view/screens/ProfileFeed.tsx | 56 | ||||
-rw-r--r-- | src/view/screens/ProfileList.tsx | 74 | ||||
-rw-r--r-- | src/view/screens/SavedFeeds.tsx | 36 | ||||
-rw-r--r-- | src/view/screens/Search/Search.tsx | 5 | ||||
-rw-r--r-- | src/view/screens/Settings/index.tsx | 11 |
13 files changed, 98 insertions, 156 deletions
diff --git a/src/view/screens/AccessibilitySettings.tsx b/src/view/screens/AccessibilitySettings.tsx index 158dc8b8d..5d314e8e6 100644 --- a/src/view/screens/AccessibilitySettings.tsx +++ b/src/view/screens/AccessibilitySettings.tsx @@ -4,7 +4,6 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {useAnalytics} from '#/lib/analytics/analytics' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' @@ -36,7 +35,6 @@ type Props = NativeStackScreenProps< export function AccessibilitySettingsScreen({}: Props) { const pal = usePalette('default') const setMinimalShellMode = useSetMinimalShellMode() - const {screen} = useAnalytics() const {isMobile, isTabletOrMobile} = useWebMediaQueries() const {_} = useLingui() @@ -51,9 +49,8 @@ export function AccessibilitySettingsScreen({}: Props) { useFocusEffect( React.useCallback(() => { - screen('PreferencesExternalEmbeds') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) return ( diff --git a/src/view/screens/AppPasswords.tsx b/src/view/screens/AppPasswords.tsx index 6f1cd1bb8..21a9cb0eb 100644 --- a/src/view/screens/AppPasswords.tsx +++ b/src/view/screens/AppPasswords.tsx @@ -12,7 +12,6 @@ import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {useAnalytics} from '#/lib/analytics/analytics' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {CommonNavigatorParams} from '#/lib/routes/types' @@ -28,7 +27,7 @@ import {Button} from '#/view/com/util/forms/Button' import {Text} from '#/view/com/util/text/Text' import * as Toast from '#/view/com/util/Toast' import {ViewHeader} from '#/view/com/util/ViewHeader' -import {CenteredView} from 'view/com/util/Views' +import {CenteredView} from '#/view/com/util/Views' import {atoms as a} from '#/alf' import {useDialogControl} from '#/components/Dialog' import * as Prompt from '#/components/Prompt' @@ -38,16 +37,14 @@ export function AppPasswords({}: Props) { const pal = usePalette('default') const {_} = useLingui() const setMinimalShellMode = useSetMinimalShellMode() - const {screen} = useAnalytics() const {isTabletOrDesktop} = useWebMediaQueries() const {openModal} = useModalControls() const {data: appPasswords, error} = useAppPasswordsQuery() useFocusEffect( React.useCallback(() => { - screen('AppPasswords') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) const onAdd = React.useCallback(async () => { diff --git a/src/view/screens/LanguageSettings.tsx b/src/view/screens/LanguageSettings.tsx index bd69d7a55..c1daa54e6 100644 --- a/src/view/screens/LanguageSettings.tsx +++ b/src/view/screens/LanguageSettings.tsx @@ -10,7 +10,6 @@ import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {APP_LANGUAGES, LANGUAGES} from '#/lib/../locale/languages' -import {useAnalytics} from '#/lib/analytics/analytics' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' @@ -32,21 +31,18 @@ export function LanguageSettingsScreen(_props: Props) { const langPrefs = useLanguagePrefs() const setLangPrefs = useLanguagePrefsApi() const {isTabletOrDesktop} = useWebMediaQueries() - const {screen, track} = useAnalytics() const setMinimalShellMode = useSetMinimalShellMode() const {openModal} = useModalControls() useFocusEffect( React.useCallback(() => { - screen('Settings') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) const onPressContentLanguages = React.useCallback(() => { - track('Settings:ContentlanguagesButtonClicked') openModal({name: 'content-languages-settings'}) - }, [track, openModal]) + }, [openModal]) const onChangePrimaryLanguage = React.useCallback( (value: Parameters<PickerSelectProps['onValueChange']>[0]) => { diff --git a/src/view/screens/ModerationBlockedAccounts.tsx b/src/view/screens/ModerationBlockedAccounts.tsx index ebd9bb23e..88a5df7ec 100644 --- a/src/view/screens/ModerationBlockedAccounts.tsx +++ b/src/view/screens/ModerationBlockedAccounts.tsx @@ -12,16 +12,15 @@ import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {usePalette} from '#/lib/hooks/usePalette' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams} from '#/lib/routes/types' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useMyBlockedAccountsQuery} from '#/state/queries/my-blocked-accounts' import {useSetMinimalShellMode} from '#/state/shell' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams} from 'lib/routes/types' -import {ProfileCard} from 'view/com/profile/ProfileCard' -import {CenteredView} from 'view/com/util/Views' +import {ProfileCard} from '#/view/com/profile/ProfileCard' +import {CenteredView} from '#/view/com/util/Views' import {ErrorScreen} from '../com/util/error/ErrorScreen' import {Text} from '../com/util/text/Text' import {ViewHeader} from '../com/util/ViewHeader' @@ -35,7 +34,6 @@ export function ModerationBlockedAccounts({}: Props) { const {_} = useLingui() const setMinimalShellMode = useSetMinimalShellMode() const {isTabletOrDesktop} = useWebMediaQueries() - const {screen} = useAnalytics() const [isPTRing, setIsPTRing] = React.useState(false) const { @@ -58,9 +56,8 @@ export function ModerationBlockedAccounts({}: Props) { useFocusEffect( React.useCallback(() => { - screen('BlockedAccounts') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) const onRefresh = React.useCallback(async () => { diff --git a/src/view/screens/ModerationMutedAccounts.tsx b/src/view/screens/ModerationMutedAccounts.tsx index e395a3a5b..bd29cb2d9 100644 --- a/src/view/screens/ModerationMutedAccounts.tsx +++ b/src/view/screens/ModerationMutedAccounts.tsx @@ -12,16 +12,15 @@ import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {usePalette} from '#/lib/hooks/usePalette' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams} from '#/lib/routes/types' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useMyMutedAccountsQuery} from '#/state/queries/my-muted-accounts' import {useSetMinimalShellMode} from '#/state/shell' -import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams} from 'lib/routes/types' -import {ProfileCard} from 'view/com/profile/ProfileCard' -import {CenteredView} from 'view/com/util/Views' +import {ProfileCard} from '#/view/com/profile/ProfileCard' +import {CenteredView} from '#/view/com/util/Views' import {ErrorScreen} from '../com/util/error/ErrorScreen' import {Text} from '../com/util/text/Text' import {ViewHeader} from '../com/util/ViewHeader' @@ -35,7 +34,6 @@ export function ModerationMutedAccounts({}: Props) { const {_} = useLingui() const setMinimalShellMode = useSetMinimalShellMode() const {isTabletOrDesktop} = useWebMediaQueries() - const {screen} = useAnalytics() const [isPTRing, setIsPTRing] = React.useState(false) const { @@ -58,9 +56,8 @@ export function ModerationMutedAccounts({}: Props) { useFocusEffect( React.useCallback(() => { - screen('MutedAccounts') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) const onRefresh = React.useCallback(async () => { diff --git a/src/view/screens/Notifications.tsx b/src/view/screens/Notifications.tsx index 073e91c45..818d3d0ed 100644 --- a/src/view/screens/Notifications.tsx +++ b/src/view/screens/Notifications.tsx @@ -5,7 +5,6 @@ import {useLingui} from '@lingui/react' import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from '#/lib/analytics/analytics' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {ComposeIcon2} from '#/lib/icons' @@ -27,11 +26,11 @@ import {useSetMinimalShellMode} from '#/state/shell' import {useComposerControls} from '#/state/shell/composer' import {Feed} from '#/view/com/notifications/Feed' import {FAB} from '#/view/com/util/fab/FAB' +import {ListMethods} from '#/view/com/util/List' +import {LoadLatestBtn} from '#/view/com/util/load-latest/LoadLatestBtn' import {MainScrollProvider} from '#/view/com/util/MainScrollProvider' import {ViewHeader} from '#/view/com/util/ViewHeader' -import {ListMethods} from 'view/com/util/List' -import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {CenteredView} from 'view/com/util/Views' +import {CenteredView} from '#/view/com/util/Views' import {atoms as a, useTheme} from '#/alf' import {Button} from '#/components/Button' import {SettingsGear2_Stroke2_Corner0_Rounded as SettingsIcon} from '#/components/icons/SettingsGear2' @@ -49,7 +48,6 @@ export function NotificationsScreen({route: {params}}: Props) { const [isScrolledDown, setIsScrolledDown] = React.useState(false) const [isLoadingLatest, setIsLoadingLatest] = React.useState(false) const scrollElRef = React.useRef<ListMethods>(null) - const {screen} = useAnalytics() const t = useTheme() const {isDesktop} = useWebMediaQueries() const queryClient = useQueryClient() @@ -101,9 +99,8 @@ export function NotificationsScreen({route: {params}}: Props) { React.useCallback(() => { setMinimalShellMode(false) logger.debug('NotificationsScreen: Focus') - screen('Notifications') onFocusCheckLatest() - }, [screen, setMinimalShellMode, onFocusCheckLatest]), + }, [setMinimalShellMode, onFocusCheckLatest]), ) React.useEffect(() => { if (!isScreenFocused) { diff --git a/src/view/screens/PreferencesExternalEmbeds.tsx b/src/view/screens/PreferencesExternalEmbeds.tsx index 8b3550d6b..ae23b6e95 100644 --- a/src/view/screens/PreferencesExternalEmbeds.tsx +++ b/src/view/screens/PreferencesExternalEmbeds.tsx @@ -3,7 +3,6 @@ import {StyleSheet, View} from 'react-native' import {Trans} from '@lingui/macro' import {useFocusEffect} from '@react-navigation/native' -import {useAnalytics} from '#/lib/analytics/analytics' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' @@ -30,14 +29,12 @@ type Props = NativeStackScreenProps< export function PreferencesExternalEmbeds({}: Props) { const pal = usePalette('default') const setMinimalShellMode = useSetMinimalShellMode() - const {screen} = useAnalytics() const {isTabletOrMobile} = useWebMediaQueries() useFocusEffect( React.useCallback(() => { - screen('PreferencesExternalEmbeds') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) return ( diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index b37445fad..772625695 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -16,7 +16,6 @@ import { useQueryClient, } from '@tanstack/react-query' -import {useAnalytics} from '#/lib/analytics/analytics' import {useSetTitle} from '#/lib/hooks/useSetTitle' import {ComposeIcon2} from '#/lib/icons' import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' @@ -167,7 +166,6 @@ function ProfileScreenLoaded({ const {hasSession, currentAccount} = useSession() const setMinimalShellMode = useSetMinimalShellMode() const {openComposer} = useComposerControls() - const {screen, track} = useAnalytics() const { data: labelerInfo, error: labelerError, @@ -296,11 +294,10 @@ function ProfileScreenLoaded({ useFocusEffect( React.useCallback(() => { setMinimalShellMode(false) - screen('Profile') return listenSoftReset(() => { scrollSectionToTop(currentPage) }) - }, [setMinimalShellMode, screen, currentPage, scrollSectionToTop]), + }, [setMinimalShellMode, currentPage, scrollSectionToTop]), ) useFocusEffect( @@ -316,7 +313,6 @@ function ProfileScreenLoaded({ // = const onPressCompose = () => { - track('ProfileScreen:PressCompose') const mention = profile.handle === currentAccount?.handle || isInvalidHandle(profile.handle) diff --git a/src/view/screens/ProfileFeed.tsx b/src/view/screens/ProfileFeed.tsx index 60e5193ff..a094cc3dd 100644 --- a/src/view/screens/ProfileFeed.tsx +++ b/src/view/screens/ProfileFeed.tsx @@ -8,6 +8,17 @@ import {NativeStackScreenProps} from '@react-navigation/native-stack' import {useQueryClient} from '@tanstack/react-query' import {HITSLOP_20} from '#/lib/constants' +import {useHaptics} from '#/lib/haptics' +import {usePalette} from '#/lib/hooks/usePalette' +import {useSetTitle} from '#/lib/hooks/useSetTitle' +import {ComposeIcon2} from '#/lib/icons' +import {makeCustomFeedLink} from '#/lib/routes/links' +import {CommonNavigatorParams} from '#/lib/routes/types' +import {NavigationProp} from '#/lib/routes/types' +import {shareUrl} from '#/lib/sharing' +import {makeRecordUri} from '#/lib/strings/url-helpers' +import {toShareUrl} from '#/lib/strings/url-helpers' +import {s} from '#/lib/styles' import {logger} from '#/logger' import {isNative} from '#/platform/detection' import {listenSoftReset} from '#/state/events' @@ -27,30 +38,18 @@ import {useResolveUriQuery} from '#/state/queries/resolve-uri' import {truncateAndInvalidate} from '#/state/queries/util' import {useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' -import {useAnalytics} from 'lib/analytics/analytics' -import {useHaptics} from 'lib/haptics' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {ComposeIcon2} from 'lib/icons' -import {makeCustomFeedLink} from 'lib/routes/links' -import {CommonNavigatorParams} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {shareUrl} from 'lib/sharing' -import {makeRecordUri} from 'lib/strings/url-helpers' -import {toShareUrl} from 'lib/strings/url-helpers' -import {s} from 'lib/styles' -import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {Feed} from 'view/com/posts/Feed' -import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' -import {EmptyState} from 'view/com/util/EmptyState' -import {FAB} from 'view/com/util/fab/FAB' -import {Button} from 'view/com/util/forms/Button' -import {ListRef} from 'view/com/util/List' -import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {LoadingScreen} from 'view/com/util/LoadingScreen' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' -import {CenteredView} from 'view/com/util/Views' +import {PagerWithHeader} from '#/view/com/pager/PagerWithHeader' +import {Feed} from '#/view/com/posts/Feed' +import {ProfileSubpageHeader} from '#/view/com/profile/ProfileSubpageHeader' +import {EmptyState} from '#/view/com/util/EmptyState' +import {FAB} from '#/view/com/util/fab/FAB' +import {Button} from '#/view/com/util/forms/Button' +import {ListRef} from '#/view/com/util/List' +import {LoadLatestBtn} from '#/view/com/util/load-latest/LoadLatestBtn' +import {LoadingScreen} from '#/view/com/util/LoadingScreen' +import {Text} from '#/view/com/util/text/Text' +import * as Toast from '#/view/com/util/Toast' +import {CenteredView} from '#/view/com/util/Views' import {atoms as a, useTheme} from '#/alf' import {Button as NewButton, ButtonText} from '#/components/Button' import {useRichText} from '#/components/hooks/useRichText' @@ -158,7 +157,6 @@ export function ProfileFeedScreenInner({ const {hasSession, currentAccount} = useSession() const reportDialogControl = useReportDialogControl() const {openComposer} = useComposerControls() - const {track} = useAnalytics() const playHaptic = useHaptics() const feedSectionRef = React.useRef<SectionRef>(null) const isScreenFocused = useIsFocused() @@ -247,8 +245,7 @@ export function ProfileFeedScreenInner({ const onPressShare = React.useCallback(() => { const url = toShareUrl(feedInfo.route.href) shareUrl(url) - track('CustomFeed:Share') - }, [feedInfo, track]) + }, [feedInfo]) const onPressReport = React.useCallback(() => { reportDialogControl.open() @@ -515,7 +512,6 @@ function AboutSection({ const {_} = useLingui() const [likeUri, setLikeUri] = React.useState(feedInfo.likeUri) const {hasSession} = useSession() - const {track} = useAnalytics() const playHaptic = useHaptics() const {mutateAsync: likeFeed, isPending: isLikePending} = useLikeMutation() const {mutateAsync: unlikeFeed, isPending: isUnlikePending} = @@ -532,11 +528,9 @@ function AboutSection({ if (isLiked && likeUri) { await unlikeFeed({uri: likeUri}) - track('CustomFeed:Unlike') setLikeUri('') } else { const res = await likeFeed({uri: feedInfo.uri, cid: feedInfo.cid}) - track('CustomFeed:Like') setLikeUri(res.uri) } } catch (err) { @@ -548,7 +542,7 @@ function AboutSection({ ) logger.error('Failed up toggle like', {message: err}) } - }, [playHaptic, isLiked, likeUri, unlikeFeed, track, likeFeed, feedInfo, _]) + }, [playHaptic, isLiked, likeUri, unlikeFeed, likeFeed, feedInfo, _]) return ( <View style={[styles.aboutSectionContainer]}> diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx index 0c2c6405f..e0fd18ae9 100644 --- a/src/view/screens/ProfileList.tsx +++ b/src/view/screens/ProfileList.tsx @@ -14,8 +14,19 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from '#/lib/analytics/analytics' +import {useHaptics} from '#/lib/haptics' +import {usePalette} from '#/lib/hooks/usePalette' +import {useSetTitle} from '#/lib/hooks/useSetTitle' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {ComposeIcon2} from '#/lib/icons' +import {makeListLink, makeProfileLink} from '#/lib/routes/links' +import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' +import {NavigationProp} from '#/lib/routes/types' +import {shareUrl} from '#/lib/sharing' import {cleanError} from '#/lib/strings/errors' +import {sanitizeHandle} from '#/lib/strings/handles' +import {toShareUrl} from '#/lib/strings/url-helpers' +import {s} from '#/lib/styles' import {logger} from '#/logger' import {isNative, isWeb} from '#/platform/detection' import {listenSoftReset} from '#/state/events' @@ -41,33 +52,24 @@ import {truncateAndInvalidate} from '#/state/queries/util' import {useSession} from '#/state/session' import {useSetMinimalShellMode} from '#/state/shell' import {useComposerControls} from '#/state/shell/composer' -import {useHaptics} from 'lib/haptics' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {ComposeIcon2} from 'lib/icons' -import {makeListLink, makeProfileLink} from 'lib/routes/links' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {NavigationProp} from 'lib/routes/types' -import {shareUrl} from 'lib/sharing' -import {sanitizeHandle} from 'lib/strings/handles' -import {toShareUrl} from 'lib/strings/url-helpers' -import {s} from 'lib/styles' import {ListMembers} from '#/view/com/lists/ListMembers' -import {PagerWithHeader} from 'view/com/pager/PagerWithHeader' -import {Feed} from 'view/com/posts/Feed' -import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader' -import {EmptyState} from 'view/com/util/EmptyState' -import {FAB} from 'view/com/util/fab/FAB' -import {Button} from 'view/com/util/forms/Button' -import {DropdownItem, NativeDropdown} from 'view/com/util/forms/NativeDropdown' -import {TextLink} from 'view/com/util/Link' -import {ListRef} from 'view/com/util/List' -import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn' -import {LoadingScreen} from 'view/com/util/LoadingScreen' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' -import {CenteredView} from 'view/com/util/Views' +import {PagerWithHeader} from '#/view/com/pager/PagerWithHeader' +import {Feed} from '#/view/com/posts/Feed' +import {ProfileSubpageHeader} from '#/view/com/profile/ProfileSubpageHeader' +import {EmptyState} from '#/view/com/util/EmptyState' +import {FAB} from '#/view/com/util/fab/FAB' +import {Button} from '#/view/com/util/forms/Button' +import { + DropdownItem, + NativeDropdown, +} from '#/view/com/util/forms/NativeDropdown' +import {TextLink} from '#/view/com/util/Link' +import {ListRef} from '#/view/com/util/List' +import {LoadLatestBtn} from '#/view/com/util/load-latest/LoadLatestBtn' +import {LoadingScreen} from '#/view/com/util/LoadingScreen' +import {Text} from '#/view/com/util/text/Text' +import * as Toast from '#/view/com/util/Toast' +import {CenteredView} from '#/view/com/util/Views' import {ListHiddenScreen} from '#/screens/List/ListHiddenScreen' import {atoms as a, useTheme} from '#/alf' import {useDialogControl} from '#/components/Dialog' @@ -306,7 +308,6 @@ function Header({ const isBlocking = !!list.viewer?.blocked const isMuting = !!list.viewer?.muted const isOwner = list.creator.did === currentAccount?.did - const {track} = useAnalytics() const playHaptic = useHaptics() const {mutateAsync: addSavedFeeds, isPending: isAddSavedFeedPending} = @@ -384,7 +385,6 @@ function Header({ try { await listMuteMutation.mutateAsync({uri: list.uri, mute: true}) Toast.show(_(msg`List muted`)) - track('Lists:Mute') } catch { Toast.show( _( @@ -392,13 +392,12 @@ function Header({ ), ) } - }, [list, listMuteMutation, track, _]) + }, [list, listMuteMutation, _]) const onUnsubscribeMute = useCallback(async () => { try { await listMuteMutation.mutateAsync({uri: list.uri, mute: false}) Toast.show(_(msg`List unmuted`)) - track('Lists:Unmute') } catch { Toast.show( _( @@ -406,13 +405,12 @@ function Header({ ), ) } - }, [list, listMuteMutation, track, _]) + }, [list, listMuteMutation, _]) const onSubscribeBlock = useCallback(async () => { try { await listBlockMutation.mutateAsync({uri: list.uri, block: true}) Toast.show(_(msg`List blocked`)) - track('Lists:Block') } catch { Toast.show( _( @@ -420,13 +418,12 @@ function Header({ ), ) } - }, [list, listBlockMutation, track, _]) + }, [list, listBlockMutation, _]) const onUnsubscribeBlock = useCallback(async () => { try { await listBlockMutation.mutateAsync({uri: list.uri, block: false}) Toast.show(_(msg`List unblocked`)) - track('Lists:Unblock') } catch { Toast.show( _( @@ -434,7 +431,7 @@ function Header({ ), ) } - }, [list, listBlockMutation, track, _]) + }, [list, listBlockMutation, _]) const onPressEdit = useCallback(() => { openModal({ @@ -451,7 +448,6 @@ function Header({ } Toast.show(_(msg`List deleted`)) - track('Lists:Delete') if (navigation.canGoBack()) { navigation.goBack() } else { @@ -461,7 +457,6 @@ function Header({ list, listDeleteMutation, navigation, - track, _, removeSavedFeed, savedFeedConfig, @@ -474,8 +469,7 @@ function Header({ const onPressShare = useCallback(() => { const url = toShareUrl(`/profile/${list.creator.did}/lists/${rkey}`) shareUrl(url) - track('Lists:Share') - }, [list, rkey, track]) + }, [list, rkey]) const dropdownItems: DropdownItem[] = useMemo(() => { let items: DropdownItem[] = [ diff --git a/src/view/screens/SavedFeeds.tsx b/src/view/screens/SavedFeeds.tsx index 3402db2c1..66bbd9b8a 100644 --- a/src/view/screens/SavedFeeds.tsx +++ b/src/view/screens/SavedFeeds.tsx @@ -7,7 +7,11 @@ import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {track} from '#/lib/analytics/analytics' +import {useHaptics} from '#/lib/haptics' +import {usePalette} from '#/lib/hooks/usePalette' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams} from '#/lib/routes/types' +import {colors, s} from '#/lib/styles' import {logger} from '#/logger' import { useOverwriteSavedFeedsMutation, @@ -16,18 +20,12 @@ import { } from '#/state/queries/preferences' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' import {useSetMinimalShellMode} from '#/state/shell' -import {useAnalytics} from 'lib/analytics/analytics' -import {useHaptics} from 'lib/haptics' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams} from 'lib/routes/types' -import {colors, s} from 'lib/styles' -import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' -import {TextLink} from 'view/com/util/Link' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {CenteredView, ScrollView} from 'view/com/util/Views' +import {FeedSourceCard} from '#/view/com/feeds/FeedSourceCard' +import {TextLink} from '#/view/com/util/Link' +import {Text} from '#/view/com/util/text/Text' +import * as Toast from '#/view/com/util/Toast' +import {ViewHeader} from '#/view/com/util/ViewHeader' +import {CenteredView, ScrollView} from '#/view/com/util/Views' import {NoFollowingFeed} from '#/screens/Feeds/NoFollowingFeed' import {NoSavedFeedsOfAnyType} from '#/screens/Feeds/NoSavedFeedsOfAnyType' import {atoms as a, useTheme} from '#/alf' @@ -51,7 +49,6 @@ export function SavedFeeds({}: Props) { const pal = usePalette('default') const {_} = useLingui() const {isMobile, isTabletOrDesktop} = useWebMediaQueries() - const {screen} = useAnalytics() const setMinimalShellMode = useSetMinimalShellMode() const {data: preferences} = usePreferencesQuery() const { @@ -77,9 +74,8 @@ export function SavedFeeds({}: Props) { useFocusEffect( React.useCallback(() => { - screen('SavedFeeds') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) return ( @@ -256,10 +252,6 @@ function ListItem({ try { await overwriteSavedFeeds(nextFeeds) - track('CustomFeed:Reorder', { - uri: feed.value, - index: nextIndex, - }) } catch (e) { Toast.show(_(msg`There was an issue contacting the server`), 'xmark') logger.error('Failed to set pinned feed order', {message: e}) @@ -282,10 +274,6 @@ function ListItem({ try { await overwriteSavedFeeds(nextFeeds) - track('CustomFeed:Reorder', { - uri: feed.value, - index: nextIndex, - }) } catch (e) { Toast.show(_(msg`There was an issue contacting the server`), 'xmark') logger.error('Failed to set pinned feed order', {message: e}) diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index 583999f87..66c354b3b 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -23,7 +23,6 @@ import AsyncStorage from '@react-native-async-storage/async-storage' import {useFocusEffect, useNavigation} from '@react-navigation/native' import {LANGUAGES} from '#/lib/../locale/languages' -import {useAnalytics} from '#/lib/analytics/analytics' import {createHitslop} from '#/lib/constants' import {HITSLOP_10} from '#/lib/constants' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' @@ -601,7 +600,6 @@ export function SearchScreen( const navigation = useNavigation<NavigationProp>() const textInput = React.useRef<TextInput>(null) const {_} = useLingui() - const {track} = useAnalytics() const setDrawerOpen = useSetDrawerOpen() const setMinimalShellMode = useSetMinimalShellMode() @@ -656,9 +654,8 @@ export function SearchScreen( }, []) const onPressMenu = React.useCallback(() => { - track('ViewHeader:MenuButtonClicked') setDrawerOpen(true) - }, [track, setDrawerOpen]) + }, [setDrawerOpen]) const onPressClearQuery = React.useCallback(() => { scrollToTopWeb() diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index 73bfaa83e..a2b767097 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -18,7 +18,6 @@ import {useLingui} from '@lingui/react' import {useFocusEffect, useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {useAnalytics} from '#/lib/analytics/analytics' import {appVersion, BUNDLE_DATE, bundleInfo} from '#/lib/app-info' import {STATUS_PAGE_URL} from '#/lib/constants' import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher' @@ -146,7 +145,6 @@ export function SettingsScreen({}: Props) { const onboardingDispatch = useOnboardingDispatch() const navigation = useNavigation<NavigationProp>() const {isMobile} = useWebMediaQueries() - const {screen, track} = useAnalytics() const {openModal} = useModalControls() const {accounts, currentAccount} = useSession() const {mutate: clearPreferences} = useClearPreferencesMutation() @@ -178,19 +176,16 @@ export function SettingsScreen({}: Props) { useFocusEffect( React.useCallback(() => { - screen('Settings') setMinimalShellMode(false) - }, [screen, setMinimalShellMode]), + }, [setMinimalShellMode]), ) const onPressAddAccount = React.useCallback(() => { - track('Settings:AddAccountButtonClicked') setShowLoggedOut(true) closeAllActiveElements() - }, [track, setShowLoggedOut, closeAllActiveElements]) + }, [setShowLoggedOut, closeAllActiveElements]) const onPressChangeHandle = React.useCallback(() => { - track('Settings:ChangeHandleButtonClicked') openModal({ name: 'change-handle', onChanged() { @@ -202,7 +197,7 @@ export function SettingsScreen({}: Props) { } }, }) - }, [track, queryClient, openModal, currentAccount]) + }, [queryClient, openModal, currentAccount]) const onPressExportRepository = React.useCallback(() => { exportCarControl.open() |