mirror of
https://github.com/CompassConnections/Compass.git
synced 2025-12-23 22:18:43 -05:00
29 lines
895 B
TypeScript
29 lines
895 B
TypeScript
import { useEffect } from 'react'
|
|
import { db } from 'web/lib/supabase/db'
|
|
import { run } from 'common/supabase/utils'
|
|
import { usePersistentInMemoryState } from 'web/hooks/use-persistent-in-memory-state'
|
|
import { UserActivity } from 'common/user'
|
|
|
|
export function useUserActivity(userId: string | undefined) {
|
|
const [userActivity, setUserActivity] = usePersistentInMemoryState<
|
|
UserActivity | undefined
|
|
>(undefined, `user-activity-${userId ?? 'none'}`)
|
|
|
|
const refresh = async () => {
|
|
if (!userId) return
|
|
const { data } = await run(
|
|
db.from('user_activity')
|
|
.select('*')
|
|
.eq('user_id', userId).limit(1).single()
|
|
)
|
|
if (data) setUserActivity(data as unknown as UserActivity)
|
|
}
|
|
|
|
useEffect(() => {
|
|
refresh().catch(() => {})
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [userId])
|
|
|
|
return { data: userActivity, refresh }
|
|
}
|