[Statsig] Make gate checks lazily (#3594)
This commit is contained in:
parent
086dc93a7a
commit
02becdf449
14 changed files with 67 additions and 62 deletions
|
@ -53,6 +53,7 @@ export function FeedPage({
|
|||
const headerOffset = useHeaderOffset()
|
||||
const scrollElRef = React.useRef<ListMethods>(null)
|
||||
const [hasNew, setHasNew] = React.useState(false)
|
||||
const gate = useGate()
|
||||
|
||||
const scrollToTop = React.useCallback(() => {
|
||||
scrollElRef.current?.scrollToOffset({
|
||||
|
@ -105,9 +106,10 @@ export function FeedPage({
|
|||
|
||||
let feedPollInterval
|
||||
if (
|
||||
useGate('disable_poll_on_discover') &&
|
||||
feed === // Discover
|
||||
'feedgen|at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot'
|
||||
'feedgen|at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot' &&
|
||||
// TODO: This gate check is still too early. Move it to where the polling happens.
|
||||
gate('disable_poll_on_discover')
|
||||
) {
|
||||
feedPollInterval = undefined
|
||||
} else {
|
||||
|
|
|
@ -48,7 +48,7 @@ function PostThreadFollowBtnLoaded({
|
|||
'PostThreadItem',
|
||||
)
|
||||
const requireAuth = useRequireAuth()
|
||||
const showFollowBackLabel = useGate('show_follow_back_label')
|
||||
const gate = useGate()
|
||||
|
||||
const isFollowing = !!profile.viewer?.following
|
||||
const isFollowedBy = !!profile.viewer?.followedBy
|
||||
|
@ -140,7 +140,7 @@ function PostThreadFollowBtnLoaded({
|
|||
style={[!isFollowing ? palInverted.text : pal.text, s.bold]}
|
||||
numberOfLines={1}>
|
||||
{!isFollowing ? (
|
||||
showFollowBackLabel && isFollowedBy ? (
|
||||
isFollowedBy && gate('show_follow_back_label') ? (
|
||||
<Trans>Follow Back</Trans>
|
||||
) : (
|
||||
<Trans>Follow</Trans>
|
||||
|
|
|
@ -40,8 +40,8 @@ function ListImpl<ItemT>(
|
|||
const isScrolledDown = useSharedValue(false)
|
||||
const contextScrollHandlers = useScrollHandlers()
|
||||
const pal = usePalette('default')
|
||||
const showsVerticalScrollIndicator =
|
||||
!useGate('hide_vertical_scroll_indicators') || isWeb
|
||||
const gate = useGate()
|
||||
|
||||
function handleScrolledDownChange(didScrollDown: boolean) {
|
||||
onScrolledDownChange?.(didScrollDown)
|
||||
}
|
||||
|
@ -97,7 +97,9 @@ function ListImpl<ItemT>(
|
|||
scrollEventThrottle={1}
|
||||
style={style}
|
||||
ref={ref}
|
||||
showsVerticalScrollIndicator={showsVerticalScrollIndicator}
|
||||
showsVerticalScrollIndicator={
|
||||
isWeb || !gate('hide_vertical_scroll_indicators')
|
||||
}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -10,14 +10,11 @@ export function CenteredView(props) {
|
|||
}
|
||||
|
||||
export function ScrollView(props) {
|
||||
const showsVerticalScrollIndicator = !useGate(
|
||||
'hide_vertical_scroll_indicators',
|
||||
)
|
||||
|
||||
const gate = useGate()
|
||||
return (
|
||||
<Animated.ScrollView
|
||||
{...props}
|
||||
showsVerticalScrollIndicator={showsVerticalScrollIndicator}
|
||||
showsVerticalScrollIndicator={!gate('hide_vertical_scroll_indicators')}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue