@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
30 lines (28 loc) • 1.14 kB
JavaScript
import { useMemo } from 'react';
import useSCFetchUserBlockedBy from './useSCFetchUserBlockedBy';
import { useSCUser } from '../components/provider/SCUserProvider';
/**
:::info
This custom hook is used to check if the user is blocked by me or I am blocked by him.
:::
:::tip How to use it:
Follow these steps:
```jsx
1. import useUserIsBlocked from '@selfcommunity/react-core';
2. const {blocked, loading: loadingBlockedBy} = useUserIsBlocked(user);
```
:::
*/
export default function useSCUserIsBlocked(user) {
// CONTEXT
const scUserContext = useSCUser();
// HOOKS
const { blockedBy, loading: loadingBlockedBy } = useSCFetchUserBlockedBy({ user });
// CONST
const isMe = useMemo(() => scUserContext.user && user.id === scUserContext.user.id, [scUserContext.user, user]);
// Status blocked
const blocked = !isMe && user && Boolean((scUserContext.user && scUserContext.managers.blockedUsers.isBlocked(user)) || blockedBy);
// Status loading
const loading = scUserContext.user && (scUserContext.managers.blockedUsers.isLoading() || loadingBlockedBy);
return { blocked, loading };
}