@0xsequence/anypay-sdk
Version:
SDK for Anypay functionality
33 lines (27 loc) • 885 B
text/typescript
import { SequenceAPIClient } from "@0xsequence/anypay-api"
import { useConfig } from "@0xsequence/hooks"
import { useMemo } from "react"
import { DEFAULT_API_URL } from "./constants.js"
export type APIClientConfig = {
apiUrl?: string
projectAccessKey?: string
jwt?: string
}
export function getAPIClient({
apiUrl = DEFAULT_API_URL,
projectAccessKey,
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: config?.apiUrl ?? env.apiUrl,
projectAccessKey: config?.projectAccessKey ?? projectAccessKey,
jwt: config?.jwt ?? jwt,
})
}, [projectAccessKey, jwt, env.apiUrl, config])
return apiClient
}