UNPKG

@salad-labs/loopz-typescript

Version:
56 lines 2.47 kB
import { Auth } from "../../auth"; import { useEffect, useRef } from "react"; import { useLinkAccount, usePrivy } from "@privy-io/react-auth"; export const usePrivyLinkAccount = () => { const auth = Auth.getInstance(); const initialized = useRef(false); const { ready, authenticated, user } = usePrivy(); const { linkApple, linkDiscord, linkEmail, linkFarcaster, linkGithub, linkGoogle, linkInstagram, linkLinkedIn, linkPhone, linkSpotify, linkTiktok, linkTwitter, linkWallet, linkTelegram, } = useLinkAccount({ onSuccess: ({ user, linkMethod, linkedAccount }) => { Auth._emit("__onLinkAccountComplete", { user, linkMethod, linkedAccount, }); }, onError: (error, details) => { Auth._emit("__onLinkAccountError", { error, details }); }, }); useEffect(() => { if (!initialized.current && ready && authenticated && user) { initialized.current = true; auth.on("__link", (method) => { if (method === "apple" && !user.apple) linkApple(); if (method === "discord" && !user.discord) linkDiscord(); if (method === "email" && !user.email) linkEmail(); if (method === "farcaster" && !user.farcaster) linkFarcaster(); if (method === "github" && !user.github) linkGithub(); if (method === "google" && !user.google) linkGoogle(); if (method === "instagram" && !user.instagram) linkInstagram(); if (method === "linkedin" && !user.linkedin) linkLinkedIn(); if (method === "phone" && !user.phone) linkPhone(); if (method === "spotify" && !user.spotify) linkSpotify(); if (method === "tiktok" && !user.tiktok) linkTiktok(); if (method === "twitter" && !user.twitter) linkTwitter(); if (method === "wallet" && !user.wallet) linkWallet(); if (method === "telegram" && !user.telegram) linkTelegram(); }); } }, [ready, authenticated, user]); }; //# sourceMappingURL=usePrivyLinkAccount.js.map