about summary refs log tree commit diff
path: root/src/view/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com')
-rw-r--r--src/view/com/auth/onboarding/RecommendedFeeds.tsx20
-rw-r--r--src/view/com/auth/onboarding/RecommendedFollows.tsx26
-rw-r--r--src/view/com/util/List.tsx13
-rw-r--r--src/view/com/util/Views.jsx16
4 files changed, 49 insertions, 26 deletions
diff --git a/src/view/com/auth/onboarding/RecommendedFeeds.tsx b/src/view/com/auth/onboarding/RecommendedFeeds.tsx
index d3318bffd..95f8502f8 100644
--- a/src/view/com/auth/onboarding/RecommendedFeeds.tsx
+++ b/src/view/com/auth/onboarding/RecommendedFeeds.tsx
@@ -1,18 +1,19 @@
 import React from 'react'
 import {ActivityIndicator, FlatList, StyleSheet, View} from 'react-native'
 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
-import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints'
+import {msg, Trans} from '@lingui/macro'
+import {useLingui} from '@lingui/react'
+
+import {useSuggestedFeedsQuery} from '#/state/queries/suggested-feeds'
+import {usePalette} from 'lib/hooks/usePalette'
+import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
+import {ErrorMessage} from 'view/com/util/error/ErrorMessage'
+import {Button} from 'view/com/util/forms/Button'
+import {Mobile, TabletOrDesktop} from 'view/com/util/layouts/Breakpoints'
+import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
 import {Text} from 'view/com/util/text/Text'
 import {ViewHeader} from 'view/com/util/ViewHeader'
-import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
-import {Button} from 'view/com/util/forms/Button'
 import {RecommendedFeedsItem} from './RecommendedFeedsItem'
-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
-import {usePalette} from 'lib/hooks/usePalette'
-import {ErrorMessage} from 'view/com/util/error/ErrorMessage'
-import {Trans, msg} from '@lingui/macro'
-import {useLingui} from '@lingui/react'
-import {useSuggestedFeedsQuery} from '#/state/queries/suggested-feeds'
 
 type Props = {
   next: () => void
@@ -130,6 +131,7 @@ export function RecommendedFeeds({next}: Props) {
               renderItem={({item}) => <RecommendedFeedsItem item={item} />}
               keyExtractor={item => item.uri}
               style={{flex: 1}}
+              showsVerticalScrollIndicator={false}
             />
           ) : isLoading ? (
             <View style={{flex: 1}}>
diff --git a/src/view/com/auth/onboarding/RecommendedFollows.tsx b/src/view/com/auth/onboarding/RecommendedFollows.tsx
index d275f6c90..a840f949e 100644
--- a/src/view/com/auth/onboarding/RecommendedFollows.tsx
+++ b/src/view/com/auth/onboarding/RecommendedFollows.tsx
@@ -1,21 +1,22 @@
 import React from 'react'
 import {ActivityIndicator, FlatList, StyleSheet, View} from 'react-native'
-import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
 import {AppBskyActorDefs, moderateProfile} from '@atproto/api'
-import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints'
+import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
+import {msg, Trans} from '@lingui/macro'
+import {useLingui} from '@lingui/react'
+
+import {logger} from '#/logger'
+import {useModerationOpts} from '#/state/queries/preferences'
+import {useSuggestedFollowsQuery} from '#/state/queries/suggested-follows'
+import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows'
+import {usePalette} from 'lib/hooks/usePalette'
+import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
+import {Button} from 'view/com/util/forms/Button'
+import {Mobile, TabletOrDesktop} from 'view/com/util/layouts/Breakpoints'
+import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
 import {Text} from 'view/com/util/text/Text'
 import {ViewHeader} from 'view/com/util/ViewHeader'
-import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
-import {Button} from 'view/com/util/forms/Button'
-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
-import {usePalette} from 'lib/hooks/usePalette'
 import {RecommendedFollowsItem} from './RecommendedFollowsItem'
-import {useSuggestedFollowsQuery} from '#/state/queries/suggested-follows'
-import {useGetSuggestedFollowersByActor} from '#/state/queries/suggested-follows'
-import {useModerationOpts} from '#/state/queries/preferences'
-import {logger} from '#/logger'
-import {Trans, msg} from '@lingui/macro'
-import {useLingui} from '@lingui/react'
 
 type Props = {
   next: () => void
@@ -202,6 +203,7 @@ export function RecommendedFollows({next}: Props) {
               )}
               keyExtractor={item => item.did}
               style={{flex: 1}}
+              showsVerticalScrollIndicator={false}
             />
           )}
           <Button
diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx
index d30a9d805..b3bde2a11 100644
--- a/src/view/com/util/List.tsx
+++ b/src/view/com/util/List.tsx
@@ -1,11 +1,14 @@
 import React, {memo} from 'react'
 import {FlatListProps, RefreshControl} from 'react-native'
-import {FlatList_INTERNAL} from './Views'
-import {addStyle} from 'lib/styles'
-import {useScrollHandlers} from '#/lib/ScrollContext'
 import {runOnJS, useSharedValue} from 'react-native-reanimated'
+
 import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED'
 import {usePalette} from '#/lib/hooks/usePalette'
+import {useScrollHandlers} from '#/lib/ScrollContext'
+import {useGate} from 'lib/statsig/statsig'
+import {addStyle} from 'lib/styles'
+import {isWeb} from 'platform/detection'
+import {FlatList_INTERNAL} from './Views'
 
 export type ListMethods = FlatList_INTERNAL
 export type ListProps<ItemT> = Omit<
@@ -37,7 +40,8 @@ function ListImpl<ItemT>(
   const isScrolledDown = useSharedValue(false)
   const contextScrollHandlers = useScrollHandlers()
   const pal = usePalette('default')
-
+  const showsVerticalScrollIndicator =
+    !useGate('hide_vertical_scroll_indicators') || isWeb
   function handleScrolledDownChange(didScrollDown: boolean) {
     onScrolledDownChange?.(didScrollDown)
   }
@@ -93,6 +97,7 @@ function ListImpl<ItemT>(
       scrollEventThrottle={1}
       style={style}
       ref={ref}
+      showsVerticalScrollIndicator={showsVerticalScrollIndicator}
     />
   )
 }
diff --git a/src/view/com/util/Views.jsx b/src/view/com/util/Views.jsx
index 7d6120583..6850f42a4 100644
--- a/src/view/com/util/Views.jsx
+++ b/src/view/com/util/Views.jsx
@@ -2,8 +2,22 @@ import React from 'react'
 import {View} from 'react-native'
 import Animated from 'react-native-reanimated'
 
+import {useGate} from 'lib/statsig/statsig'
+
 export const FlatList_INTERNAL = Animated.FlatList
-export const ScrollView = Animated.ScrollView
 export function CenteredView(props) {
   return <View {...props} />
 }
+
+export function ScrollView(props) {
+  const showsVerticalScrollIndicator = !useGate(
+    'hide_vertical_scroll_indicators',
+  )
+
+  return (
+    <Animated.ScrollView
+      {...props}
+      showsVerticalScrollIndicator={showsVerticalScrollIndicator}
+    />
+  )
+}