UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

59 lines (58 loc) 3.85 kB
"use strict"; // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.getAppRHSCommandForm = exports.getAppCommandForm = exports.makeRHSAppBindingSelector = exports.getAppBarAppBindings = exports.getChannelHeaderAppBindings = exports.makeAppBindingsSelector = exports.appBarEnabled = exports.appsEnabled = exports.appsFeatureFlagEnabled = exports.appsPluginIsEnabled = void 0; const apps_1 = require("mattermost-redux/constants/apps"); const create_selector_1 = require("mattermost-redux/selectors/create_selector"); const general_1 = require("mattermost-redux/selectors/entities/general"); const appsPluginIsEnabled = (state) => state.entities.apps.pluginEnabled; exports.appsPluginIsEnabled = appsPluginIsEnabled; exports.appsFeatureFlagEnabled = (0, create_selector_1.createSelector)('appsConfiguredAsEnabled', (state) => (0, general_1.getConfig)(state), (config) => { return config?.['FeatureFlagAppsEnabled'] === 'true'; }); exports.appsEnabled = (0, create_selector_1.createSelector)('appsEnabled', exports.appsFeatureFlagEnabled, exports.appsPluginIsEnabled, (featureFlagEnabled, pluginEnabled) => { return featureFlagEnabled && pluginEnabled; }); exports.appBarEnabled = (0, create_selector_1.createSelector)('appBarEnabled', (state) => (0, general_1.getConfig)(state), (config) => { return config?.DisableAppBar === 'false'; }); const makeAppBindingsSelector = (location) => { return (0, create_selector_1.createSelector)('makeAppBindingsSelector', (state) => state.entities.apps.main.bindings, (state) => (0, exports.appsEnabled)(state), (bindings, areAppsEnabled) => { if (!areAppsEnabled || !bindings) { return []; } const headerBindings = bindings.filter((b) => b.location === location); return headerBindings.reduce((accum, current) => accum.concat(current.bindings || []), []); }); }; exports.makeAppBindingsSelector = makeAppBindingsSelector; exports.getChannelHeaderAppBindings = (0, create_selector_1.createSelector)('getChannelHeaderAppBindings', exports.appBarEnabled, (0, exports.makeAppBindingsSelector)(apps_1.AppBindingLocations.CHANNEL_HEADER_ICON), (enabled, channelHeaderBindings) => { return enabled ? [] : channelHeaderBindings; }); exports.getAppBarAppBindings = (0, create_selector_1.createSelector)('getAppBarAppBindings', exports.appBarEnabled, (0, exports.makeAppBindingsSelector)(apps_1.AppBindingLocations.CHANNEL_HEADER_ICON), (0, exports.makeAppBindingsSelector)(apps_1.AppBindingLocations.APP_BAR), (enabled, channelHeaderBindings, appBarBindings) => { if (!enabled) { return []; } const appIds = appBarBindings.map((b) => b.app_id); const backwardsCompatibleBindings = channelHeaderBindings.filter((b) => !appIds.includes(b.app_id)); return appBarBindings.concat(backwardsCompatibleBindings); }); const makeRHSAppBindingSelector = (location) => { return (0, create_selector_1.createSelector)('makeRHSAppBindingSelector', (state) => state.entities.apps.rhs.bindings, (state) => (0, exports.appsEnabled)(state), (bindings, areAppsEnabled) => { if (!areAppsEnabled || !bindings) { return []; } const headerBindings = bindings.filter((b) => b.location === location); return headerBindings.reduce((accum, current) => accum.concat(current.bindings || []), []); }); }; exports.makeRHSAppBindingSelector = makeRHSAppBindingSelector; const getAppCommandForm = (state, location) => { return state.entities.apps.main.forms[location]; }; exports.getAppCommandForm = getAppCommandForm; const getAppRHSCommandForm = (state, location) => { return state.entities.apps.rhs.forms[location]; }; exports.getAppRHSCommandForm = getAppRHSCommandForm;