Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 3x 3x 3x 3x | import { createContext } from 'react'
import { VisitorData, GetOptions, FingerprintJSPro } from '@fingerprintjs/fingerprintjs-pro-spa'
export interface QueryResult<TData, TError = Error> {
/**
* Stores current query data
* */
data?: TData
/**
* Is true while query is loading
* */
isLoading?: boolean
/**
* Stores current query error
* */
error?: TError
}
export interface VisitorQueryResult<TExtended extends boolean> extends QueryResult<VisitorData<TExtended>> {
data?: VisitorData<TExtended>
}
export interface GetDataOptions<TExtended extends boolean> extends FingerprintJSPro.GetOptions<TExtended> {
/**
* When set to true, the visitor data will always be fetched from our API.
* */
ignoreCache?: boolean
}
export interface VisitorQueryContext<TExtended extends boolean> extends VisitorQueryResult<TExtended> {
/**
* Performs identification request to server and returns visitors data.
* */
getData: (getDataOptions?: GetDataOptions<TExtended>) => Promise<VisitorData<TExtended>>
}
const stub = (): never => {
throw new Error('You forgot to wrap your component in <FpjsProvider>.')
}
const initialContext = {
getVisitorData: stub,
clearCache: stub,
}
/**
* The FingerprintJS Context
*/
export interface FpjsContextInterface<TExtended extends boolean> {
getVisitorData: (config?: GetOptions<TExtended>, ignoreCache?: boolean) => Promise<VisitorData<TExtended>>
clearCache: () => void
}
export const FpjsContext = createContext<FpjsContextInterface<any>>(initialContext)
|