UNPKG

@fingerprintjs/fingerprintjs-pro-react-native

Version:

Official React Native client for Fingerprint. Best identification solution for React Native.

43 lines 1.5 kB
/** FingerprintJS Pro React Native v3.14.0 - Copyright (c) FingerprintJS, Inc, 2026 (https://fingerprint.com) Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. */ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { FingerprintJsProAgent } from "./FingerprintJsProAgent"; import { FingerprintJsProContext } from "./FingerprintJsProContext"; function FingerprintJsProProvider({ children, ...fingerprintJsProAgentParams }) { const [client, setClient] = useState( () => new FingerprintJsProAgent(fingerprintJsProAgentParams) ); const [visitorId, updateVisitorId] = useState(""); const getVisitorData = useCallback( async (tags, linkedId, requestOptions) => { const result = await client.getVisitorData(tags, linkedId, requestOptions); updateVisitorId(result.visitorId); return result; }, [client] ); const firstRender = useRef(true); useEffect(() => { if (firstRender) { firstRender.current = false; } else { setClient(new FingerprintJsProAgent(fingerprintJsProAgentParams)); } }, [fingerprintJsProAgentParams]); const contextValue = useMemo(() => { return { visitorId, getVisitorData }; }, [visitorId, getVisitorData]); return /* @__PURE__ */ React.createElement(FingerprintJsProContext.Provider, { value: contextValue }, children); } export { FingerprintJsProProvider }; //# sourceMappingURL=FingerprintJsProProvider.js.map