@zextras/carbonio-shell-ui
Version:
The Zextras Carbonio web client
30 lines • 1.34 kB
JavaScript
;
/*
* SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.useUtilityViews = exports.checkRoute = exports.checkList = void 0;
const react_1 = require("react");
const lodash_1 = require("lodash");
const hooks_1 = require("../history/hooks");
const app_1 = require("../store/app");
const checkList = (l1, l2) => (0, lodash_1.intersection)(l1, l2).length > 0;
exports.checkList = checkList;
const checkRoute = (view, activeRoute) => {
const activeRouteValues = Object.values((0, lodash_1.omit)(activeRoute, 'focusMode') ?? {});
if (view.blacklistRoutes)
return !(0, exports.checkList)(activeRouteValues, view.blacklistRoutes);
if (view.whitelistRoutes)
return (0, exports.checkList)(activeRouteValues, view.whitelistRoutes);
return true;
};
exports.checkRoute = checkRoute;
const useUtilityViews = () => {
const utilityViews = (0, app_1.useAppStore)((s) => s.views.utilityBar);
const activeRoute = (0, hooks_1.useCurrentRoute)();
return (0, react_1.useMemo)(() => (0, lodash_1.filter)(utilityViews, (v) => (0, exports.checkRoute)(v, activeRoute)), [activeRoute, utilityViews]);
};
exports.useUtilityViews = useUtilityViews;
//# sourceMappingURL=utils.js.map