mirror of
https://github.com/lux-tel/session-desktop.git
synced 2026-10-30 20:33:24 +00:00
122 lines
6.0 KiB
TypeScript
122 lines
6.0 KiB
TypeScript
import {
|
|
useConfirmModal,
|
|
useInviteContactModal,
|
|
useAddModeratorsModal,
|
|
useRemoveModeratorsModal,
|
|
useUpdateGroupMembersModal,
|
|
useUpdateConversationDetailsModal,
|
|
useUserProfileModal,
|
|
useChangeNickNameDialog,
|
|
useUserSettingsModal,
|
|
useOnionPathDialog,
|
|
useEnterPasswordModal,
|
|
useDeleteAccountModal,
|
|
useBanOrUnbanUserModal,
|
|
useBlockOrUnblockUserModal,
|
|
useReactListDialog,
|
|
useReactClearAllDialog,
|
|
useEditProfilePictureModal,
|
|
useHideRecoveryPasswordModal,
|
|
useOpenUrlModal,
|
|
useLocalizedPopupDialog,
|
|
useSessionProInfoModal,
|
|
useLightBoxOptions,
|
|
useDebugMenuModal,
|
|
useConversationSettingsModal,
|
|
} from '../../state/selectors/modal';
|
|
import { LightboxGallery } from '../lightbox/LightboxGallery';
|
|
import { BanOrUnBanUserDialog } from './BanOrUnbanUserDialog';
|
|
import { DeleteAccountModal } from './DeleteAccountModal';
|
|
import { EditProfilePictureModal } from './EditProfilePictureModal';
|
|
import { EnterPasswordModal } from './EnterPasswordModal';
|
|
import { HideRecoveryPasswordDialog } from './HideRecoveryPasswordDialog';
|
|
import { InviteContactsDialog } from './InviteContactsDialog';
|
|
import { AddModeratorsDialog } from './ModeratorsAddDialog';
|
|
import { RemoveModeratorsDialog } from './ModeratorsRemoveDialog';
|
|
import { OnionPathModal } from './OnionStatusPathDialog';
|
|
import { ReactClearAllModal } from './ReactClearAllModal';
|
|
import { ReactListModal } from './ReactListModal';
|
|
import { SessionNicknameDialog } from './SessionNicknameDialog';
|
|
import { UpdateGroupMembersDialog } from './UpdateGroupMembersDialog';
|
|
import { UpdateConversationDetailsDialog } from './UpdateConversationDetailsDialog';
|
|
import { UserProfileModal } from './UserProfileModal';
|
|
import { OpenUrlModal } from './OpenUrlModal';
|
|
import { BlockOrUnblockDialog } from './blockOrUnblock/BlockOrUnblockDialog';
|
|
import { DebugMenuModal } from './debug/DebugMenuModal';
|
|
import { ConversationSettingsDialog } from './conversationSettings/conversationSettingsDialog';
|
|
import { SessionConfirm } from './SessionConfirm';
|
|
import { SessionCTA } from './SessionCTA';
|
|
import { LocalizedPopupDialog } from './LocalizedPopupDialog';
|
|
import { UserSettingsDialog } from './user-settings/UserSettingsDialog';
|
|
|
|
export const ModalContainer = () => {
|
|
const confirmModalState = useConfirmModal();
|
|
const inviteModalState = useInviteContactModal();
|
|
const addModeratorsModalState = useAddModeratorsModal();
|
|
const removeModeratorsModalState = useRemoveModeratorsModal();
|
|
const updateGroupMembersModalState = useUpdateGroupMembersModal();
|
|
const updateConversationDetailsModalState = useUpdateConversationDetailsModal();
|
|
const userProfileModalState = useUserProfileModal();
|
|
const changeNicknameModal = useChangeNickNameDialog();
|
|
const userSettingsModalState = useUserSettingsModal();
|
|
const onionPathModalState = useOnionPathDialog();
|
|
const enterPasswordModalState = useEnterPasswordModal();
|
|
const deleteAccountModalState = useDeleteAccountModal();
|
|
const banOrUnbanUserModalState = useBanOrUnbanUserModal();
|
|
const blockOrUnblockModalState = useBlockOrUnblockUserModal();
|
|
const reactListModalState = useReactListDialog();
|
|
const reactClearAllModalState = useReactClearAllDialog();
|
|
const editProfilePictureModalState = useEditProfilePictureModal();
|
|
const hideRecoveryPasswordModalState = useHideRecoveryPasswordModal();
|
|
const openUrlModalState = useOpenUrlModal();
|
|
const localizedPopupDialogState = useLocalizedPopupDialog();
|
|
const sessionProInfoState = useSessionProInfoModal();
|
|
const lightBoxOptions = useLightBoxOptions();
|
|
const debugMenuModalState = useDebugMenuModal();
|
|
const conversationSettingsModalState = useConversationSettingsModal();
|
|
|
|
// NOTE the order of the modals is important for the z-index
|
|
return (
|
|
<>
|
|
{/* Screens */}
|
|
{/* UserProfileModal and ConversationSettingsDialog need to be behind the settings dialog because they can open the settings dialog */}
|
|
{userProfileModalState && <UserProfileModal {...userProfileModalState} />}
|
|
{conversationSettingsModalState && (
|
|
<ConversationSettingsDialog {...conversationSettingsModalState} />
|
|
)}
|
|
{userSettingsModalState && <UserSettingsDialog {...userSettingsModalState} />}
|
|
{onionPathModalState && <OnionPathModal {...onionPathModalState} />}
|
|
{reactListModalState && <ReactListModal {...reactListModalState} />}
|
|
{debugMenuModalState && <DebugMenuModal {...debugMenuModalState} />}
|
|
{/* Actions */}
|
|
{banOrUnbanUserModalState && <BanOrUnBanUserDialog {...banOrUnbanUserModalState} />}
|
|
{blockOrUnblockModalState && <BlockOrUnblockDialog {...blockOrUnblockModalState} />}
|
|
{inviteModalState && <InviteContactsDialog {...inviteModalState} />}
|
|
{addModeratorsModalState && <AddModeratorsDialog {...addModeratorsModalState} />}
|
|
{removeModeratorsModalState && <RemoveModeratorsDialog {...removeModeratorsModalState} />}
|
|
{updateGroupMembersModalState && (
|
|
<UpdateGroupMembersDialog {...updateGroupMembersModalState} />
|
|
)}
|
|
{updateConversationDetailsModalState && (
|
|
<UpdateConversationDetailsDialog {...updateConversationDetailsModalState} />
|
|
)}
|
|
{changeNicknameModal && <SessionNicknameDialog {...changeNicknameModal} />}
|
|
{enterPasswordModalState && <EnterPasswordModal {...enterPasswordModalState} />}
|
|
{deleteAccountModalState && <DeleteAccountModal {...deleteAccountModalState} />}
|
|
{reactClearAllModalState && <ReactClearAllModal {...reactClearAllModalState} />}
|
|
{editProfilePictureModalState && (
|
|
<EditProfilePictureModal {...editProfilePictureModalState} />
|
|
)}
|
|
{hideRecoveryPasswordModalState && (
|
|
<HideRecoveryPasswordDialog {...hideRecoveryPasswordModalState} />
|
|
)}
|
|
{localizedPopupDialogState && <LocalizedPopupDialog {...localizedPopupDialogState} />}
|
|
{lightBoxOptions && <LightboxGallery {...lightBoxOptions} />}
|
|
{openUrlModalState && <OpenUrlModal {...openUrlModalState} />}
|
|
{sessionProInfoState && <SessionCTA {...sessionProInfoState} />}
|
|
{/* Should be on top of all other modals */}
|
|
{confirmModalState && <SessionConfirm {...confirmModalState} />}
|
|
</>
|
|
);
|
|
};
|