29 lines
838 B
TypeScript
29 lines
838 B
TypeScript
import {useQuery} from '@tanstack/react-query'
|
|
|
|
import {useSession} from '#/state/session'
|
|
import {api} from '#/state/purchases/subscriptions/api'
|
|
import {SubscriptionGroupId, PlatformId, Subscription} from '#/state/purchases/subscriptions/types'
|
|
|
|
export function useSubscriptionsState() {
|
|
const {currentAccount} = useSession()
|
|
|
|
return useQuery({
|
|
enabled: !!currentAccount,
|
|
queryKey: ['subscriptions-state', currentAccount?.did],
|
|
refetchOnWindowFocus: true,
|
|
async queryFn() {
|
|
const url = `/account?did=${currentAccount!.did}`
|
|
const {data, error} = await api<{
|
|
subscriptions: Subscription[]
|
|
entitlements: {id: 'core'; platform: 'web'}[]
|
|
}>(url).json()
|
|
|
|
if (error || !data) {
|
|
throw new Error('Failed to fetch subscriptions state')
|
|
}
|
|
|
|
return data
|
|
},
|
|
})
|
|
}
|