42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { useFirestoreQueryData } from '@react-query-firebase/firestore'
|
|
import { MINUTE_MS } from 'common/util/time'
|
|
import { useQueryClient } from 'react-query'
|
|
import {
|
|
getProbChangesNegative,
|
|
getProbChangesPositive,
|
|
} from 'web/lib/firebase/contracts'
|
|
import { getValues } from 'web/lib/firebase/utils'
|
|
|
|
export const useProbChanges = (userId: string) => {
|
|
const { data: positiveChanges } = useFirestoreQueryData(
|
|
['prob-changes-day-positive', userId],
|
|
getProbChangesPositive(userId)
|
|
)
|
|
const { data: negativeChanges } = useFirestoreQueryData(
|
|
['prob-changes-day-negative', userId],
|
|
getProbChangesNegative(userId)
|
|
)
|
|
|
|
if (!positiveChanges || !negativeChanges) {
|
|
return undefined
|
|
}
|
|
|
|
return { positiveChanges, negativeChanges }
|
|
}
|
|
|
|
export const usePrefetchProbChanges = (userId: string | undefined) => {
|
|
const queryClient = useQueryClient()
|
|
if (userId) {
|
|
queryClient.prefetchQuery(
|
|
['prob-changes-day-positive', userId],
|
|
() => getValues(getProbChangesPositive(userId)),
|
|
{ staleTime: MINUTE_MS }
|
|
)
|
|
queryClient.prefetchQuery(
|
|
['prob-changes-day-negative', userId],
|
|
() => getValues(getProbChangesNegative(userId)),
|
|
{ staleTime: MINUTE_MS }
|
|
)
|
|
}
|
|
}
|