@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
34 lines (32 loc) • 1.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const react_1 = require("react");
const useSCFetchUserBlockedBy_1 = tslib_1.__importDefault(require("./useSCFetchUserBlockedBy"));
const SCUserProvider_1 = require("../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);
```
:::
*/
function useSCUserIsBlocked(user) {
// CONTEXT
const scUserContext = (0, SCUserProvider_1.useSCUser)();
// HOOKS
const { blockedBy, loading: loadingBlockedBy } = (0, useSCFetchUserBlockedBy_1.default)({ user });
// CONST
const isMe = (0, react_1.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 };
}
exports.default = useSCUserIsBlocked;
;