diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/abstract_list.tsx b/webapp/channels/src/components/admin_console/team_channel_settings/abstract_list.tsx index 73f1ea2b77..54158cd533 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/abstract_list.tsx +++ b/webapp/channels/src/components/admin_console/team_channel_settings/abstract_list.tsx @@ -31,7 +31,7 @@ type Props = { emptyListTextId: string; emptyListTextDefaultMessage: string; actions: { - getData: (page: number, perPage: number, notAssociatedToGroup?: string, excludeDefaultChannels?: boolean, includeDeleted?: boolean) => Promise>; + getData: (page: number, perPage: number, notAssociatedToGroup?: string, excludeDefaultChannels?: boolean, includeDeleted?: boolean) => Promise; }; noPadding?: boolean; }; @@ -107,7 +107,7 @@ export default class AbstractList extends React.PureComponent { this.props.actions.getData(page, PAGE_SIZE, '', false, true).then((response) => { if (this.props.onPageChangedCallback) { - this.props.onPageChangedCallback(this.getPaging(), response); + this.props.onPageChangedCallback(this.getPaging(), response as unknown as Array); } this.setState({loading: false}); }); diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.test.tsx b/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.test.tsx index 06d82e325d..361726eac1 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.test.tsx +++ b/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.test.tsx @@ -11,11 +11,11 @@ import {ChannelGroups} from './channel_groups'; describe('admin_console/team_channel_settings/channel/ChannelGroups', () => { test('should match snapshot', () => { - const groups: Array> = [{ + const groups: Group[] = [{ id: '123', display_name: 'DN', member_count: 3, - }]; + } as Group]; const testChannel: Partial & {team_name: string} = { id: '123', diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.tsx b/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.tsx index 3f0755bfd2..4a5ec26461 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.tsx +++ b/webapp/channels/src/components/admin_console/team_channel_settings/channel/details/channel_groups.tsx @@ -20,7 +20,7 @@ interface ChannelGroupsProps { channel: Partial; onAddCallback: (groupIDs: string[]) => void; totalGroups: number; - groups: Array>; + groups: Group[]; removedGroups: Array<{[key: string]: any}>; onGroupRemoved: (gid: string) => void; setNewGroupRole: (gid: string) => void; diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/group/__snapshots__/group_list.test.tsx.snap b/webapp/channels/src/components/admin_console/team_channel_settings/group/__snapshots__/group_list.test.tsx.snap index 9498e15bb6..c87056c873 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/group/__snapshots__/group_list.test.tsx.snap +++ b/webapp/channels/src/components/admin_console/team_channel_settings/group/__snapshots__/group_list.test.tsx.snap @@ -28,13 +28,17 @@ exports[`admin_console/team_channel_settings/group/GroupList should match snapsh } emptyListTextDefaultMessage="test" emptyListTextId="test" + groups={Array []} header={
} + isModeSync={false} noPadding={false} + onGroupRemoved={[MockFunction]} onPageChangedCallback={[MockFunction]} removeGroup={[MockFunction]} renderRow={[Function]} setNewGroupRole={[MockFunction]} total={1} + totalGroups={0} type="team" /> `; @@ -502,13 +506,17 @@ exports[`admin_console/team_channel_settings/group/GroupList should match snapsh } emptyListTextDefaultMessage="test" emptyListTextId="test" + groups={Array []} header={
} + isModeSync={false} noPadding={false} + onGroupRemoved={[MockFunction]} onPageChangedCallback={[MockFunction]} removeGroup={[MockFunction]} renderRow={[Function]} setNewGroupRole={[MockFunction]} total={30} + totalGroups={0} type="team" /> `; diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/group/group_list.test.tsx b/webapp/channels/src/components/admin_console/team_channel_settings/group/group_list.test.tsx index 9a6345361b..994a36de8a 100644 --- a/webapp/channels/src/components/admin_console/team_channel_settings/group/group_list.test.tsx +++ b/webapp/channels/src/components/admin_console/team_channel_settings/group/group_list.test.tsx @@ -16,7 +16,6 @@ describe('admin_console/team_channel_settings/group/GroupList', () => { id: '123', display_name: 'DN', member_count: 3, - })]; const actions = { @@ -26,6 +25,10 @@ describe('admin_console/team_channel_settings/group/GroupList', () => { const wrapper = shallow( { const wrapper = shallow( { return (
@@ -40,22 +40,7 @@ const Header = () => { ); }; -interface Props { - data?: Group[]; - onPageChangedCallback?: () => void; - total: number; - emptyListTextId: string; - emptyListTextDefaultMessage: string; - actions: { - getData: () => Promise; - }; - removeGroup: (gid: string) => void; - setNewGroupRole: (gid: string) => void; - type: string; - team?: Team; - channel?: Partial; - isDisabled?: boolean; -} +type Props = OwnProps & PropsFromRedux; export default class GroupList extends React.PureComponent { renderRow = (item: Partial) => { diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/group/index.js b/webapp/channels/src/components/admin_console/team_channel_settings/group/index.js deleted file mode 100644 index 689271b943..0000000000 --- a/webapp/channels/src/components/admin_console/team_channel_settings/group/index.js +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import {connect} from 'react-redux'; - -import {t} from 'utils/i18n'; - -import List from './group_list'; - -function mapStateToProps(state, {groups, totalGroups, isModeSync, onGroupRemoved, setNewGroupRole}) { - return { - data: groups, - removeGroup: onGroupRemoved, - setNewGroupRole, - emptyListTextId: isModeSync ? t('admin.team_channel_settings.group_list.no-synced-groups') : t('admin.team_channel_settings.group_list.no-groups'), - emptyListTextDefaultMessage: isModeSync ? 'At least one group must be specified' : 'No groups specified yet', - total: totalGroups, - }; -} - -function mapDispatchToProps() { - return { - actions: { - getData: () => Promise.resolve(), - }, - }; -} - -export default connect(mapStateToProps, mapDispatchToProps)(List); - diff --git a/webapp/channels/src/components/admin_console/team_channel_settings/group/index.ts b/webapp/channels/src/components/admin_console/team_channel_settings/group/index.ts new file mode 100644 index 0000000000..9bf4dc7e5d --- /dev/null +++ b/webapp/channels/src/components/admin_console/team_channel_settings/group/index.ts @@ -0,0 +1,54 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {connect} from 'react-redux'; +import type {ConnectedProps} from 'react-redux'; + +import type {Channel} from '@mattermost/types/channels'; +import type {Group} from '@mattermost/types/groups'; +import type {Team} from '@mattermost/types/teams'; + +import {t} from 'utils/i18n'; + +import type {GlobalState} from 'types/store'; + +import GroupList from './group_list'; + +export type OwnProps = { + groups: Group[]; + onGroupRemoved: (gid: string) => void; + setNewGroupRole: (gid: string) => void; + isModeSync: boolean; + totalGroups: number; + isDisabled?: boolean; + type: string; + onPageChangedCallback?: () => void; + team?: Team; + channel?: Partial; +} + +function mapStateToProps(state: GlobalState, ownProps: OwnProps) { + return { + data: ownProps.groups, + removeGroup: ownProps.onGroupRemoved, + setNewGroupRole: ownProps.setNewGroupRole, + emptyListTextId: ownProps.isModeSync ? t('admin.team_channel_settings.group_list.no-synced-groups') : t('admin.team_channel_settings.group_list.no-groups'), + emptyListTextDefaultMessage: ownProps.isModeSync ? 'At least one group must be specified' : 'No groups specified yet', + total: ownProps.totalGroups, + }; +} + +function mapDispatchToProps() { + return { + actions: { + getData: () => Promise.resolve(), + }, + }; +} + +const connector = connect(mapStateToProps, mapDispatchToProps); + +export type PropsFromRedux = ConnectedProps; + +export default connector(GroupList); +