code snipet 馃憤
useEffect(() => {
const initializeDeeplinks = async () => {
const initialUrl = await Linking.getInitialURL();
if (initialUrl) {
setDeepLink(initialUrl);
}
};
initializeDeeplinks();
const listener = Linking.addEventListener('url', handleDeepLink);
return () => {
listener.remove();
};
}, []);
const handleDeepLink = ({url}: Linking.EventType) => setDeepLink(url);
// Handle in-bound links
useEffect(() => {
if (!deepLink) {
return;
}
const url = new URL(deepLink);
const params = url.searchParams;
// Handle an error response from Phantom
if (params.get('errorCode')) {
const error = Object.fromEntries([...params]);
const message =
error?.errorMessage ??
JSON.stringify(Object.fromEntries([...params]), null, 2);
console.log('error: ', message);
return;
}
// Handle a `connect` response from Phantom
if (/onConnect/.test(url.pathname)) {
const sharedSecretDapp = nacl.box.before(
bs58.decode(params.get('phantom_encryption_public_key')!),
dappKeyPair.secretKey,
);
const connectData = decryptPayload(
params.get('data')!,
params.get('nonce')!,
sharedSecretDapp,
);
setSharedSecret(sharedSecretDapp);
setSession(connectData.session);
setPhantomWalletPublicKey(new PublicKey(connectData.public_key));
console.log(`connected to ${connectData.public_key.toString()}`);
}
code snipet 馃憤
useEffect(() => {
const initializeDeeplinks = async () => {
const initialUrl = await Linking.getInitialURL();
if (initialUrl) {
setDeepLink(initialUrl);
}
};
initializeDeeplinks();
const listener = Linking.addEventListener('url', handleDeepLink);
return () => {
listener.remove();
};
}, []);
const handleDeepLink = ({url}: Linking.EventType) => setDeepLink(url);
// Handle in-bound links
useEffect(() => {
if (!deepLink) {
return;
}