@fingerprintjs/fingerprintjs-pro-react-native
Version:
Official React Native client for Fingerprint. Best identification solution for React Native.
43 lines • 1.5 kB
JavaScript
/**
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