0xtrails
Version:
SDK for Trails
36 lines (30 loc) • 1.03 kB
text/typescript
import { useConfig } from "@0xsequence/hooks"
import { SequenceAPIClient } from "@0xsequence/trails-api"
import { useMemo } from "react"
import { getSequenceApiUrl, getSequenceProjectAccessKey } from "./config.js"
export type APIClientConfig = {
apiUrl?: string
projectAccessKey?: string
jwt?: string
}
export function getAPIClient({
apiUrl = getSequenceApiUrl(),
projectAccessKey = getSequenceProjectAccessKey(),
jwt,
}: APIClientConfig): SequenceAPIClient {
return new SequenceAPIClient(apiUrl as string, projectAccessKey, jwt)
}
export const useAPIClient = (config?: APIClientConfig) => {
const { projectAccessKey, jwt, env } = useConfig()
const apiClient = useMemo(() => {
return getAPIClient({
apiUrl: getSequenceApiUrl() ?? config?.apiUrl ?? env.apiUrl,
projectAccessKey:
getSequenceProjectAccessKey() ??
config?.projectAccessKey ??
projectAccessKey,
jwt: config?.jwt ?? jwt,
})
}, [projectAccessKey, jwt, env.apiUrl, config])
return apiClient
}