Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

[Statsig] Track posting, end reached (#3206)

* Track post create

* Track feed endReached

authored by

dan and committed by
GitHub
1c25c766 7eaa573b

+38 -1
+12
src/lib/statsig/events.ts
··· 2 2 init: { 3 3 initMs: number 4 4 } 5 + 'feed:endReached': { 6 + feedType: string 7 + itemCount: number 8 + } 9 + 'post:create': { 10 + imageCount: number 11 + isReply: boolean 12 + hasLink: boolean 13 + hasQuote: boolean 14 + langs: string 15 + logContext: 'Composer' 16 + } 5 17 'post:like': { 6 18 logContext: 'FeedItem' | 'PostThreadItem' | 'Post' 7 19 }
+11
src/view/com/composer/Composer.tsx
··· 65 65 import {ComposerReplyTo} from 'view/com/composer/ComposerReplyTo' 66 66 import * as Prompt from '#/components/Prompt' 67 67 import {useDialogStateControlContext} from 'state/dialogs' 68 + import {logEvent} from '#/lib/statsig/statsig' 68 69 69 70 type Props = ComposerOpts 70 71 export const ComposePost = observer(function ComposePost({ ··· 255 256 setIsProcessing(false) 256 257 return 257 258 } finally { 259 + if (postUri) { 260 + logEvent('post:create', { 261 + imageCount: gallery.size, 262 + isReply: replyTo != null, 263 + hasLink: extLink != null, 264 + hasQuote: quote != null, 265 + langs: langPrefs.postLanguage, 266 + logContext: 'Composer', 267 + }) 268 + } 258 269 track('Create Post', { 259 270 imageCount: gallery.size, 260 271 })
+15 -1
src/view/com/posts/Feed.tsx
··· 33 33 import {DiscoverFallbackHeader} from './DiscoverFallbackHeader' 34 34 import {FALLBACK_MARKER_POST} from '#/lib/api/feed/home' 35 35 import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' 36 + import {logEvent} from '#/lib/statsig/statsig' 36 37 37 38 const LOADING_ITEM = {_reactKey: '__loading__'} 38 39 const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} ··· 223 224 setIsPTRing(false) 224 225 }, [refetch, track, setIsPTRing, onHasNew]) 225 226 227 + const feedType = feed.split('|')[0] 226 228 const onEndReached = React.useCallback(async () => { 227 229 if (isFetching || !hasNextPage || isError) return 228 230 231 + logEvent('feed:endReached', { 232 + feedType: feedType, 233 + itemCount: feedItems.length, 234 + }) 229 235 track('Feed:onEndReached') 230 236 try { 231 237 await fetchNextPage() 232 238 } catch (err) { 233 239 logger.error('Failed to load more posts', {message: err}) 234 240 } 235 - }, [isFetching, hasNextPage, isError, fetchNextPage, track]) 241 + }, [ 242 + isFetching, 243 + hasNextPage, 244 + isError, 245 + fetchNextPage, 246 + track, 247 + feedType, 248 + feedItems.length, 249 + ]) 236 250 237 251 const onPressTryAgain = React.useCallback(() => { 238 252 refetch()