ohmyform-ui/components/use.imerative.query.ts
2021-02-14 14:12:02 +01:00

19 lines
468 B
TypeScript

import { ApolloQueryResult, useQuery } from '@apollo/client'
import { DocumentNode } from 'graphql'
import { useCallback } from 'react'
export const useImperativeQuery: <TData, TVariables>(
query: DocumentNode
) => (variables: TVariables) => Promise<ApolloQueryResult<TData>> = (query) => {
const { refetch } = useQuery(query, { skip: true })
const cb = useCallback(
(variables) => {
return refetch(variables)
},
[refetch]
)
return cb
}