Files
Compass/web/hooks/use-user-activity.ts
Martin Braquet ba9b3cfb06 Add pretty formatting (#29)
* Test

* Add pretty formatting

* Fix Tests

* Fix Tests

* Fix Tests

* Fix

* Add pretty formatting fix

* Fix

* Test

* Fix tests

* Clean typeckech

* Add prettier check

* Fix api tsconfig

* Fix api tsconfig

* Fix tsconfig

* Fix

* Fix

* Prettier
2026-02-20 17:32:27 +01:00

28 lines
869 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}
}