mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Enable import order (#24091)
* Enable import order * Add new order groups and add consistent-type-imports * Remove types group, move react to top and fix issues * Add store and reducers to the redux group and move imports from types folder to the end * Fix tsc * Remove react rule * Fix test * Fix eslint disable
This commit is contained in:
parent
b2f36c7cdf
commit
d13429aa92
@ -37,19 +37,50 @@
|
||||
"eol-last": ["error", "always"],
|
||||
"import/no-unresolved": 2,
|
||||
"import/order": [
|
||||
0,
|
||||
2,
|
||||
{
|
||||
"newlines-between": "always-and-inside-groups",
|
||||
"newlines-between": "always",
|
||||
"groups": [
|
||||
"builtin",
|
||||
"external",
|
||||
[
|
||||
"internal",
|
||||
"parent"
|
||||
],
|
||||
"internal",
|
||||
"sibling",
|
||||
"parent",
|
||||
"index"
|
||||
]
|
||||
],
|
||||
"pathGroups": [
|
||||
{
|
||||
"pattern": "@mattermost/**",
|
||||
"group": "external",
|
||||
"position": "after"
|
||||
},
|
||||
{
|
||||
"pattern": "mattermost-redux/**",
|
||||
"group": "external",
|
||||
"position": "after"
|
||||
},
|
||||
{
|
||||
"pattern": "@(selectors|actions|stores|store|reducers){,/**}",
|
||||
"group": "external",
|
||||
"position": "after"
|
||||
},
|
||||
{
|
||||
"pattern": "components/**",
|
||||
"group": "external",
|
||||
"position": "after"
|
||||
},
|
||||
{
|
||||
"pattern": "types{,/**}",
|
||||
"group": "internal",
|
||||
"position": "after"
|
||||
}
|
||||
],
|
||||
"alphabetize": {
|
||||
"order": "asc",
|
||||
"caseInsensitive": true
|
||||
},
|
||||
"distinctGroup": true,
|
||||
"pathGroupsExcludedImportTypes": ["builtin"]
|
||||
}
|
||||
],
|
||||
"no-undefined": 0,
|
||||
@ -95,7 +126,8 @@
|
||||
}
|
||||
],
|
||||
"max-lines": ["warn", {"max": 800, "skipBlankLines": true, "skipComments": true}],
|
||||
"formatjs/no-multiple-whitespaces": 2
|
||||
"formatjs/no-multiple-whitespaces": 2,
|
||||
"@typescript-eslint/consistent-type-imports": ["error", {"disallowTypeAnnotations": false}]
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
|
@ -2,16 +2,16 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import * as AdminActions from 'mattermost-redux/actions/admin';
|
||||
import * as UserActions from 'mattermost-redux/actions/users';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {bindClientFunc} from 'mattermost-redux/actions/helpers';
|
||||
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import * as UserActions from 'mattermost-redux/actions/users';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
|
||||
import {emitUserLoggedOutEvent} from 'actions/global_actions';
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
import {getOnNavigationConfirmed} from 'selectors/views/admin';
|
||||
import store from 'stores/redux_store.jsx';
|
||||
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
const dispatch = store.dispatch;
|
||||
|
@ -1,23 +1,23 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import type {AppCallResponse, AppForm, AppCallRequest, AppContext, AppBinding} from '@mattermost/types/apps';
|
||||
import type {CommandArgs} from '@mattermost/types/integrations';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {Action, ActionFunc, DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
import {AppCallResponse, AppForm, AppCallRequest, AppContext, AppBinding} from '@mattermost/types/apps';
|
||||
import {AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {CommandArgs} from '@mattermost/types/integrations';
|
||||
import type {Action, ActionFunc, DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
import {cleanForm} from 'mattermost-redux/utils/apps';
|
||||
|
||||
import {openModal} from 'actions/views/modals';
|
||||
|
||||
import AppsForm from 'components/apps_form';
|
||||
|
||||
import {createCallRequest, makeCallErrorResponse} from 'utils/apps';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {ModalIdentifiers} from 'utils/constants';
|
||||
import {getSiteURL, shouldOpenInNewTab} from 'utils/url';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {createCallRequest, makeCallErrorResponse} from 'utils/apps';
|
||||
|
||||
import {cleanForm} from 'mattermost-redux/utils/apps';
|
||||
|
||||
import {sendEphemeralPost} from './global_actions';
|
||||
|
||||
@ -114,9 +114,7 @@ export function doAppSubmit<Res=unknown>(inCall: AppCallRequest, intl: any): Act
|
||||
window.open(res.navigate_to_url);
|
||||
return {data: res};
|
||||
}
|
||||
const navigateURL = res.navigate_to_url.startsWith(getSiteURL()) ?
|
||||
res.navigate_to_url.slice(getSiteURL().length) :
|
||||
res.navigate_to_url;
|
||||
const navigateURL = res.navigate_to_url.startsWith(getSiteURL()) ? res.navigate_to_url.slice(getSiteURL().length) : res.navigate_to_url;
|
||||
getHistory().push(navigateURL);
|
||||
return {data: res};
|
||||
}
|
||||
|
@ -3,6 +3,13 @@
|
||||
|
||||
import nock from 'nock';
|
||||
|
||||
import type {Channel} from '@mattermost/types/channels';
|
||||
import type {Role} from '@mattermost/types/roles';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
|
||||
import {
|
||||
searchMoreChannels,
|
||||
addUsersToChannel,
|
||||
@ -10,18 +17,12 @@ import {
|
||||
openGroupChannelToUserIds,
|
||||
loadChannelsForCurrentUser, fetchChannelsAndMembers,
|
||||
} from 'actions/channel_actions';
|
||||
import {loadProfilesForSidebar} from 'actions/user_actions';
|
||||
import {CHANNELS_AND_CHANNEL_MEMBERS_PER_PAGE} from 'actions/channel_queries';
|
||||
import {loadProfilesForSidebar} from 'actions/user_actions';
|
||||
import configureStore from 'store';
|
||||
|
||||
import {Channel} from '@mattermost/types/channels';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Role} from '@mattermost/types/roles';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import TestHelper from 'packages/mattermost-redux/test/test_helper';
|
||||
import mockStore from 'tests/test_store';
|
||||
import configureStore from 'store';
|
||||
|
||||
const initialState = {
|
||||
entities: {
|
||||
|
@ -3,34 +3,35 @@
|
||||
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Channel, ChannelMembership, ServerChannel} from '@mattermost/types/channels';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import {ServerError} from '@mattermost/types/errors';
|
||||
import {Role} from '@mattermost/types/roles';
|
||||
import type {Channel, ChannelMembership, ServerChannel} from '@mattermost/types/channels';
|
||||
import type {ServerError} from '@mattermost/types/errors';
|
||||
import type {Role} from '@mattermost/types/roles';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {ChannelTypes, PreferenceTypes, RoleTypes} from 'mattermost-redux/action_types';
|
||||
import * as ChannelActions from 'mattermost-redux/actions/channels';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
import {logError} from 'mattermost-redux/actions/errors';
|
||||
import {getMyChannelMemberships} from 'mattermost-redux/selectors/entities/common';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {getChannelByName, getUnreadChannelIds, getChannel} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getMyChannelMemberships} from 'mattermost-redux/selectors/entities/common';
|
||||
import {getCurrentTeamUrl, getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
import {loadNewDMIfNeeded, loadNewGMIfNeeded, loadProfilesForSidebar} from 'actions/user_actions';
|
||||
import {
|
||||
getChannelsAndChannelMembersQueryString,
|
||||
transformToReceivedChannelsReducerPayload,
|
||||
transformToReceivedChannelMembersReducerPayload,
|
||||
ChannelsAndChannelMembersQueryResponseType,
|
||||
GraphQLChannel,
|
||||
GraphQLChannelMember,
|
||||
CHANNELS_AND_CHANNEL_MEMBERS_PER_PAGE,
|
||||
} from 'actions/channel_queries';
|
||||
import type {
|
||||
ChannelsAndChannelMembersQueryResponseType,
|
||||
GraphQLChannel,
|
||||
GraphQLChannelMember} from 'actions/channel_queries';
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
import {loadNewDMIfNeeded, loadNewGMIfNeeded, loadProfilesForSidebar} from 'actions/user_actions';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {Constants, Preferences, NotificationLevels} from 'utils/constants';
|
||||
|
@ -1,10 +1,10 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ChannelMembership, ServerChannel, ChannelType} from '@mattermost/types/channels';
|
||||
import {Role} from '@mattermost/types/roles';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {ChannelMembership, ServerChannel, ChannelType} from '@mattermost/types/channels';
|
||||
import type {Role} from '@mattermost/types/roles';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {convertRolesNamesArrayToString} from 'mattermost-redux/actions/roles';
|
||||
|
||||
|
@ -1,22 +1,24 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Stripe} from '@stripe/stripe-js';
|
||||
import type {Stripe} from '@stripe/stripe-js';
|
||||
import {getCode} from 'country-list';
|
||||
|
||||
import type {Address, Feedback, WorkspaceDeletionRequest} from '@mattermost/types/cloud';
|
||||
|
||||
import {CloudTypes} from 'mattermost-redux/action_types';
|
||||
import {getCloudCustomer, getCloudProducts, getCloudSubscription, getInvoices} from 'mattermost-redux/actions/cloud';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {getCloudErrors} from 'mattermost-redux/selectors/entities/cloud';
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getConfirmCardSetup} from 'components/payment_form/stripe';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
|
||||
import {StripeSetupIntent, BillingDetails} from 'types/cloud/sku';
|
||||
import {CloudTypes} from 'mattermost-redux/action_types';
|
||||
import {getConfirmCardSetup} from 'components/payment_form/stripe';
|
||||
|
||||
import {getBlankAddressWithCountry} from 'utils/utils';
|
||||
import {Address, Feedback, WorkspaceDeletionRequest} from '@mattermost/types/cloud';
|
||||
|
||||
import type {StripeSetupIntent, BillingDetails} from 'types/cloud/sku';
|
||||
|
||||
// Returns true for success, and false for any error
|
||||
export function completeStripeAddPaymentMethod(
|
||||
|
@ -2,23 +2,20 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
import * as Channels from 'mattermost-redux/selectors/entities/channels';
|
||||
import * as Teams from 'mattermost-redux/selectors/entities/teams';
|
||||
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
|
||||
import * as GlobalActions from 'actions/global_actions';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import UserSettingsModal from 'components/user_settings/modal';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {ActionTypes, Constants, ModalIdentifiers} from 'utils/constants';
|
||||
import * as UserAgent from 'utils/user_agent';
|
||||
import * as Utils from 'utils/utils';
|
||||
|
||||
import UserSettingsModal from 'components/user_settings/modal';
|
||||
|
||||
import {executeCommand} from './command';
|
||||
|
||||
const currentChannelId = '123';
|
||||
|
@ -1,43 +1,41 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {unfavoriteChannel} from 'mattermost-redux/actions/channels';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import {getCurrentChannel, getRedirectChannelNameForTeam, isFavoriteChannel} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getCurrentRelativeTeamUrl, getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {IntegrationTypes} from 'mattermost-redux/action_types';
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import type {CommandArgs} from '@mattermost/types/integrations';
|
||||
|
||||
import {IntegrationTypes} from 'mattermost-redux/action_types';
|
||||
import {unfavoriteChannel} from 'mattermost-redux/actions/channels';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {getCurrentChannel, getRedirectChannelNameForTeam, isFavoriteChannel} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {isMarketplaceEnabled} from 'mattermost-redux/selectors/entities/general';
|
||||
import {haveICurrentTeamPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {getCurrentRelativeTeamUrl, getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {DoAppCallResult} from 'types/apps';
|
||||
|
||||
import {openModal} from 'actions/views/modals';
|
||||
import * as GlobalActions from 'actions/global_actions';
|
||||
import * as PostActions from 'actions/post_actions';
|
||||
import {openModal} from 'actions/views/modals';
|
||||
|
||||
import {isUrlSafe, getSiteURL} from 'utils/url';
|
||||
import {localizeMessage, getUserIdFromChannelName} from 'utils/utils';
|
||||
import * as UserAgent from 'utils/user_agent';
|
||||
import {Constants, ModalIdentifiers} from 'utils/constants';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
|
||||
import UserSettingsModal from 'components/user_settings/modal';
|
||||
import KeyboardShortcutsModal from 'components/keyboard_shortcuts/keyboard_shortcuts_modal/keyboard_shortcuts_modal';
|
||||
import LeaveChannelModal from 'components/leave_channel_modal';
|
||||
import MarketplaceModal from 'components/plugin_marketplace/marketplace_modal';
|
||||
import {AppCommandParser} from 'components/suggestion/command_provider/app_command_parser/app_command_parser';
|
||||
import {intlShim} from 'components/suggestion/command_provider/app_command_parser/app_command_parser_dependencies';
|
||||
import LeaveChannelModal from 'components/leave_channel_modal';
|
||||
import KeyboardShortcutsModal from 'components/keyboard_shortcuts/keyboard_shortcuts_modal/keyboard_shortcuts_modal';
|
||||
import UserSettingsModal from 'components/user_settings/modal';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {Constants, ModalIdentifiers} from 'utils/constants';
|
||||
import {isUrlSafe, getSiteURL} from 'utils/url';
|
||||
import * as UserAgent from 'utils/user_agent';
|
||||
import {localizeMessage, getUserIdFromChannelName} from 'utils/utils';
|
||||
|
||||
import MarketplaceModal from 'components/plugin_marketplace/marketplace_modal';
|
||||
import {haveICurrentTeamPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {isMarketplaceEnabled} from 'mattermost-redux/selectors/entities/general';
|
||||
import type {DoAppCallResult} from 'types/apps';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import {doAppSubmit, openAppsModal, postEphemeralCallResponseForCommandArgs} from './apps';
|
||||
import {trackEvent} from './telemetry_actions';
|
||||
|
@ -2,14 +2,13 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import * as EmojiActions from 'mattermost-redux/actions/emojis';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import {getCustomEmojisByName} from 'mattermost-redux/selectors/entities/emojis';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
|
||||
import {getEmojiMap, getRecentEmojisData, getRecentEmojisNames, isCustomEmojiEnabled} from 'selectors/emojis';
|
||||
import {isCustomStatusEnabled, makeGetCustomStatus} from 'selectors/views/custom_status';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
|
||||
import Constants, {ActionTypes, Preferences} from 'utils/constants';
|
||||
|
@ -1,10 +1,11 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {getRecentEmojisData, getEmojiMap} from 'selectors/emojis';
|
||||
import * as EmojiActions from 'actions/emoji_actions';
|
||||
import * as PreferenceActions from 'mattermost-redux/actions/preferences';
|
||||
|
||||
import * as EmojiActions from 'actions/emoji_actions';
|
||||
import {getRecentEmojisData, getEmojiMap} from 'selectors/emojis';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
const currentUserId = 'current_user_id';
|
||||
|
@ -3,15 +3,16 @@
|
||||
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import {FileInfo} from '@mattermost/types/files';
|
||||
import {ServerError} from '@mattermost/types/errors';
|
||||
import type {ServerError} from '@mattermost/types/errors';
|
||||
import type {FileInfo} from '@mattermost/types/files';
|
||||
|
||||
import {FileTypes} from 'mattermost-redux/action_types';
|
||||
import {getLogErrorAction} from 'mattermost-redux/actions/errors';
|
||||
import {forceLogoutIfNecessary} from 'mattermost-redux/actions/helpers';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {FilePreviewInfo} from 'components/file_preview/file_preview';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import type {FilePreviewInfo} from 'components/file_preview/file_preview';
|
||||
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
|
||||
@ -92,8 +93,7 @@ export function uploadFile({file, name, type, rootId, channelId, clientId, onPro
|
||||
try {
|
||||
const errorResponse = JSON.parse(xhr.response);
|
||||
errorMessage =
|
||||
(errorResponse?.id && errorResponse?.message) ? localizeMessage(errorResponse.id, errorResponse.message) :
|
||||
localizeMessage('file_upload.generic_error', 'There was a problem uploading your files.');
|
||||
(errorResponse?.id && errorResponse?.message) ? localizeMessage(errorResponse.id, errorResponse.message) : localizeMessage('file_upload.generic_error', 'There was a problem uploading your files.');
|
||||
} catch (e) {
|
||||
errorMessage = localizeMessage('file_upload.generic_error', 'There was a problem uploading your files.');
|
||||
}
|
||||
@ -128,9 +128,7 @@ export function uploadFile({file, name, type, rootId, channelId, clientId, onPro
|
||||
dispatch(batchActions([uploadFailureAction, getLogErrorAction(errorResponse)]));
|
||||
onError(errorResponse, clientId, channelId, rootId);
|
||||
} else {
|
||||
const errorMessage = xhr.status === 0 || !xhr.status ?
|
||||
localizeMessage('file_upload.generic_error', 'There was a problem uploading your files.') :
|
||||
localizeMessage('channel_loader.unknown_error', 'We received an unexpected status code from the server.') + ' (' + xhr.status + ')';
|
||||
const errorMessage = xhr.status === 0 || !xhr.status ? localizeMessage('file_upload.generic_error', 'There was a problem uploading your files.') : localizeMessage('channel_loader.unknown_error', 'We received an unexpected status code from the server.') + ' (' + xhr.status + ')';
|
||||
|
||||
dispatch({
|
||||
type: FileTypes.UPLOAD_FILES_FAILURE,
|
||||
|
@ -1,17 +1,17 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {closeRightHandSide, closeMenu as closeRhsMenu} from 'actions/views/rhs';
|
||||
import {redirectUserToDefaultTeam, toggleSideBarRightMenuAction, getTeamRedirectChannelIfIsAccesible} from 'actions/global_actions';
|
||||
import {close as closeLhs} from 'actions/views/lhs';
|
||||
import {closeRightHandSide, closeMenu as closeRhsMenu} from 'actions/views/rhs';
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
import reduxStore from 'stores/redux_store';
|
||||
import {redirectUserToDefaultTeam, toggleSideBarRightMenuAction, getTeamRedirectChannelIfIsAccesible} from 'actions/global_actions';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
|
||||
jest.mock('actions/views/rhs', () => ({
|
||||
closeMenu: jest.fn(),
|
||||
|
@ -3,6 +3,13 @@
|
||||
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import type {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {ChannelTypes} from 'mattermost-redux/action_types';
|
||||
import {fetchAppBindings} from 'mattermost-redux/actions/apps';
|
||||
import {
|
||||
fetchMyChannelsAndMembersREST,
|
||||
getChannelByNameAndTeamName,
|
||||
@ -11,42 +18,37 @@ import {
|
||||
} from 'mattermost-redux/actions/channels';
|
||||
import {logout, loadMe, loadMeREST} from 'mattermost-redux/actions/users';
|
||||
import {Preferences} from 'mattermost-redux/constants';
|
||||
import {getConfig, isPerformanceDebuggingEnabled} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getCurrentTeamId, getMyTeams, getTeam, getMyTeamMember, getTeamMemberships, getActiveTeamsList} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getBool, getIsOnboardingFlowEnabled, isCollapsedThreadsEnabled, isGraphQLEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentUser, getCurrentUserId, isFirstAdmin} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getCurrentChannelStats, getCurrentChannelId, getMyChannelMember, getRedirectChannelNameForTeam, getChannelsNameMapInTeam, getAllDirectChannels, getChannelMessageCount} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {ChannelTypes} from 'mattermost-redux/action_types';
|
||||
import {fetchAppBindings} from 'mattermost-redux/actions/apps';
|
||||
import {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import {getCurrentChannelStats, getCurrentChannelId, getMyChannelMember, getRedirectChannelNameForTeam, getChannelsNameMapInTeam, getAllDirectChannels, getChannelMessageCount} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getConfig, isPerformanceDebuggingEnabled} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getBool, getIsOnboardingFlowEnabled, isCollapsedThreadsEnabled, isGraphQLEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentTeamId, getMyTeams, getTeam, getMyTeamMember, getTeamMemberships, getActiveTeamsList} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUser, getCurrentUserId, isFirstAdmin} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {calculateUnreadCount} from 'mattermost-redux/utils/channel_utils';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {handleNewPost} from 'actions/post_actions';
|
||||
import {stopPeriodicStatusUpdates} from 'actions/status_actions';
|
||||
import {loadProfilesForSidebar} from 'actions/user_actions';
|
||||
import {closeRightHandSide, closeMenu as closeRhsMenu, updateRhsState} from 'actions/views/rhs';
|
||||
import {clearUserCookie} from 'actions/views/cookie';
|
||||
import {close as closeLhs} from 'actions/views/lhs';
|
||||
import {closeRightHandSide, closeMenu as closeRhsMenu, updateRhsState} from 'actions/views/rhs';
|
||||
import * as WebsocketActions from 'actions/websocket_actions.jsx';
|
||||
import {getCurrentLocale} from 'selectors/i18n';
|
||||
import {getIsRhsOpen, getPreviousRhsState, getRhsState} from 'selectors/rhs';
|
||||
import BrowserStore from 'stores/browser_store';
|
||||
import store from 'stores/redux_store.jsx';
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
import store from 'stores/redux_store.jsx';
|
||||
|
||||
import SubMenuModal from 'components/widgets/menu/menu_modals/submenu_modal/submenu_modal';
|
||||
|
||||
import WebSocketClient from 'client/web_websocket_client.jsx';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {ActionTypes, PostTypes, RHSStates, ModalIdentifiers, PreviousViewedTypes} from 'utils/constants';
|
||||
import {filterAndSortTeamsByDisplayName} from 'utils/team_utils';
|
||||
import * as Utils from 'utils/utils';
|
||||
import SubMenuModal from '../components/widgets/menu/menu_modals/submenu_modal/submenu_modal';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import {openModal} from './views/modals';
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
import {
|
||||
|
@ -1,22 +1,23 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Stripe} from '@stripe/stripe-js';
|
||||
|
||||
import type {Stripe} from '@stripe/stripe-js';
|
||||
import {getCode} from 'country-list';
|
||||
|
||||
import {CreateSubscriptionRequest} from '@mattermost/types/cloud';
|
||||
import {SelfHostedExpansionRequest, SelfHostedSignupProgress} from '@mattermost/types/hosted_customer';
|
||||
import {ValueOf} from '@mattermost/types/utilities';
|
||||
import type {CreateSubscriptionRequest} from '@mattermost/types/cloud';
|
||||
import type {SelfHostedExpansionRequest} from '@mattermost/types/hosted_customer';
|
||||
import {SelfHostedSignupProgress} from '@mattermost/types/hosted_customer';
|
||||
import type {ValueOf} from '@mattermost/types/utilities';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {HostedCustomerTypes} from 'mattermost-redux/action_types';
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {bindClientFunc} from 'mattermost-redux/actions/helpers';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {getSelfHostedErrors} from 'mattermost-redux/selectors/entities/hosted_customer';
|
||||
import {StripeSetupIntent, BillingDetails} from 'types/cloud/sku';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getConfirmCardSetup} from 'components/payment_form/stripe';
|
||||
import {bindClientFunc} from 'mattermost-redux/actions/helpers';
|
||||
|
||||
import type {StripeSetupIntent, BillingDetails} from 'types/cloud/sku';
|
||||
|
||||
function selfHostedNeedsConfirmation(progress: ValueOf<typeof SelfHostedSignupProgress>): boolean {
|
||||
switch (progress) {
|
||||
|
@ -3,8 +3,8 @@
|
||||
|
||||
import * as IntegrationActions from 'mattermost-redux/actions/integrations';
|
||||
import {getProfilesByIds} from 'mattermost-redux/actions/users';
|
||||
import {getUser} from 'mattermost-redux/selectors/entities/users';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {getUser} from 'mattermost-redux/selectors/entities/users';
|
||||
|
||||
const DEFAULT_PAGE_SIZE = 100;
|
||||
|
||||
|
@ -3,10 +3,10 @@
|
||||
|
||||
import {getProfilesByIds} from 'mattermost-redux/actions/users';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
import * as Actions from 'actions/integration_actions.jsx';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
jest.mock('mattermost-redux/actions/users', () => ({
|
||||
getProfilesByIds: jest.fn(() => {
|
||||
return {type: ''};
|
||||
|
@ -1,14 +1,15 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Channel} from '@mattermost/types/channels';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {Channel} from '@mattermost/types/channels';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {sendMembersInvites, sendGuestsInvites} from 'actions/invite_actions';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {ConsolePages} from '../utils/constants';
|
||||
import {ConsolePages} from 'utils/constants';
|
||||
|
||||
jest.mock('actions/team_actions', () => ({
|
||||
addUsersToTeam: () => ({ // since we are using addUsersToTeamGracefully, this call will always succeed
|
||||
|
@ -1,23 +1,24 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import {TeamMemberWithError, TeamInviteWithError} from '@mattermost/types/teams';
|
||||
import type {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import type {TeamMemberWithError, TeamInviteWithError} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import type {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {joinChannel} from 'mattermost-redux/actions/channels';
|
||||
import {getTeamMember} from 'mattermost-redux/selectors/entities/teams';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {getChannelMembersInChannels} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getTeamMember} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {isCurrentUserSystemAdmin} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {isGuest} from 'mattermost-redux/utils/user_utils';
|
||||
|
||||
import {addUsersToTeam} from 'actions/team_actions';
|
||||
|
||||
import {ConsolePages} from 'utils/constants';
|
||||
import {t} from 'utils/i18n';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
import {ConsolePages} from 'utils/constants';
|
||||
|
||||
export function sendMembersInvites(teamId: string, users: UserProfile[], emails: string[]): ActionFunc {
|
||||
return async (dispatch: DispatchFunc, getState: GetStateFunc) => {
|
||||
|
@ -1,24 +1,25 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import type {AppCall, AppExpand, AppFormValues} from '@mattermost/types/apps';
|
||||
import type {MarketplaceApp, MarketplacePlugin} from '@mattermost/types/marketplace';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {AppBindingLocations, AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getFilter, getPlugin} from 'selectors/views/marketplace';
|
||||
|
||||
import {intlShim} from 'components/suggestion/command_provider/app_command_parser/app_command_parser_dependencies';
|
||||
import type {DoAppCallResult} from 'components/suggestion/command_provider/app_command_parser/app_command_parser_dependencies';
|
||||
|
||||
import {createCallContext, createCallRequest} from 'utils/apps';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
import {AppBindingLocations, AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
import {AppCall, AppExpand, AppFormValues} from '@mattermost/types/apps';
|
||||
import {createCallContext, createCallRequest} from 'utils/apps';
|
||||
import {DoAppCallResult, intlShim} from 'components/suggestion/command_provider/app_command_parser/app_command_parser_dependencies';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import {doAppSubmit, openAppsModal, postEphemeralCallResponseForContext} from './apps';
|
||||
|
||||
|
@ -1,21 +1,18 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
// import thunk from 'redux-thunk';
|
||||
// import configureStore from 'redux-mock-store';
|
||||
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
import type {GlobalState} from '@mattermost/types/store';
|
||||
|
||||
import {ChannelTypes} from 'mattermost-redux/action_types';
|
||||
import {receivedNewPost} from 'mattermost-redux/actions/posts';
|
||||
import {Posts} from 'mattermost-redux/constants';
|
||||
import type {GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import * as NewPostActions from 'actions/new_post';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {Constants} from 'utils/constants';
|
||||
import {GlobalState} from '@mattermost/types/store';
|
||||
|
||||
import {GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
jest.mock('mattermost-redux/actions/channels', () => ({
|
||||
...jest.requireActual('mattermost-redux/actions/channels'),
|
||||
|
@ -1,10 +1,10 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import * as Redux from 'redux';
|
||||
import type * as Redux from 'redux';
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {
|
||||
actionsToMarkChannelAsRead,
|
||||
@ -12,28 +12,25 @@ import {
|
||||
markChannelAsViewedOnServer,
|
||||
} from 'mattermost-redux/actions/channels';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
|
||||
import {getCurrentChannelId, isManuallyUnread} from 'mattermost-redux/selectors/entities/channels';
|
||||
import * as PostSelectors from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getThread} from 'mattermost-redux/selectors/entities/threads';
|
||||
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {
|
||||
isFromWebhook,
|
||||
isSystemMessage,
|
||||
shouldIgnorePost,
|
||||
} from 'mattermost-redux/utils/post_utils';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import {updateThreadLastOpened} from 'actions/views/threads';
|
||||
import {sendDesktopNotification} from 'actions/notification_actions.jsx';
|
||||
import {updateThreadLastOpened} from 'actions/views/threads';
|
||||
import {isThreadOpen, makeGetThreadLastViewedAt} from 'selectors/views/threads';
|
||||
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
import {isThreadOpen, makeGetThreadLastViewedAt} from 'selectors/views/threads';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
export type NewPostMessageProps = {
|
||||
mentions: string[];
|
||||
|
@ -14,17 +14,18 @@ import {isChannelMuted} from 'mattermost-redux/utils/channel_utils';
|
||||
import {isSystemMessage, isUserAddedInChannel} from 'mattermost-redux/utils/post_utils';
|
||||
import {displayUsername} from 'mattermost-redux/utils/user_utils';
|
||||
|
||||
import {isThreadOpen} from 'selectors/views/threads';
|
||||
import {getChannelURL, getPermalinkURL} from 'selectors/urls';
|
||||
import {isThreadOpen} from 'selectors/views/threads';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import Constants, {NotificationLevels, UserStatuses} from 'utils/constants';
|
||||
import {t} from 'utils/i18n';
|
||||
import {stripMarkdown} from 'utils/markdown';
|
||||
import * as NotificationSounds from 'utils/notification_sounds';
|
||||
import {showNotification} from 'utils/notifications';
|
||||
import {isDesktopApp, isMobileApp, isWindowsApp} from 'utils/user_agent';
|
||||
import * as Utils from 'utils/utils';
|
||||
import {t} from 'utils/i18n';
|
||||
import {stripMarkdown} from 'utils/markdown';
|
||||
|
||||
import {runDesktopNotificationHooks} from './hooks';
|
||||
|
||||
const NOTIFY_TEXT_MAX_LENGTH = 50;
|
||||
|
@ -2,7 +2,6 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import testConfigureStore from 'tests/test_store';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import Constants, {NotificationLevels, UserStatuses} from 'utils/constants';
|
||||
import * as NotificationSounds from 'utils/notification_sounds';
|
||||
|
@ -1,18 +1,19 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {FileInfo} from '@mattermost/types/files';
|
||||
import type {FileInfo} from '@mattermost/types/files';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {ChannelTypes, SearchTypes} from 'mattermost-redux/action_types';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import {Posts} from 'mattermost-redux/constants';
|
||||
|
||||
import * as Actions from 'actions/post_actions';
|
||||
import {Constants, ActionTypes, RHSStates} from 'utils/constants';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {Constants, ActionTypes, RHSStates} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
jest.mock('mattermost-redux/actions/posts', () => ({
|
||||
addReaction: (...args: any[]) => ({type: 'MOCK_ADD_REACTION', args}),
|
||||
|
@ -1,32 +1,32 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {GroupChannel} from '@mattermost/types/groups';
|
||||
import {FileInfo} from '@mattermost/types/files';
|
||||
import type {FileInfo} from '@mattermost/types/files';
|
||||
import type {GroupChannel} from '@mattermost/types/groups';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {SearchTypes} from 'mattermost-redux/action_types';
|
||||
import {getMyChannelMember} from 'mattermost-redux/actions/channels';
|
||||
import {getChannel, getMyChannelMember as getMyChannelMemberSelector} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import * as ThreadActions from 'mattermost-redux/actions/threads';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import * as ThreadActions from 'mattermost-redux/actions/threads';
|
||||
import {getChannel, getMyChannelMember as getMyChannelMemberSelector} from 'mattermost-redux/selectors/entities/channels';
|
||||
import * as PostSelectors from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {canEditPost, comparePosts} from 'mattermost-redux/utils/post_utils';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {addRecentEmoji, addRecentEmojis} from 'actions/emoji_actions';
|
||||
import * as StorageActions from 'actions/storage';
|
||||
import {loadNewDMIfNeeded, loadNewGMIfNeeded} from 'actions/user_actions';
|
||||
import {removeDraft} from 'actions/views/drafts';
|
||||
import * as RhsActions from 'actions/views/rhs';
|
||||
import {manuallyMarkThreadAsUnread} from 'actions/views/threads';
|
||||
import {removeDraft} from 'actions/views/drafts';
|
||||
import {isEmbedVisible, isInlineImageVisible} from 'selectors/posts';
|
||||
import {getSelectedPostId, getSelectedPostCardId, getRhsState} from 'selectors/rhs';
|
||||
import {getGlobalItem} from 'selectors/storage';
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import {
|
||||
ActionTypes,
|
||||
Constants,
|
||||
@ -36,7 +36,10 @@ import {
|
||||
import {matchEmoticons} from 'utils/emoticons';
|
||||
import * as UserAgent from 'utils/user_agent';
|
||||
|
||||
import {completePostReceive, NewPostMessageProps} from './new_post';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import {completePostReceive} from './new_post';
|
||||
import type {NewPostMessageProps} from './new_post';
|
||||
|
||||
export function handleNewPost(post: Post, msg?: {data?: NewPostMessageProps & GroupChannel}) {
|
||||
return async (dispatch: DispatchFunc, getState: GetStateFunc) => {
|
||||
|
@ -3,16 +3,17 @@
|
||||
|
||||
import {cloneDeep} from 'lodash';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Preferences} from 'mattermost-redux/constants';
|
||||
import {getStatusesByIds} from 'mattermost-redux/actions/users';
|
||||
import {Preferences} from 'mattermost-redux/constants';
|
||||
|
||||
import * as Actions from 'actions/status_actions';
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
jest.mock('mattermost-redux/actions/users', () => ({
|
||||
getStatusesByIds: jest.fn(() => {
|
||||
return {type: ''};
|
||||
|
@ -1,19 +1,21 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {getStatusesByIds} from 'mattermost-redux/actions/users';
|
||||
import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getPostsInCurrentChannel} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getDirectShowPreferences} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {GlobalState} from 'types/store';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {loadCustomEmojisForCustomStatusesByUserIds} from 'actions/emoji_actions';
|
||||
|
||||
import {Constants} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
export function loadStatusesForChannelAndSidebar(): ActionFunc {
|
||||
return (dispatch: DispatchFunc, getState: GetStateFunc) => {
|
||||
const state = getState();
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {StorageTypes} from 'utils/constants';
|
||||
import {getPrefix} from 'utils/storage_utils';
|
||||
|
@ -1,14 +1,13 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import * as channelActions from 'mattermost-redux/actions/channels';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import * as userActions from 'mattermost-redux/actions/users';
|
||||
|
||||
import * as Actions from 'actions/team_actions';
|
||||
|
||||
import configureStore from 'tests/test_store';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import {ServerError} from '@mattermost/types/errors';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {ServerError} from '@mattermost/types/errors';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {TeamTypes} from 'mattermost-redux/action_types';
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {getChannelStats} from 'mattermost-redux/actions/channels';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {getUser} from 'mattermost-redux/actions/users';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {selectTeam} from 'mattermost-redux/actions/teams';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getUser} from 'mattermost-redux/actions/users';
|
||||
import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {Preferences} from 'utils/constants';
|
||||
|
@ -8,7 +8,6 @@ import {getConfig, isPerformanceDebuggingEnabled} from 'mattermost-redux/selecto
|
||||
import {getBool} from 'mattermost-redux/selectors/entities/preferences';
|
||||
|
||||
import {isDevModeEnabled} from 'selectors/general';
|
||||
|
||||
import store from 'stores/redux_store.jsx';
|
||||
|
||||
const SUPPORTS_CLEAR_MARKS = isSupported([performance.clearMarks]);
|
||||
|
@ -1,10 +1,10 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Channel, ChannelMembership, ChannelMessageCount} from '@mattermost/types/channels';
|
||||
import {Team, TeamMembership} from '@mattermost/types/teams';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {Channel, ChannelMembership, ChannelMessageCount} from '@mattermost/types/channels';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
import type {Team, TeamMembership} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Preferences, General} from 'mattermost-redux/constants';
|
||||
import {CategoryTypes} from 'mattermost-redux/constants/channel_categories';
|
||||
@ -12,12 +12,12 @@ import {getPreferenceKey} from 'mattermost-redux/utils/preference_utils';
|
||||
|
||||
import * as UserActions from 'actions/user_actions';
|
||||
import store from 'stores/redux_store';
|
||||
|
||||
import TestHelper from 'packages/mattermost-redux/test/test_helper';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
jest.mock('mattermost-redux/actions/users', () => {
|
||||
const original = jest.requireActual('mattermost-redux/actions/users');
|
||||
return {
|
||||
|
@ -3,10 +3,8 @@
|
||||
|
||||
import PQueue from 'p-queue';
|
||||
|
||||
import {UserProfile, UserStatus} from '@mattermost/types/users';
|
||||
|
||||
import {Channel} from '@mattermost/types/channels';
|
||||
import {GlobalState} from 'types/store';
|
||||
import type {Channel} from '@mattermost/types/channels';
|
||||
import type {UserProfile, UserStatus} from '@mattermost/types/users';
|
||||
|
||||
import {getChannelAndMyMember, getChannelMembersByIds} from 'mattermost-redux/actions/channels';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
@ -24,19 +22,18 @@ import {
|
||||
import {getBool, isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentTeamId, getTeamMember} from 'mattermost-redux/selectors/entities/teams';
|
||||
import * as Selectors from 'mattermost-redux/selectors/entities/users';
|
||||
import {ActionResult, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import type {ActionResult, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {calculateUnreadCount} from 'mattermost-redux/utils/channel_utils';
|
||||
|
||||
import {loadCustomEmojisForCustomStatusesByUserIds} from 'actions/emoji_actions';
|
||||
import {loadStatusesForProfilesList, loadStatusesForProfilesMap} from 'actions/status_actions';
|
||||
|
||||
import {getDisplayedChannels} from 'selectors/views/channel_sidebar';
|
||||
|
||||
import store from 'stores/redux_store.jsx';
|
||||
|
||||
import * as Utils from 'utils/utils';
|
||||
import {Constants, Preferences, UserStatuses} from 'utils/constants';
|
||||
import * as Utils from 'utils/utils';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
export const queue = new PQueue({concurrency: 4});
|
||||
const dispatch = store.dispatch;
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {GenericAction} from 'mattermost-redux/types/actions';
|
||||
import type {GenericAction} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {Constants, ActionTypes, WindowSizes} from 'utils/constants';
|
||||
|
||||
|
@ -1,15 +1,16 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {General, Posts, RequestStatus} from 'mattermost-redux/constants';
|
||||
import {leaveChannel, markChannelAsRead, getChannel} from 'mattermost-redux/actions/channels';
|
||||
import * as UserActions from 'mattermost-redux/actions/users';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import * as UserActions from 'mattermost-redux/actions/users';
|
||||
import {General, Posts, RequestStatus} from 'mattermost-redux/constants';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import * as Actions from 'actions/views/channel';
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {ActionTypes, PostRequestTypes} from 'utils/constants';
|
||||
|
||||
jest.mock('utils/channel_utils.tsx', () => {
|
||||
|
@ -1,11 +1,12 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import type {AnyAction} from 'redux';
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
import {AnyAction} from 'redux';
|
||||
|
||||
import {Channel} from '@mattermost/types/channels';
|
||||
import type {Channel} from '@mattermost/types/channels';
|
||||
|
||||
import {TeamTypes} from 'mattermost-redux/action_types';
|
||||
import {
|
||||
leaveChannel as leaveChannelRedux,
|
||||
joinChannel,
|
||||
@ -15,12 +16,9 @@ import {
|
||||
getChannel as loadChannel,
|
||||
} from 'mattermost-redux/actions/channels';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import {TeamTypes} from 'mattermost-redux/action_types';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {autocompleteUsers} from 'mattermost-redux/actions/users';
|
||||
import {selectTeam} from 'mattermost-redux/actions/teams';
|
||||
import {autocompleteUsers} from 'mattermost-redux/actions/users';
|
||||
import {Posts, RequestStatus} from 'mattermost-redux/constants';
|
||||
|
||||
import {
|
||||
getChannel,
|
||||
getChannelsNameMapInCurrentTeam,
|
||||
@ -33,6 +31,7 @@ import {
|
||||
isManuallyUnread,
|
||||
getCurrentChannelId,
|
||||
} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getMostRecentPostIdInChannel, getPost} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {
|
||||
getCurrentRelativeTeamUrl,
|
||||
getCurrentTeam,
|
||||
@ -41,24 +40,24 @@ import {
|
||||
getTeamsList,
|
||||
} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId, getUserByUsername} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getMostRecentPostIdInChannel, getPost} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {makeAddLastViewAtToProfiles} from 'mattermost-redux/selectors/entities/utils';
|
||||
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {getChannelByName} from 'mattermost-redux/utils/channel_utils';
|
||||
import EventEmitter from 'mattermost-redux/utils/event_emitter';
|
||||
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
import {openDirectChannelToUserId} from 'actions/channel_actions';
|
||||
import {loadCustomStatusEmojisForPostList} from 'actions/emoji_actions';
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
import {getLastViewedChannelName} from 'selectors/local_storage';
|
||||
import {getSelectedPost, getSelectedPostId} from 'selectors/rhs';
|
||||
import {getLastPostsApiTimeForChannel} from 'selectors/views/channel';
|
||||
import {getSocketStatus} from 'selectors/views/websocket';
|
||||
import {getSelectedPost, getSelectedPostId} from 'selectors/rhs';
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {Constants, ActionTypes, EventTypes, PostRequestTypes} from 'utils/constants';
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
import {isArchivedChannel} from 'utils/channel_utils';
|
||||
import {Constants, ActionTypes, EventTypes, PostRequestTypes} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
export function goToLastViewedChannel() {
|
||||
|
@ -2,7 +2,7 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {CategorySorting} from '@mattermost/types/channel_categories';
|
||||
import {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import type {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
|
||||
import {insertWithoutDuplicates} from 'mattermost-redux/utils/array_utils';
|
||||
|
||||
|
@ -6,13 +6,15 @@ import {General} from 'mattermost-redux/constants';
|
||||
import {CategoryTypes} from 'mattermost-redux/constants/channel_categories';
|
||||
import {getCategory, makeGetChannelIdsForCategory} from 'mattermost-redux/selectors/entities/channel_categories';
|
||||
import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {insertMultipleWithoutDuplicates} from 'mattermost-redux/utils/array_utils';
|
||||
|
||||
import {getCategoriesForCurrentTeam, getChannelsInCategoryOrder, getDisplayedChannels} from 'selectors/views/channel_sidebar';
|
||||
import {DraggingState, GlobalState} from 'types/store';
|
||||
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
import type {DraggingState, GlobalState} from 'types/store';
|
||||
|
||||
export function setUnreadFilterEnabled(enabled: boolean) {
|
||||
return {
|
||||
type: ActionTypes.SET_UNREAD_FILTER_ENABLED,
|
||||
|
@ -8,6 +8,10 @@ import {
|
||||
} from 'mattermost-redux/actions/posts';
|
||||
import {Posts} from 'mattermost-redux/constants';
|
||||
|
||||
import {executeCommand} from 'actions/command';
|
||||
import * as HookActions from 'actions/hooks';
|
||||
import * as PostActions from 'actions/post_actions';
|
||||
import {setGlobalItem, actionOnGlobalItemsWithPrefix} from 'actions/storage';
|
||||
import {
|
||||
clearCommentDraftUploads,
|
||||
updateCommentDraft,
|
||||
@ -19,13 +23,9 @@ import {
|
||||
makeOnEditLatestPost,
|
||||
} from 'actions/views/create_comment';
|
||||
import {removeDraft, setGlobalDraftSource} from 'actions/views/drafts';
|
||||
import {setGlobalItem, actionOnGlobalItemsWithPrefix} from 'actions/storage';
|
||||
import * as PostActions from 'actions/post_actions';
|
||||
import {executeCommand} from 'actions/command';
|
||||
import * as HookActions from 'actions/hooks';
|
||||
import {StoragePrefixes} from 'utils/constants';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {StoragePrefixes} from 'utils/constants';
|
||||
|
||||
/* eslint-disable global-require */
|
||||
|
||||
|
@ -1,17 +1,8 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {createSelector} from 'mattermost-redux/selectors/create_selector';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {
|
||||
makeGetMessageInHistoryItem,
|
||||
getPost,
|
||||
makeGetPostIdsForThread,
|
||||
} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getCustomEmojisByName} from 'mattermost-redux/selectors/entities/emojis';
|
||||
import {
|
||||
removeReaction,
|
||||
addMessageIntoHistory,
|
||||
@ -19,21 +10,31 @@ import {
|
||||
moveHistoryIndexForward,
|
||||
} from 'mattermost-redux/actions/posts';
|
||||
import {Posts} from 'mattermost-redux/constants';
|
||||
import {createSelector} from 'mattermost-redux/selectors/create_selector';
|
||||
import {getCustomEmojisByName} from 'mattermost-redux/selectors/entities/emojis';
|
||||
import {
|
||||
makeGetMessageInHistoryItem,
|
||||
getPost,
|
||||
makeGetPostIdsForThread,
|
||||
} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {isPostPendingOrFailed} from 'mattermost-redux/utils/post_utils';
|
||||
|
||||
import * as PostActions from 'actions/post_actions';
|
||||
import {executeCommand} from 'actions/command';
|
||||
import {runMessageWillBePostedHooks, runSlashCommandWillBePostedHooks} from 'actions/hooks';
|
||||
import * as PostActions from 'actions/post_actions';
|
||||
import {actionOnGlobalItemsWithPrefix} from 'actions/storage';
|
||||
import {updateDraft, removeDraft} from 'actions/views/drafts';
|
||||
import EmojiMap from 'utils/emoji_map';
|
||||
import {getPostDraft} from 'selectors/rhs';
|
||||
|
||||
import * as Utils from 'utils/utils';
|
||||
import {Constants, StoragePrefixes} from 'utils/constants';
|
||||
import type {PostDraft} from 'types/store/draft';
|
||||
import EmojiMap from 'utils/emoji_map';
|
||||
import * as Utils from 'utils/utils';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import type {PostDraft} from 'types/store/draft';
|
||||
|
||||
export function clearCommentDraftUploads() {
|
||||
return actionOnGlobalItemsWithPrefix(StoragePrefixes.COMMENT_DRAFT, (_key: string, draft: PostDraft) => {
|
||||
|
@ -1,17 +1,16 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {setGlobalItem} from 'actions/storage';
|
||||
import {PostDraft} from 'types/store/draft';
|
||||
import {StoragePrefixes} from 'utils/constants';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {Posts, Preferences} from 'mattermost-redux/constants';
|
||||
|
||||
import {getPreferenceKey} from 'mattermost-redux/utils/preference_utils';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {setGlobalItem} from 'actions/storage';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {StoragePrefixes} from 'utils/constants';
|
||||
|
||||
import type {PostDraft} from 'types/store/draft';
|
||||
|
||||
import {removeDraft, setGlobalDraftSource, updateDraft} from './drafts';
|
||||
|
||||
|
@ -3,27 +3,28 @@
|
||||
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {syncedDraftsAreAllowedAndEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import type {Draft as ServerDraft} from '@mattermost/types/drafts';
|
||||
import type {FileInfo} from '@mattermost/types/files';
|
||||
import type {PostMetadata, PostPriorityMetadata} from '@mattermost/types/posts';
|
||||
import type {PreferenceType} from '@mattermost/types/preferences';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import Preferences from 'mattermost-redux/constants/preferences';
|
||||
import {syncedDraftsAreAllowedAndEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {ActionFunc, DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {setGlobalItem} from 'actions/storage';
|
||||
import {getConnectionId} from 'selectors/general';
|
||||
import type {GlobalState} from 'types/store';
|
||||
import {PostDraft} from 'types/store/draft';
|
||||
import {getGlobalItem} from 'selectors/storage';
|
||||
import {makeGetDrafts} from 'selectors/drafts';
|
||||
import {getConnectionId} from 'selectors/general';
|
||||
import {getGlobalItem} from 'selectors/storage';
|
||||
|
||||
import {ActionTypes, StoragePrefixes} from 'utils/constants';
|
||||
|
||||
import type {Draft as ServerDraft} from '@mattermost/types/drafts';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import {PostMetadata, PostPriorityMetadata} from '@mattermost/types/posts';
|
||||
import {FileInfo} from '@mattermost/types/files';
|
||||
import {PreferenceType} from '@mattermost/types/preferences';
|
||||
import {savePreferences} from 'mattermost-redux/actions/preferences';
|
||||
import Preferences from 'mattermost-redux/constants/preferences';
|
||||
import type {GlobalState} from 'types/store';
|
||||
import type {PostDraft} from 'types/store/draft';
|
||||
|
||||
type Draft = {
|
||||
key: keyof GlobalState['storage']['storage'];
|
||||
|
@ -1,12 +1,12 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {searchAssociatedGroupsForReferenceLocal} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {isCustomGroupsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {haveIChannelPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {searchGroups} from 'mattermost-redux/actions/groups';
|
||||
import Permissions from 'mattermost-redux/constants/permissions';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {searchAssociatedGroupsForReferenceLocal} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {isCustomGroupsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {haveIChannelPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
|
||||
export function searchAssociatedGroupsForReference(prefix, teamId, channelId) {
|
||||
return async (dispatch, getState) => {
|
||||
|
@ -1,15 +1,17 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {MockStoreEnhanced} from 'redux-mock-store';
|
||||
import type {MockStoreEnhanced} from 'redux-mock-store';
|
||||
|
||||
import {DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
import type {DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {close, open, toggle} from 'actions/views/lhs';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
import mockStore from 'tests/test_store';
|
||||
import configureStore from 'store';
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import * as Actions from './lhs';
|
||||
|
||||
|
@ -2,15 +2,17 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {selectChannel} from 'mattermost-redux/actions/channels';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {getCurrentRelativeTeamUrl} from 'mattermost-redux/selectors/entities/teams';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {LhsItemType} from 'types/store/lhs';
|
||||
import Constants, {ActionTypes} from 'utils/constants';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {SidebarSize} from 'components/resizable_sidebar/constants';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import Constants, {ActionTypes} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
import {LhsItemType} from 'types/store/lhs';
|
||||
|
||||
export const setLhsSize = (sidebarSize?: SidebarSize) => {
|
||||
let newSidebarSize = sidebarSize;
|
||||
if (!sidebarSize) {
|
||||
|
@ -5,14 +5,14 @@ import nock from 'nock';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
|
||||
import TestHelper from 'packages/mattermost-redux/test/test_helper';
|
||||
|
||||
import {
|
||||
login,
|
||||
loginById,
|
||||
} from 'actions/views/login';
|
||||
import configureStore from 'store';
|
||||
|
||||
import TestHelper from 'packages/mattermost-redux/test/test_helper';
|
||||
|
||||
describe('actions/views/login', () => {
|
||||
describe('login', () => {
|
||||
test('should return successful when login is successful', async () => {
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import {ServerError} from '@mattermost/types/errors';
|
||||
import type {ServerError} from '@mattermost/types/errors';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {ActionFunc, DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
import {UserTypes} from 'mattermost-redux/action_types';
|
||||
import {logError} from 'mattermost-redux/actions/errors';
|
||||
import {loadRolesIfNeeded} from 'mattermost-redux/actions/roles';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import type {ActionFunc, DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
export function login(loginId: string, password: string, mfaToken = ''): ActionFunc {
|
||||
return async (dispatch: DispatchFunc) => {
|
||||
|
@ -10,6 +10,7 @@ import {
|
||||
deactivateMfa,
|
||||
generateMfaSecret,
|
||||
} from 'actions/views/mfa';
|
||||
|
||||
import configureStore from 'tests/test_store';
|
||||
|
||||
describe('actions/views/mfa', () => {
|
||||
|
@ -5,9 +5,10 @@ import React from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
|
||||
import {openModal, closeModal} from 'actions/views/modals';
|
||||
import {ActionTypes, ModalIdentifiers} from 'utils/constants';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {ActionTypes, ModalIdentifiers} from 'utils/constants';
|
||||
|
||||
class TestModal extends React.PureComponent {
|
||||
render() {
|
||||
return (
|
||||
|
@ -1,10 +1,10 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ModalData} from 'types/actions';
|
||||
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
import type {ModalData} from 'types/actions';
|
||||
|
||||
export function openModal<P>(modalData: ModalData<P>) {
|
||||
return {
|
||||
type: ActionTypes.MODAL_OPEN,
|
||||
|
@ -1,16 +1,19 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {getCurrentTeamId, getTeam} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUser, getCurrentUserId} from 'mattermost-redux/selectors/entities/common';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {GlobalState} from 'types/store';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import InvitationModal from 'components/invitation_modal';
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
import {ActionTypes, Constants, ModalIdentifiers} from 'utils/constants';
|
||||
import {getCurrentTeamId, getTeam} from 'mattermost-redux/selectors/entities/teams';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getTeamRedirectChannelIfIsAccesible} from 'actions/global_actions';
|
||||
import LocalStorageStore from 'stores/local_storage_store';
|
||||
|
||||
import InvitationModal from 'components/invitation_modal';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {ActionTypes, Constants, ModalIdentifiers} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import {openModal} from './modals';
|
||||
|
||||
|
@ -1,22 +1,22 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {logError} from 'mattermost-redux/actions/errors';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
import {haveIChannelPermission, haveICurrentChannelPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {getLicense} from 'mattermost-redux/selectors/entities/general';
|
||||
import {isCustomGroupsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getAssociatedGroupsForReferenceByMention} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {isCustomGroupsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {haveIChannelPermission, haveICurrentChannelPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {getCurrentTeam} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
||||
|
||||
import {getTimestamp} from 'utils/utils';
|
||||
import {getPermalinkURL} from 'selectors/urls';
|
||||
import {getSiteURL} from 'utils/url';
|
||||
import {containsAtChannel, groupsMentionedInText} from 'utils/post_utils';
|
||||
|
||||
import {ActionTypes, AnnouncementBarTypes} from 'utils/constants';
|
||||
import {containsAtChannel, groupsMentionedInText} from 'utils/post_utils';
|
||||
import {getSiteURL} from 'utils/url';
|
||||
import {getTimestamp} from 'utils/utils';
|
||||
|
||||
import {runMessageWillBePostedHooks} from '../hooks';
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {getTeamMember} from 'mattermost-redux/actions/teams';
|
||||
import {getChannelMember} from 'mattermost-redux/actions/channels';
|
||||
|
||||
import {DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
import {getTeamMember} from 'mattermost-redux/actions/teams';
|
||||
import type {DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
export function getMembershipForEntities(teamId: string, userId: string, channelId?: string) {
|
||||
return (dispatch: DispatchFunc) => {
|
||||
|
@ -3,16 +3,18 @@
|
||||
|
||||
import {cloneDeep, set} from 'lodash';
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
import {MockStoreEnhanced} from 'redux-mock-store';
|
||||
import type {MockStoreEnhanced} from 'redux-mock-store';
|
||||
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import type {IDMappedObjects} from '@mattermost/types/utilities';
|
||||
|
||||
import {SearchTypes} from 'mattermost-redux/action_types';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import * as SearchActions from 'mattermost-redux/actions/search';
|
||||
import {SearchTypes} from 'mattermost-redux/action_types';
|
||||
import {DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {IDMappedObjects} from '@mattermost/types/utilities';
|
||||
import type {DispatchFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
import {
|
||||
updateRhsState,
|
||||
selectPostFromRightHandSideSearch,
|
||||
@ -38,15 +40,15 @@ import {
|
||||
showChannelMembers,
|
||||
openShowEditHistory,
|
||||
} from 'actions/views/rhs';
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {ActionTypes, RHSStates, Constants} from 'utils/constants';
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
import {getBrowserUtcOffset} from 'utils/timezone';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {ViewsState} from 'types/store/views';
|
||||
import {RhsState} from 'types/store/rhs';
|
||||
import type {GlobalState} from 'types/store';
|
||||
import type {RhsState} from 'types/store/rhs';
|
||||
import type {ViewsState} from 'types/store/views';
|
||||
|
||||
const currentChannelId = '123';
|
||||
const currentTeamId = '321';
|
||||
|
@ -2,10 +2,15 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import debounce from 'lodash/debounce';
|
||||
import {AnyAction} from 'redux';
|
||||
import type {AnyAction} from 'redux';
|
||||
import {batchActions} from 'redux-batched-actions';
|
||||
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {SearchTypes} from 'mattermost-redux/action_types';
|
||||
import {getChannel} from 'mattermost-redux/actions/channels';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import {getPostsByIds, getPost as fetchPost} from 'mattermost-redux/actions/posts';
|
||||
import {
|
||||
clearSearch,
|
||||
getFlaggedPosts,
|
||||
@ -13,26 +18,24 @@ import {
|
||||
searchPostsWithParams,
|
||||
searchFilesWithParams,
|
||||
} from 'mattermost-redux/actions/search';
|
||||
import * as PostActions from 'mattermost-redux/actions/posts';
|
||||
import {getCurrentUserMentionKeys} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getCurrentChannelId, getCurrentChannelNameForSearchShortcut, getChannel as getChannelSelector} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getConfig} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getPost} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentTimezone} from 'mattermost-redux/selectors/entities/timezone';
|
||||
import {Action, ActionResult, DispatchFunc, GenericAction, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {getCurrentUserMentionKeys} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {Action, ActionResult, DispatchFunc, GenericAction, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {trackEvent} from 'actions/telemetry_actions.jsx';
|
||||
import {getSearchTerms, getRhsState, getPluggableId, getFilesSearchExtFilter, getPreviousRhsState} from 'selectors/rhs';
|
||||
|
||||
import {SidebarSize} from 'components/resizable_sidebar/constants';
|
||||
|
||||
import {ActionTypes, RHSStates, Constants} from 'utils/constants';
|
||||
import {getBrowserUtcOffset, getUtcOffsetForTimeZone} from 'utils/timezone';
|
||||
import {RhsState} from 'types/store/rhs';
|
||||
import {GlobalState} from 'types/store';
|
||||
import {getPostsByIds, getPost as fetchPost} from 'mattermost-redux/actions/posts';
|
||||
|
||||
import {getChannel} from 'mattermost-redux/actions/channels';
|
||||
import {SidebarSize} from 'components/resizable_sidebar/constants';
|
||||
import type {GlobalState} from 'types/store';
|
||||
import type {RhsState} from 'types/store/rhs';
|
||||
|
||||
function selectPostFromRightHandSideSearchWithPreviousState(post: Post, previousRhsState?: RhsState) {
|
||||
return async (dispatch: DispatchFunc, getState: GetStateFunc) => {
|
||||
|
@ -1,11 +1,11 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
import * as Actions from 'actions/views/root';
|
||||
import * as i18nSelectors from 'selectors/i18n';
|
||||
|
||||
import mockStore from 'tests/test_store';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
jest.mock('mattermost-redux/actions/general', () => {
|
||||
const original = jest.requireActual('mattermost-redux/actions/general');
|
||||
|
@ -1,16 +1,18 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {getClientConfig, getLicenseConfig} from 'mattermost-redux/actions/general';
|
||||
import {loadMe, loadMeREST} from 'mattermost-redux/actions/users';
|
||||
import {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
import {GlobalState} from 'types/store';
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import type {DispatchFunc, GetStateFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getCurrentLocale, getTranslations} from 'selectors/i18n';
|
||||
import {Translations} from 'types/store/i18n';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
import en from 'i18n/en.json';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
import type {Translations} from 'types/store/i18n';
|
||||
|
||||
const pluginTranslationSources: Record<string, TranslationPluginFunction> = {};
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ActionTypes} from '../../utils/constants';
|
||||
import {ActionTypes} from 'utils/constants';
|
||||
|
||||
export function setShowPreviewOnCreateComment(showPreview) {
|
||||
return {
|
||||
|
@ -21,7 +21,8 @@ import {
|
||||
CloudTypes,
|
||||
HostedCustomerTypes,
|
||||
} from 'mattermost-redux/action_types';
|
||||
import {General, Permissions} from 'mattermost-redux/constants';
|
||||
import {getStandardAnalytics} from 'mattermost-redux/actions/admin';
|
||||
import {fetchAppBindings, fetchRHSAppsBindings} from 'mattermost-redux/actions/apps';
|
||||
import {addChannelToInitialCategory, fetchMyCategories, receivedCategoryOrder} from 'mattermost-redux/actions/channel_categories';
|
||||
import {
|
||||
getChannelAndMyMember,
|
||||
@ -31,11 +32,21 @@ import {
|
||||
getChannelMemberCountsByGroup,
|
||||
} from 'mattermost-redux/actions/channels';
|
||||
import {getCloudSubscription} from 'mattermost-redux/actions/cloud';
|
||||
import {clearErrors, logError} from 'mattermost-redux/actions/errors';
|
||||
import {setServerVersion, getClientConfig} from 'mattermost-redux/actions/general';
|
||||
import {getGroup as fetchGroup} from 'mattermost-redux/actions/groups';
|
||||
import {
|
||||
getCustomEmojiForReaction,
|
||||
getPosts,
|
||||
getPostThread,
|
||||
getMentionsAndStatusesForPosts,
|
||||
getThreadsForPosts,
|
||||
postDeleted,
|
||||
receivedNewPost,
|
||||
receivedPost,
|
||||
} from 'mattermost-redux/actions/posts';
|
||||
import {loadRolesIfNeeded} from 'mattermost-redux/actions/roles';
|
||||
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {getNewestThreadInTeam, getThread, getThreads} from 'mattermost-redux/selectors/entities/threads';
|
||||
import {getGroup} from 'mattermost-redux/selectors/entities/groups';
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {
|
||||
getThread as fetchThread,
|
||||
getCountsAndThreadsSince,
|
||||
@ -47,34 +58,14 @@ import {
|
||||
updateThreadRead,
|
||||
decrementThreadCounts,
|
||||
} from 'mattermost-redux/actions/threads';
|
||||
|
||||
import {setServerVersion, getClientConfig} from 'mattermost-redux/actions/general';
|
||||
import {
|
||||
getCustomEmojiForReaction,
|
||||
getPosts,
|
||||
getPostThread,
|
||||
getMentionsAndStatusesForPosts,
|
||||
getThreadsForPosts,
|
||||
postDeleted,
|
||||
receivedNewPost,
|
||||
receivedPost,
|
||||
} from 'mattermost-redux/actions/posts';
|
||||
import {clearErrors, logError} from 'mattermost-redux/actions/errors';
|
||||
|
||||
import * as TeamActions from 'mattermost-redux/actions/teams';
|
||||
import {
|
||||
checkForModifiedUsers,
|
||||
getUser as loadUser,
|
||||
} from 'mattermost-redux/actions/users';
|
||||
import {getGroup as fetchGroup} from 'mattermost-redux/actions/groups';
|
||||
import {removeNotVisibleUsers} from 'mattermost-redux/actions/websocket';
|
||||
import {setGlobalItem} from 'actions/storage';
|
||||
import {setGlobalDraft, transformServerDraft} from 'actions/views/drafts';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {getCurrentUser, getCurrentUserId, getUser, getIsManualStatusForUserId, isCurrentUserSystemAdmin} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getMyTeams, getCurrentRelativeTeamUrl, getCurrentTeamId, getCurrentTeamUrl, getTeam} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getConfig, getLicense} from 'mattermost-redux/selectors/entities/general';
|
||||
import {General, Permissions} from 'mattermost-redux/constants';
|
||||
import {appsFeatureFlagEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {
|
||||
getChannel,
|
||||
getChannelMembersInChannels,
|
||||
@ -83,41 +74,45 @@ import {
|
||||
getCurrentChannelId,
|
||||
getRedirectChannelNameForTeam,
|
||||
} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getConfig, getLicense} from 'mattermost-redux/selectors/entities/general';
|
||||
import {getGroup} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {getPost, getMostRecentPostIdInChannel, getTeamIdFromPost} from 'mattermost-redux/selectors/entities/posts';
|
||||
import {isCollapsedThreadsEnabled} from 'mattermost-redux/selectors/entities/preferences';
|
||||
import {haveISystemPermission, haveITeamPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {appsFeatureFlagEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {getStandardAnalytics} from 'mattermost-redux/actions/admin';
|
||||
|
||||
import {fetchAppBindings, fetchRHSAppsBindings} from 'mattermost-redux/actions/apps';
|
||||
|
||||
import {getSelectedChannelId, getSelectedPost} from 'selectors/rhs';
|
||||
import {isThreadOpen, isThreadManuallyUnread} from 'selectors/views/threads';
|
||||
|
||||
import {openModal} from 'actions/views/modals';
|
||||
import {incrementWsErrorCount, resetWsErrorCount} from 'actions/views/system';
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
import {syncPostsInChannel} from 'actions/views/channel';
|
||||
import {updateThreadLastOpened} from 'actions/views/threads';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {loadChannelsForCurrentUser} from 'actions/channel_actions';
|
||||
import {loadCustomEmojisIfNeeded} from 'actions/emoji_actions';
|
||||
import {redirectUserToDefaultTeam} from 'actions/global_actions';
|
||||
import {handleNewPost} from 'actions/post_actions';
|
||||
import * as StatusActions from 'actions/status_actions';
|
||||
import {loadProfilesForSidebar} from 'actions/user_actions';
|
||||
import {sendDesktopNotification} from 'actions/notification_actions.jsx';
|
||||
import store from 'stores/redux_store.jsx';
|
||||
import WebSocketClient from 'client/web_websocket_client.jsx';
|
||||
import {loadPlugin, loadPluginsIfNecessary, removePlugin} from 'plugins';
|
||||
import {ActionTypes, Constants, AnnouncementBarMessages, SocketEvents, UserStatuses, ModalIdentifiers, WarnMetricTypes} from 'utils/constants';
|
||||
import {getSiteURL} from 'utils/url';
|
||||
import {getMyTeams, getCurrentRelativeTeamUrl, getCurrentTeamId, getCurrentTeamUrl, getTeam} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getNewestThreadInTeam, getThread, getThreads} from 'mattermost-redux/selectors/entities/threads';
|
||||
import {getCurrentUser, getCurrentUserId, getUser, getIsManualStatusForUserId, isCurrentUserSystemAdmin} from 'mattermost-redux/selectors/entities/users';
|
||||
import {isGuest} from 'mattermost-redux/utils/user_utils';
|
||||
import RemovedFromChannelModal from 'components/removed_from_channel_modal';
|
||||
import InteractiveDialog from 'components/interactive_dialog';
|
||||
|
||||
import {loadChannelsForCurrentUser} from 'actions/channel_actions';
|
||||
import {
|
||||
getTeamsUsage,
|
||||
} from 'actions/cloud';
|
||||
import {loadCustomEmojisIfNeeded} from 'actions/emoji_actions';
|
||||
import {redirectUserToDefaultTeam} from 'actions/global_actions';
|
||||
import {sendDesktopNotification} from 'actions/notification_actions.jsx';
|
||||
import {handleNewPost} from 'actions/post_actions';
|
||||
import * as StatusActions from 'actions/status_actions';
|
||||
import {setGlobalItem} from 'actions/storage';
|
||||
import {loadProfilesForSidebar} from 'actions/user_actions';
|
||||
import {syncPostsInChannel} from 'actions/views/channel';
|
||||
import {setGlobalDraft, transformServerDraft} from 'actions/views/drafts';
|
||||
import {openModal} from 'actions/views/modals';
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
import {incrementWsErrorCount, resetWsErrorCount} from 'actions/views/system';
|
||||
import {updateThreadLastOpened} from 'actions/views/threads';
|
||||
import {getSelectedChannelId, getSelectedPost} from 'selectors/rhs';
|
||||
import {isThreadOpen, isThreadManuallyUnread} from 'selectors/views/threads';
|
||||
import store from 'stores/redux_store.jsx';
|
||||
|
||||
import InteractiveDialog from 'components/interactive_dialog';
|
||||
import RemovedFromChannelModal from 'components/removed_from_channel_modal';
|
||||
|
||||
import WebSocketClient from 'client/web_websocket_client.jsx';
|
||||
import {loadPlugin, loadPluginsIfNecessary, removePlugin} from 'plugins';
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import {ActionTypes, Constants, AnnouncementBarMessages, SocketEvents, UserStatuses, ModalIdentifiers, WarnMetricTypes} from 'utils/constants';
|
||||
import {getSiteURL} from 'utils/url';
|
||||
|
||||
const dispatch = store.dispatch;
|
||||
const getState = store.getState;
|
||||
|
@ -1,28 +1,25 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ChannelTypes, UserTypes, CloudTypes} from 'mattermost-redux/action_types';
|
||||
import {getGroup} from 'mattermost-redux/actions/groups';
|
||||
import {
|
||||
getMentionsAndStatusesForPosts,
|
||||
getThreadsForPosts,
|
||||
receivedNewPost,
|
||||
} from 'mattermost-redux/actions/posts';
|
||||
import {getGroup} from 'mattermost-redux/actions/groups';
|
||||
import {ChannelTypes, UserTypes, CloudTypes} from 'mattermost-redux/action_types';
|
||||
import {getUser} from 'mattermost-redux/actions/users';
|
||||
|
||||
import {handleNewPost} from 'actions/post_actions';
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
import {syncPostsInChannel} from 'actions/views/channel';
|
||||
|
||||
import {closeRightHandSide} from 'actions/views/rhs';
|
||||
import store from 'stores/redux_store.jsx';
|
||||
|
||||
import mergeObjects from 'packages/mattermost-redux/test/merge_objects';
|
||||
import configureStore from 'tests/test_store';
|
||||
|
||||
import {getHistory} from 'utils/browser_history';
|
||||
import Constants, {SocketEvents, UserStatuses, ActionTypes} from 'utils/constants';
|
||||
|
||||
import mergeObjects from 'packages/mattermost-redux/test/merge_objects';
|
||||
|
||||
import {
|
||||
handleChannelUpdatedEvent,
|
||||
handleEvent,
|
||||
|
@ -3,12 +3,11 @@
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import {ClientConfig, ClientLicense} from '@mattermost/types/config';
|
||||
import type {ClientConfig, ClientLicense} from '@mattermost/types/config';
|
||||
|
||||
import AboutBuildModal from 'components/about_build_modal/about_build_modal';
|
||||
|
||||
import {renderWithFullContext, screen, userEvent} from 'tests/react_testing_utils';
|
||||
|
||||
import {AboutLinks} from 'utils/constants';
|
||||
|
||||
import AboutBuildModalCloud from './about_build_modal_cloud/about_build_modal_cloud';
|
||||
|
@ -5,14 +5,13 @@ import React from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {ClientConfig, ClientLicense} from '@mattermost/types/config';
|
||||
|
||||
import MattermostLogo from 'components/widgets/icons/mattermost_logo';
|
||||
import Nbsp from 'components/html_entities/nbsp';
|
||||
|
||||
import {AboutLinks} from 'utils/constants';
|
||||
import type {ClientConfig, ClientLicense} from '@mattermost/types/config';
|
||||
|
||||
import ExternalLink from 'components/external_link';
|
||||
import Nbsp from 'components/html_entities/nbsp';
|
||||
import MattermostLogo from 'components/widgets/icons/mattermost_logo';
|
||||
|
||||
import {AboutLinks} from 'utils/constants';
|
||||
|
||||
import AboutBuildModalCloud from './about_build_modal_cloud/about_build_modal_cloud';
|
||||
|
||||
|
@ -1,17 +1,18 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import classNames from 'classnames';
|
||||
import React from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
import classNames from 'classnames';
|
||||
import {useSelector} from 'react-redux';
|
||||
|
||||
import ExternalLink from 'components/external_link';
|
||||
import MattermostLogo from 'components/widgets/icons/mattermost_logo';
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import './about_build_modal_cloud.scss';
|
||||
import ExternalLink from 'components/external_link';
|
||||
|
||||
type Props = {
|
||||
onExited: () => void;
|
||||
|
@ -5,7 +5,7 @@ import {connect} from 'react-redux';
|
||||
|
||||
import {getConfig, getLicense} from 'mattermost-redux/selectors/entities/general';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import AboutBuildModal from './about_build_modal';
|
||||
|
||||
|
@ -1,14 +1,15 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {fireEvent, screen, render, waitForElementToBeRemoved, waitFor} from '@testing-library/react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import AccessHistoryModal from 'components/access_history_modal/access_history_modal';
|
||||
import AuditTable from 'components/audit_table';
|
||||
import LoadingScreen from 'components/loading_screen';
|
||||
|
||||
import {withIntl} from 'tests/helpers/intl-test-helper';
|
||||
import {fireEvent, screen, render, waitForElementToBeRemoved, waitFor} from '@testing-library/react';
|
||||
|
||||
describe('components/AccessHistoryModal', () => {
|
||||
const baseProps = {
|
||||
|
@ -5,9 +5,10 @@ import React, {useCallback, useEffect, useState} from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import type {Audit} from '@mattermost/types/audits';
|
||||
|
||||
import AuditTable from 'components/audit_table';
|
||||
import LoadingScreen from 'components/loading_screen';
|
||||
import {Audit} from '@mattermost/types/audits';
|
||||
|
||||
type Props = {
|
||||
onHide: () => void;
|
||||
|
@ -2,13 +2,14 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {Dispatch} from 'redux';
|
||||
|
||||
import {getUserAudits} from 'mattermost-redux/actions/users';
|
||||
import {getCurrentUserId, getUserAudits as getCurrentUserAudits} from 'mattermost-redux/selectors/entities/users';
|
||||
import {GenericAction} from 'mattermost-redux/types/actions';
|
||||
import type {GenericAction} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import AccessHistoryModal from './access_history_modal';
|
||||
|
||||
|
@ -3,14 +3,15 @@
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import {PostType} from '@mattermost/types/posts';
|
||||
import {PluginComponent} from 'types/store/plugins';
|
||||
import type {PostType} from '@mattermost/types/posts';
|
||||
|
||||
import {shallowWithIntl} from 'tests/helpers/intl-test-helper';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
import ActionsMenu, {PLUGGABLE_COMPONENT, Props} from './actions_menu';
|
||||
import type {PluginComponent} from 'types/store/plugins';
|
||||
|
||||
import ActionsMenu, {PLUGGABLE_COMPONENT} from './actions_menu';
|
||||
import type {Props} from './actions_menu';
|
||||
|
||||
jest.mock('utils/utils', () => {
|
||||
const original = jest.requireActual('utils/utils');
|
||||
|
@ -1,33 +1,37 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import classNames from 'classnames';
|
||||
import {FormattedMessage, injectIntl, IntlShape} from 'react-intl';
|
||||
import './actions_menu.scss';
|
||||
|
||||
import React from 'react';
|
||||
import {Tooltip} from 'react-bootstrap';
|
||||
import {FormattedMessage, injectIntl} from 'react-intl';
|
||||
import type {IntlShape} from 'react-intl';
|
||||
|
||||
import type {AppBinding} from '@mattermost/types/apps';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
import Permissions from 'mattermost-redux/constants/permissions';
|
||||
|
||||
import FormattedMarkdownMessage from 'components/formatted_markdown_message';
|
||||
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {AppBinding} from '@mattermost/types/apps';
|
||||
import {AppCallResponseTypes} from 'mattermost-redux/constants/apps';
|
||||
|
||||
import {HandleBindingClick, PostEphemeralCallResponseForPost, OpenAppsModal} from 'types/apps';
|
||||
import {Locations, Constants, ModalIdentifiers} from 'utils/constants';
|
||||
import Permissions from 'mattermost-redux/constants/permissions';
|
||||
import {ModalData} from 'types/actions';
|
||||
import MarketplaceModal, {OpenedFromType} from 'components/plugin_marketplace/marketplace_modal';
|
||||
import OverlayTrigger from 'components/overlay_trigger';
|
||||
import * as PostUtils from 'utils/post_utils';
|
||||
import * as Utils from 'utils/utils';
|
||||
import SystemPermissionGate from 'components/permissions_gates/system_permission_gate';
|
||||
import Pluggable from 'plugins/pluggable';
|
||||
import MarketplaceModal from 'components/plugin_marketplace/marketplace_modal';
|
||||
import type {OpenedFromType} from 'components/plugin_marketplace/marketplace_modal';
|
||||
import Menu from 'components/widgets/menu/menu';
|
||||
import MenuWrapper from 'components/widgets/menu/menu_wrapper';
|
||||
import {PluginComponent} from 'types/store/plugins';
|
||||
|
||||
import Pluggable from 'plugins/pluggable';
|
||||
import {createCallContext} from 'utils/apps';
|
||||
import {Locations, Constants, ModalIdentifiers} from 'utils/constants';
|
||||
import * as PostUtils from 'utils/post_utils';
|
||||
import * as Utils from 'utils/utils';
|
||||
|
||||
import type {ModalData} from 'types/actions';
|
||||
import type {HandleBindingClick, PostEphemeralCallResponseForPost, OpenAppsModal} from 'types/apps';
|
||||
import type {PluginComponent} from 'types/store/plugins';
|
||||
|
||||
import './actions_menu.scss';
|
||||
|
||||
import {ActionsMenuIcon} from './actions_menu_icon';
|
||||
|
||||
|
@ -4,7 +4,9 @@
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import ActionsMenu, {Props} from 'components/actions_menu/actions_menu';
|
||||
import ActionsMenu from 'components/actions_menu/actions_menu';
|
||||
import type {Props} from 'components/actions_menu/actions_menu';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
jest.mock('utils/utils', () => {
|
||||
|
@ -4,7 +4,9 @@
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import ActionsMenu, {Props} from 'components/actions_menu/actions_menu';
|
||||
import ActionsMenu from 'components/actions_menu/actions_menu';
|
||||
import type {Props} from 'components/actions_menu/actions_menu';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
jest.mock('utils/utils', () => {
|
||||
|
@ -1,34 +1,33 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ComponentProps} from 'react';
|
||||
import type {ComponentProps} from 'react';
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import {getCurrentUser} from 'mattermost-redux/selectors/entities/users';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
|
||||
import {AppBindingLocations} from 'mattermost-redux/constants/apps';
|
||||
|
||||
import {isSystemAdmin} from 'mattermost-redux/utils/user_utils';
|
||||
import {isSystemMessage} from 'mattermost-redux/utils/post_utils';
|
||||
import {isCombinedUserActivityPost} from 'mattermost-redux/utils/post_list';
|
||||
|
||||
import {GenericAction} from 'mattermost-redux/types/actions';
|
||||
import {ModalData} from 'types/actions';
|
||||
import {getIsMobileView} from 'selectors/views/browser';
|
||||
import {AppBinding} from '@mattermost/types/apps';
|
||||
import {Post} from '@mattermost/types/posts';
|
||||
import {HandleBindingClick, OpenAppsModal, PostEphemeralCallResponseForPost} from 'types/apps';
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import {openModal} from 'actions/views/modals';
|
||||
import {makeFetchBindings, postEphemeralCallResponseForPost, handleBindingClick, openAppsModal} from 'actions/apps';
|
||||
import type {AppBinding} from '@mattermost/types/apps';
|
||||
import type {Post} from '@mattermost/types/posts';
|
||||
|
||||
import {Permissions} from 'mattermost-redux/constants';
|
||||
import {AppBindingLocations} from 'mattermost-redux/constants/apps';
|
||||
import {appsEnabled} from 'mattermost-redux/selectors/entities/apps';
|
||||
import {isMarketplaceEnabled} from 'mattermost-redux/selectors/entities/general';
|
||||
import {haveICurrentTeamPermission} from 'mattermost-redux/selectors/entities/roles';
|
||||
import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {getCurrentUser} from 'mattermost-redux/selectors/entities/users';
|
||||
import type {GenericAction} from 'mattermost-redux/types/actions';
|
||||
import {isCombinedUserActivityPost} from 'mattermost-redux/utils/post_list';
|
||||
import {isSystemMessage} from 'mattermost-redux/utils/post_utils';
|
||||
import {isSystemAdmin} from 'mattermost-redux/utils/user_utils';
|
||||
|
||||
import {makeFetchBindings, postEphemeralCallResponseForPost, handleBindingClick, openAppsModal} from 'actions/apps';
|
||||
import {openModal} from 'actions/views/modals';
|
||||
import {getIsMobileView} from 'selectors/views/browser';
|
||||
|
||||
import type {ModalData} from 'types/actions';
|
||||
import type {HandleBindingClick, OpenAppsModal, PostEphemeralCallResponseForPost} from 'types/apps';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import ActionsMenu from './actions_menu';
|
||||
import {makeGetPostOptionBinding} from './selectors';
|
||||
|
@ -1,15 +1,16 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {AppBinding} from '@mattermost/types/apps';
|
||||
import type {AppBinding} from '@mattermost/types/apps';
|
||||
|
||||
import {createSelector} from 'mattermost-redux/selectors/create_selector';
|
||||
import {AppBindingLocations} from 'mattermost-redux/constants/apps';
|
||||
import {createSelector} from 'mattermost-redux/selectors/create_selector';
|
||||
import {makeAppBindingsSelector, makeRHSAppBindingSelector} from 'mattermost-redux/selectors/entities/apps';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {Locations} from 'utils/constants';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
export function makeGetPostOptionBinding(): (state: GlobalState, location?: string) => AppBinding[] | null {
|
||||
const centerBindingsSelector = makeAppBindingsSelector(AppBindingLocations.POST_MENU_ITEM);
|
||||
const rhsBindingsSelector = makeRHSAppBindingSelector(AppBindingLocations.POST_MENU_ITEM);
|
||||
|
@ -1,13 +1,14 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React, {MouseEvent} from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
|
||||
import ActivityLogModal from 'components/activity_log_modal/activity_log_modal';
|
||||
import React from 'react';
|
||||
import type {MouseEvent} from 'react';
|
||||
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
|
||||
import ActivityLogModal from 'components/activity_log_modal/activity_log_modal';
|
||||
|
||||
describe('components/ActivityLogModal', () => {
|
||||
const baseProps = {
|
||||
sessions: [],
|
||||
|
@ -5,8 +5,9 @@ import React from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {Session} from '@mattermost/types/sessions';
|
||||
import {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
import type {Session} from '@mattermost/types/sessions';
|
||||
|
||||
import type {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import ActivityLog from 'components/activity_log_modal/components/activity_log';
|
||||
|
||||
|
@ -1,15 +1,16 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
import ActivityLog from 'components/activity_log_modal/components/activity_log';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
|
||||
describe('components/activity_log_modal/ActivityLog', () => {
|
||||
const baseProps = {
|
||||
|
@ -4,11 +4,12 @@
|
||||
import React from 'react';
|
||||
import {FormattedDate, FormattedMessage, FormattedTime} from 'react-intl';
|
||||
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
import {Session} from '@mattermost/types/sessions';
|
||||
import type {Session} from '@mattermost/types/sessions';
|
||||
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
import {getMonthLong, t} from 'utils/i18n';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
|
||||
import MoreInfo from './more_info';
|
||||
|
||||
|
@ -1,12 +1,13 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import {General} from 'mattermost-redux/constants';
|
||||
|
||||
import MoreInfo from 'components/activity_log_modal/components/more_info';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
describe('components/activity_log_modal/MoreInfo', () => {
|
||||
|
@ -4,7 +4,7 @@
|
||||
import React from 'react';
|
||||
import {FormattedDate, FormattedMessage, FormattedTime} from 'react-intl';
|
||||
|
||||
import {Session} from '@mattermost/types/sessions';
|
||||
import type {Session} from '@mattermost/types/sessions';
|
||||
|
||||
import {getMonthLong} from 'utils/i18n';
|
||||
|
||||
|
@ -2,16 +2,19 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import {getSessions, revokeSession} from 'mattermost-redux/actions/users';
|
||||
import {getCurrentUserId, getUserSessions} from 'mattermost-redux/selectors/entities/users';
|
||||
import {ActionFunc, GenericAction} from 'mattermost-redux/types/actions';
|
||||
import type {ActionFunc, GenericAction} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {getCurrentLocale} from 'selectors/i18n';
|
||||
import {GlobalState} from 'types/store';
|
||||
|
||||
import ActivityLogModal, {Props} from './activity_log_modal';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import ActivityLogModal from './activity_log_modal';
|
||||
import type {Props} from './activity_log_modal';
|
||||
|
||||
function mapStateToProps(state: GlobalState) {
|
||||
return {
|
||||
|
@ -1,12 +1,13 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import {SyncableType} from '@mattermost/types/groups';
|
||||
|
||||
import AddGroupsToChannelModal, {Props} from 'components/add_groups_to_channel_modal/add_groups_to_channel_modal';
|
||||
import AddGroupsToChannelModal from 'components/add_groups_to_channel_modal/add_groups_to_channel_modal';
|
||||
import type {Props} from 'components/add_groups_to_channel_modal/add_groups_to_channel_modal';
|
||||
|
||||
describe('components/AddGroupsToChannelModal', () => {
|
||||
const baseProps: Props = {
|
||||
|
@ -5,19 +5,20 @@ import React from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {Group, SyncablePatch, SyncableType} from '@mattermost/types/groups';
|
||||
import type {ServerError} from '@mattermost/types/errors';
|
||||
import type {Group, SyncablePatch} from '@mattermost/types/groups';
|
||||
import {SyncableType} from '@mattermost/types/groups';
|
||||
|
||||
import {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
import type {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {ServerError} from '@mattermost/types/errors';
|
||||
import MultiSelect from 'components/multiselect/multiselect';
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
|
||||
import groupsAvatar from 'images/groups-avatar.png';
|
||||
import Constants from 'utils/constants';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
|
||||
import MultiSelect, {Value} from 'components/multiselect/multiselect';
|
||||
import groupsAvatar from 'images/groups-avatar.png';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
|
||||
const GROUPS_PER_PAGE = 50;
|
||||
const MAX_SELECTABLE_VALUES = 10;
|
||||
|
||||
|
@ -2,21 +2,24 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import type {Channel} from '@mattermost/types/channels';
|
||||
import type {Group} from '@mattermost/types/groups';
|
||||
|
||||
import {getGroupsNotAssociatedToChannel, linkGroupSyncable, getAllGroupsAssociatedToChannel, getAllGroupsAssociatedToTeam} from 'mattermost-redux/actions/groups';
|
||||
import {getTeam} from 'mattermost-redux/actions/teams';
|
||||
import {getGroupsNotAssociatedToChannel as selectGroupsNotAssociatedToChannel} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {getCurrentChannel} from 'mattermost-redux/selectors/entities/channels';
|
||||
import {getGroupsNotAssociatedToChannel as selectGroupsNotAssociatedToChannel} from 'mattermost-redux/selectors/entities/groups';
|
||||
import type {ActionFunc, GenericAction} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {Channel} from '@mattermost/types/channels';
|
||||
import {ActionFunc, GenericAction} from 'mattermost-redux/types/actions';
|
||||
import {Group} from '@mattermost/types/groups';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {setModalSearchTerm} from 'actions/views/search';
|
||||
|
||||
import AddGroupsToChannelModal, {Props} from './add_groups_to_channel_modal';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import AddGroupsToChannelModal from './add_groups_to_channel_modal';
|
||||
import type {Props} from './add_groups_to_channel_modal';
|
||||
|
||||
type OwnProps = {
|
||||
channel: Channel;
|
||||
|
@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import {SyncableType} from '@mattermost/types/groups';
|
||||
|
||||
|
@ -1,20 +1,23 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React, {RefObject} from 'react';
|
||||
import React from 'react';
|
||||
import type {RefObject} from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {Group, GroupsWithCount, SyncablePatch, SyncableType} from '@mattermost/types/groups';
|
||||
import type {Group, GroupsWithCount, SyncablePatch} from '@mattermost/types/groups';
|
||||
import {SyncableType} from '@mattermost/types/groups';
|
||||
|
||||
import Nbsp from 'components/html_entities/nbsp';
|
||||
import MultiSelect from 'components/multiselect/multiselect';
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
|
||||
import groupsAvatar from 'images/groups-avatar.png';
|
||||
import Constants from 'utils/constants';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
|
||||
import MultiSelect, {Value} from 'components/multiselect/multiselect';
|
||||
import groupsAvatar from 'images/groups-avatar.png';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
import Nbsp from 'components/html_entities/nbsp';
|
||||
|
||||
const GROUPS_PER_PAGE = 50;
|
||||
const MAX_SELECTABLE_VALUES = 10;
|
||||
|
||||
|
@ -2,19 +2,23 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import type {Group} from '@mattermost/types/groups';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
|
||||
import {getGroupsNotAssociatedToTeam, linkGroupSyncable, getAllGroupsAssociatedToTeam} from 'mattermost-redux/actions/groups';
|
||||
import {getGroupsNotAssociatedToTeam as selectGroupsNotAssociatedToTeam} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {getCurrentTeam} from 'mattermost-redux/selectors/entities/teams';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import {Group} from '@mattermost/types/groups';
|
||||
import {ActionFunc, GenericAction} from 'mattermost-redux/types/actions';
|
||||
import type {ActionFunc, GenericAction} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {setModalSearchTerm} from 'actions/views/search';
|
||||
import {GlobalState} from '../../types/store';
|
||||
|
||||
import AddGroupsToTeamModal, {Actions} from './add_groups_to_team_modal';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import AddGroupsToTeamModal from './add_groups_to_team_modal';
|
||||
import type {Actions} from './add_groups_to_team_modal';
|
||||
|
||||
type Props = {
|
||||
team?: Team;
|
||||
|
@ -1,10 +1,11 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import AddUserToChannelModal from 'components/add_user_to_channel_modal/add_user_to_channel_modal';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
describe('components/AddUserToChannelModal', () => {
|
||||
|
@ -1,24 +1,25 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React, {ChangeEvent, FormEvent} from 'react';
|
||||
import React from 'react';
|
||||
import type {ChangeEvent, FormEvent} from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {getFullName} from 'mattermost-redux/utils/user_utils';
|
||||
import {ActionResult} from 'mattermost-redux/types/actions';
|
||||
import type {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import type {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
import type {ActionResult} from 'mattermost-redux/types/actions';
|
||||
import {getFullName} from 'mattermost-redux/utils/user_utils';
|
||||
|
||||
import ModalSuggestionList from 'components/suggestion/modal_suggestion_list';
|
||||
import SearchChannelWithPermissionsProvider from 'components/suggestion/search_channel_with_permissions_provider';
|
||||
import SuggestionBox from 'components/suggestion/suggestion_box';
|
||||
import SuggestionBoxComponent from 'components/suggestion/suggestion_box/suggestion_box';
|
||||
import ModalSuggestionList from 'components/suggestion/modal_suggestion_list';
|
||||
import type SuggestionBoxComponent from 'components/suggestion/suggestion_box/suggestion_box';
|
||||
|
||||
import {placeCaretAtEnd} from 'utils/utils';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Channel, ChannelMembership} from '@mattermost/types/channels';
|
||||
import {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
export type Props = {
|
||||
|
||||
/**
|
||||
|
@ -2,16 +2,17 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import type {GlobalState} from '@mattermost/types/store';
|
||||
|
||||
import {addChannelMember, getChannelMember, autocompleteChannelsForSearch} from 'mattermost-redux/actions/channels';
|
||||
import {getChannelMembersInChannels} from 'mattermost-redux/selectors/entities/channels';
|
||||
import type {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {GlobalState} from '@mattermost/types/store';
|
||||
|
||||
import {ActionFunc} from 'mattermost-redux/types/actions';
|
||||
|
||||
import AddUserToChannelModal, {Props} from './add_user_to_channel_modal';
|
||||
import AddUserToChannelModal from './add_user_to_channel_modal';
|
||||
import type {Props} from './add_user_to_channel_modal';
|
||||
|
||||
function mapStateToProps(state: GlobalState) {
|
||||
const channelMembers = getChannelMembersInChannels(state) || {};
|
||||
|
@ -1,14 +1,13 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import {shallow} from 'enzyme';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import type {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Value} from 'components/multiselect/multiselect';
|
||||
import {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
|
||||
import AddUserToGroupMultiSelect from './add_user_to_group_multiselect';
|
||||
|
||||
|
@ -3,15 +3,17 @@
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
import {ActionResult} from 'mattermost-redux/types/actions';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import type {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
import type {ActionResult} from 'mattermost-redux/types/actions';
|
||||
import {filterProfilesStartingWithTerm} from 'mattermost-redux/utils/user_utils';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
import MultiSelect, {Value} from 'components/multiselect/multiselect';
|
||||
|
||||
import MultiSelect from 'components/multiselect/multiselect';
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
|
||||
import Constants from 'utils/constants';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
|
||||
import MultiSelectOption from './multiselect_option/multiselect_option';
|
||||
|
||||
|
@ -2,18 +2,20 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {getProfilesNotInGroup, searchProfiles, getProfiles} from 'mattermost-redux/actions/users';
|
||||
import {getProfilesNotInCurrentGroup, getUserStatuses, getProfiles as getUsers} from 'mattermost-redux/selectors/entities/users';
|
||||
import {Action, ActionResult} from 'mattermost-redux/types/actions';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Value} from 'components/multiselect/multiselect';
|
||||
import type {Action, ActionResult} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {loadStatusesForProfilesList} from 'actions/status_actions';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import AddUserToGroupMultiSelect from './add_user_to_group_multiselect';
|
||||
|
||||
|
@ -1,22 +1,22 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import classNames from 'classnames';
|
||||
import React from 'react';
|
||||
|
||||
import GuestTag from 'components/widgets/tag/guest_tag';
|
||||
import BotTag from 'components/widgets/tag/bot_tag';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
import type {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {RelationOneToOne} from '@mattermost/types/utilities';
|
||||
|
||||
import {isGuest} from 'mattermost-redux/utils/user_utils';
|
||||
import {displayEntireNameForUser} from 'utils/utils';
|
||||
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
import ProfilePicture from 'components/profile_picture';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
import BotTag from 'components/widgets/tag/bot_tag';
|
||||
import GuestTag from 'components/widgets/tag/guest_tag';
|
||||
|
||||
import {Value} from 'components/multiselect/multiselect';
|
||||
import {displayEntireNameForUser} from 'utils/utils';
|
||||
|
||||
type UserProfileValue = Value & UserProfile;
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import AddUsersToGroupModal from './add_users_to_group_modal';
|
||||
|
||||
|
@ -2,23 +2,23 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React, {useState, useCallback, useMemo} from 'react';
|
||||
|
||||
import {Modal} from 'react-bootstrap';
|
||||
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import type {Group} from '@mattermost/types/groups';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import type {ActionResult} from 'mattermost-redux/types/actions';
|
||||
|
||||
import AddUserToGroupMultiSelect from 'components/add_user_to_group_multiselect';
|
||||
import LocalizedIcon from 'components/localized_icon';
|
||||
|
||||
import {t} from 'utils/i18n';
|
||||
import {localizeMessage} from 'utils/utils';
|
||||
import {Group} from '@mattermost/types/groups';
|
||||
|
||||
import type {ModalData} from 'types/actions';
|
||||
|
||||
import 'components/user_groups_modal/user_groups_modal.scss';
|
||||
import {ModalData} from 'types/actions';
|
||||
import AddUserToGroupMultiSelect from 'components/add_user_to_group_multiselect';
|
||||
import {ActionResult} from 'mattermost-redux/types/actions';
|
||||
|
||||
import LocalizedIcon from 'components/localized_icon';
|
||||
import {t} from 'utils/i18n';
|
||||
|
||||
export type Props = {
|
||||
onExited: () => void;
|
||||
|
@ -2,17 +2,18 @@
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {connect} from 'react-redux';
|
||||
import {ActionCreatorsMapObject, bindActionCreators, Dispatch} from 'redux';
|
||||
|
||||
import {Action, ActionResult} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {GlobalState} from 'types/store';
|
||||
import {bindActionCreators} from 'redux';
|
||||
import type {ActionCreatorsMapObject, Dispatch} from 'redux';
|
||||
|
||||
import {addUsersToGroup} from 'mattermost-redux/actions/groups';
|
||||
import {getGroup} from 'mattermost-redux/selectors/entities/groups';
|
||||
import {ModalData} from 'types/actions';
|
||||
import type {Action, ActionResult} from 'mattermost-redux/types/actions';
|
||||
|
||||
import {openModal} from 'actions/views/modals';
|
||||
|
||||
import type {ModalData} from 'types/actions';
|
||||
import type {GlobalState} from 'types/store';
|
||||
|
||||
import AddUsersToGroupModal from './add_users_to_group_modal';
|
||||
|
||||
type Actions = {
|
||||
|
@ -1,11 +1,11 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {shallow} from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {TestHelper} from 'utils/test_helper';
|
||||
|
||||
|
@ -5,20 +5,20 @@ import React from 'react';
|
||||
import {Modal} from 'react-bootstrap';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
|
||||
import GuestTag from 'components/widgets/tag/guest_tag';
|
||||
import BotTag from 'components/widgets/tag/bot_tag';
|
||||
|
||||
import {UserProfile} from '@mattermost/types/users';
|
||||
import {Team} from '@mattermost/types/teams';
|
||||
import type {Team} from '@mattermost/types/teams';
|
||||
import type {UserProfile} from '@mattermost/types/users';
|
||||
|
||||
import {Client4} from 'mattermost-redux/client';
|
||||
import {isGuest} from 'mattermost-redux/utils/user_utils';
|
||||
|
||||
import MultiSelect from 'components/multiselect/multiselect';
|
||||
import type {Value} from 'components/multiselect/multiselect';
|
||||
import ProfilePicture from 'components/profile_picture';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
import BotTag from 'components/widgets/tag/bot_tag';
|
||||
import GuestTag from 'components/widgets/tag/guest_tag';
|
||||
|
||||
import {displayEntireNameForUser, localizeMessage} from 'utils/utils';
|
||||
import {isGuest} from 'mattermost-redux/utils/user_utils';
|
||||
import ProfilePicture from 'components/profile_picture';
|
||||
|
||||
import MultiSelect, {Value} from 'components/multiselect/multiselect';
|
||||
import AddIcon from 'components/widgets/icons/fa_add_icon';
|
||||
|
||||
const USERS_PER_PAGE = 50;
|
||||
const MAX_SELECTABLE_VALUES = 20;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user