Handled case of single common team
This commit is contained in:
parent
29c64c8100
commit
d3ba8439f2
2 changed files with 25 additions and 6 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React, {} from 'react';
|
||||
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import {useIntl} from 'react-intl';
|
||||
import {View} from 'react-native';
|
||||
|
||||
|
|
@ -12,6 +12,7 @@ import Button from '@components/button';
|
|||
import {ChannelNameInput} from './channel_name_input';
|
||||
import MessageBox from './message_box';
|
||||
import {TeamSelector} from './team_selector';
|
||||
import { logDebug } from '@app/utils/log';
|
||||
|
||||
const getStyleFromTheme = makeStyleSheetFromTheme((theme: Theme) => {
|
||||
return {
|
||||
|
|
@ -34,23 +35,39 @@ export const ConvertGMToChannelForm = ({commonTeams, profiles}: Props) => {
|
|||
const theme = useTheme();
|
||||
const styles = getStyleFromTheme(theme);
|
||||
|
||||
const team = useRef<Team>();
|
||||
|
||||
const {formatMessage} = useIntl();
|
||||
const confirmButtonText = formatMessage({
|
||||
id: 'channel_info.convert_gm_to_channel.button_text',
|
||||
defaultMessage: 'Convert to Private Channel',
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (commonTeams.length === 1) {
|
||||
team.current = commonTeams[0];
|
||||
}
|
||||
}, [commonTeams]);
|
||||
|
||||
const handleOnSelectTeam = useCallback((selectedTeam: Team) => {
|
||||
team.current = selectedTeam;
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<MessageBox
|
||||
profiles={profiles}
|
||||
/>
|
||||
<TeamSelector
|
||||
commonTeams={commonTeams}
|
||||
/>
|
||||
{
|
||||
commonTeams.length > 1 &&
|
||||
<TeamSelector
|
||||
commonTeams={commonTeams}
|
||||
onSelectTeam={handleOnSelectTeam}
|
||||
/>
|
||||
}
|
||||
<ChannelNameInput/>
|
||||
<Button
|
||||
onPress={() => true}
|
||||
onPress={() => logDebug(`Selected team: ${team.current?.display_name}`)}
|
||||
text={confirmButtonText}
|
||||
theme={theme}
|
||||
buttonType='destructive'
|
||||
|
|
|
|||
|
|
@ -24,9 +24,10 @@ const getStyleFromTheme = makeStyleSheetFromTheme((theme: Theme) => {
|
|||
|
||||
type Props = {
|
||||
commonTeams: Team[];
|
||||
onSelectTeam: (team: Team) => void;
|
||||
}
|
||||
|
||||
export const TeamSelector = ({commonTeams}: Props) => {
|
||||
export const TeamSelector = ({commonTeams, onSelectTeam}: Props) => {
|
||||
const {formatMessage} = useIntl();
|
||||
const theme = useTheme();
|
||||
const styles = getStyleFromTheme(theme);
|
||||
|
|
@ -40,6 +41,7 @@ export const TeamSelector = ({commonTeams}: Props) => {
|
|||
const team = commonTeams.find((t) => t.id === teamId);
|
||||
if (team) {
|
||||
setSelectedTeam(team);
|
||||
onSelectTeam(team);
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue