@zextras/carbonio-shell-ui
Version:
The Zextras Carbonio web client
62 lines • 3.14 kB
JavaScript
;
/*
* SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUserRight = exports.getUserRights = exports.getUserSetting = exports.getUserSettings = exports.getUserAccounts = exports.getUserAccount = exports.useUserSetting = exports.useUserSettings = exports.useUserRight = exports.useUserRights = exports.useUserAccounts = exports.useUserAccount = exports.useAuthenticated = void 0;
const react_1 = require("react");
const lodash_1 = require("lodash");
const store_1 = require("./store");
const useAuthenticated = () => (0, store_1.useAccountStore)((s) => s.authenticated);
exports.useAuthenticated = useAuthenticated;
/**
* Return the authenticated user account. Throws if the user is not authenticated.
* Note: this hook should be used only where the user is for sure logically authenticated
*/
const useUserAccount = () => {
const account = (0, store_1.useAccountStore)((s) => s.account);
if (account === undefined) {
throw new Error('User is not authenticated');
}
return account;
};
exports.useUserAccount = useUserAccount;
const useUserAccounts = () => {
const acct = (0, store_1.useAccountStore)((s) => s.account);
return (0, react_1.useMemo)(() => (acct ? [acct] : []), [acct]);
};
exports.useUserAccounts = useUserAccounts;
const FALLBACK_ACCOUNT_RIGHTS = { targets: [] };
const useUserRights = () => (0, store_1.useAccountStore)((s) => s.account?.rights ?? FALLBACK_ACCOUNT_RIGHTS);
exports.useUserRights = useUserRights;
const useUserRight = (right) => {
const { targets } = (0, exports.useUserRights)();
return (0, react_1.useMemo)(() => (0, lodash_1.find)(targets, ['right', right])?.target ?? [], [right, targets]);
};
exports.useUserRight = useUserRight;
const useUserSettings = () => (0, store_1.useAccountStore)((state) => state.settings);
exports.useUserSettings = useUserSettings;
const useUserSetting = (...path) => (0, store_1.useAccountStore)((s) => (0, lodash_1.get)(s.settings, (0, lodash_1.join)(path, '.')));
exports.useUserSetting = useUserSetting;
const getUserAccount = () => store_1.useAccountStore.getState().account;
exports.getUserAccount = getUserAccount;
const getUserAccounts = () => {
const { account } = store_1.useAccountStore.getState();
const accounts = [];
if (account) {
accounts.push(account);
}
return accounts;
};
exports.getUserAccounts = getUserAccounts;
const getUserSettings = () => store_1.useAccountStore.getState().settings;
exports.getUserSettings = getUserSettings;
const getUserSetting = (...path) => (0, lodash_1.get)(store_1.useAccountStore.getState().settings, (0, lodash_1.join)(path, '.'));
exports.getUserSetting = getUserSetting;
const getUserRights = () => store_1.useAccountStore.getState().account?.rights ?? { targets: [] };
exports.getUserRights = getUserRights;
const getUserRight = (right) => (0, lodash_1.find)((0, exports.getUserRights)().targets, ['right', right])?.target ?? [];
exports.getUserRight = getUserRight;
//# sourceMappingURL=hooks.js.map