UNPKG

@salad-labs/loopz-typescript

Version:
44 lines 1.7 kB
"use client"; import React, { useCallback, useEffect, useState } from "react"; import { LoopzAuthProviderContext } from "../context/loopzauthprovidercontext"; import { useLoopz } from "../hooks"; export const LoopzAuthProvider = ({ children }) => { const { instance, initialized } = useLoopz(); const [authStatus, setAuthStatus] = useState({ isLoading: true, isAuthenticated: false, account: null, auth: null, }); const handleAuth = useCallback(() => { if (!initialized) return; const isAuthenticated = instance.auth.isAuthenticated(); const authInfo = instance.auth.getAuthInfo(); const currentAccount = instance.auth.getCurrentAccount(); setAuthStatus({ isLoading: false, isAuthenticated: isAuthenticated, auth: isAuthenticated ? authInfo : null, account: isAuthenticated ? currentAccount : null, }); }, [initialized, instance]); useEffect(() => { if (!initialized) return; instance.auth.on("auth", handleAuth); instance.auth.on("onAuthError", handleAuth); instance.auth.on("logout", handleAuth); return () => { instance.auth.off("auth", handleAuth); instance.auth.off("onAuthError", handleAuth); instance.auth.off("logout", handleAuth); }; }, [initialized, instance, handleAuth]); useEffect(() => { if (!initialized) return; }, [initialized, instance]); return (React.createElement(LoopzAuthProviderContext.Provider, { value: authStatus }, children)); }; //# sourceMappingURL=loopzauthprovider.js.map