UNPKG

@towns-protocol/react-sdk

Version:

React Hooks for Towns Protocol SDK

36 lines 1.4 kB
import { useMemo } from 'react'; import { useObservable } from './useObservable'; import { useSyncAgent } from './useSyncAgent'; import { getRoom } from './utils'; /** * Hook to get data from a specific member of a Space, GDM, Channel, or DM. * @param props - The streamId and userId of the member to get data from. * @param config - Configuration options for the observable. * @returns The Member data. */ export const useMember = (props, config) => { const sync = useSyncAgent(); const member = useMemo(() => getRoom(sync, props.streamId).members.get(props.userId), [sync, props]); const { data, ...rest } = useObservable(member, config); return { // Excluding `Member.id` property from the return value, since its a internal store id and can lead to confusion userId: data.userId, streamId: data.streamId, initialized: data.initialized, // username username: data.username, isUsernameConfirmed: data.isUsernameConfirmed, isUsernameEncrypted: data.isUsernameEncrypted, // displayName displayName: data.displayName, isDisplayNameEncrypted: data.isDisplayNameEncrypted, // ensAddress ensAddress: data.ensAddress, // nft nft: data.nft, // membership membership: data.membership, ...rest, }; }; //# sourceMappingURL=useMember.js.map