UNPKG

@zextras/carbonio-shell-ui

Version:

The Zextras Carbonio web client

62 lines 3.14 kB
"use strict"; /* * 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