diff --git a/packages/mobile/src/hooks/useActivityPing.ts b/packages/mobile/src/hooks/useActivityPing.ts index 00d472f20cd..374c4890276 100644 --- a/packages/mobile/src/hooks/useActivityPing.ts +++ b/packages/mobile/src/hooks/useActivityPing.ts @@ -1,4 +1,4 @@ -import { useCallback } from 'react' +import { useCallback, useEffect } from 'react' import { useCurrentUserId, useQueryContext } from '@audius/common/api' @@ -9,18 +9,24 @@ export const useActivityPing = () => { const { data: currentUserId } = useCurrentUserId() const { audiusSdk } = useQueryContext() - useEnterForeground( - useCallback(async () => { - if (!currentUserId) return - try { - const sdk = await audiusSdk() - await audiusBackendInstance.pingActivity({ - sdk, - userId: currentUserId - }) - } catch { - // Fire-and-forget - } - }, [currentUserId, audiusSdk]) - ) + const pingActivity = useCallback(async () => { + if (!currentUserId) return + try { + const sdk = await audiusSdk() + await audiusBackendInstance.pingActivity({ + sdk, + userId: currentUserId + }) + } catch { + // Fire-and-forget + } + }, [currentUserId, audiusSdk]) + + // Ping on initial app open (AppState starts as 'active' with no transition) + useEffect(() => { + pingActivity() + }, [pingActivity]) + + // Ping on subsequent foreground transitions + useEnterForeground(pingActivity) }