UNPKG

nostr-hooks

Version:
45 lines 1.54 kB
import { useEffect, useState } from 'react'; import { useNdk } from '../use-ndk'; /** * Custom hook that retrieves the active user using the NDK instance and the signer. * * @param fetchProfile - Optional boolean indicating whether to fetch profile for the active user. Default is false. * @returns An object containing the active user, null if there is no user, or undefined if the user is being fetched. */ export const useActiveUser = (fetchProfile) => { const [activeUser, setActiveUser] = useState(undefined); const [status, setStatus] = useState('loading'); const { ndk } = useNdk(); useEffect(() => { setStatus('loading'); if (!ndk) { setStatus('no-user'); setActiveUser(null); return; } const { signer } = ndk; if (!signer) { setStatus('no-user'); setActiveUser(null); return; } signer.user().then((user) => { if (!user) { setStatus('no-user'); setActiveUser(null); return; } if (!fetchProfile) { setStatus('success'); setActiveUser(user); return; } user.fetchProfile().finally(() => { setStatus('success'); setActiveUser(user); }); }); }, [ndk, fetchProfile, setStatus, setActiveUser, ndk?.signer]); return { activeUser, status }; }; //# sourceMappingURL=index.js.map