// Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React from 'react'; import { AddMemberModal, ManageMembersModal, DeleteChannelModal, NewChannelModal, LeaveChannelModal, ViewChannelDetailsModal, ViewMembersModal, EditChannelModal, BanModal, JoinMeetingModal, } from '../../components/ChannelModals'; const ModalManager = ({ modal, setModal, activeChannel, meetingInfo, userId, onAddMember, handleChannelDeletion, handleJoinMeeting, handleMessageAll, handleDeleteMemberships, handlePickerChange, formatMemberships, activeChannelMemberships, selectedMembers, onCreateChannel, activeChannelModerators, handleLeaveChannel, banList, banUser, unbanUser, }) => { if (!modal) { return null; } switch (modal) { case 'AddMembers': return ( setModal('')} channel={activeChannel} onSubmit={onAddMember} handlePickerChange={handlePickerChange} members={activeChannelMemberships} /> ); case 'ManageMembers': return ( setModal('')} channel={activeChannel} userId={userId} handleDeleteMemberships={handleDeleteMemberships} handlePickerChange={handlePickerChange} members={formatMemberships(activeChannelMemberships)} selectedMembers={selectedMembers} /> ); case 'NewChannel': return ( setModal('')} onCreateChannel={onCreateChannel} /> ); case 'ViewDetails': return ( setModal('')} channel={activeChannel} moderators={activeChannelModerators} /> ); case 'LeaveChannel': return ( setModal('')} handleLeaveChannel={handleLeaveChannel} channel={activeChannel} /> ); case 'ViewMembers': return ( setModal('')} channel={activeChannel} members={activeChannelMemberships} moderators={activeChannelModerators} /> ); case 'EditChannel': return ( setModal('')} channel={activeChannel} userId={userId} /> ); case 'Ban': return ( setModal('')} handlePickerChange={handlePickerChange} channel={activeChannel} members={activeChannelMemberships} moderators={activeChannelModerators} banList={banList} banUser={banUser} unbanUser={unbanUser} /> ); case 'DeleteChannel': return ( setModal('')} channel={activeChannel} handleChannelDeletion={handleChannelDeletion} /> ); case 'JoinMeeting': return ( setModal('')} meetingInfo={meetingInfo} handleJoinMeeting={handleJoinMeeting} handleMessageAll={handleMessageAll} /> ); default: console.log('Unknown modal type called'); return null; } }; export default ModalManager;