Handled case of single common team

This commit is contained in:
harshil Sharma 2023-10-26 17:17:13 +05:30
parent 29c64c8100
commit d3ba8439f2
2 changed files with 25 additions and 6 deletions

View file

@ -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'

View file

@ -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);
}
}, []);