diff --git a/ts/components/conversation/AdminLeaveClosedGroupDialog.tsx b/ts/components/dialog/AdminLeaveClosedGroupDialog.tsx
similarity index 100%
rename from ts/components/conversation/AdminLeaveClosedGroupDialog.tsx
rename to ts/components/dialog/AdminLeaveClosedGroupDialog.tsx
diff --git a/ts/components/EditProfileDialog.tsx b/ts/components/dialog/EditProfileDialog.tsx
similarity index 92%
rename from ts/components/EditProfileDialog.tsx
rename to ts/components/dialog/EditProfileDialog.tsx
index e67137e9b..fc8249335 100644
--- a/ts/components/EditProfileDialog.tsx
+++ b/ts/components/dialog/EditProfileDialog.tsx
@@ -2,24 +2,24 @@ import React from 'react';
import classNames from 'classnames';
import { QRCode } from 'react-qr-svg';
-import { Avatar, AvatarSize } from './Avatar';
+import { Avatar, AvatarSize } from '../Avatar';
-import { SessionButton, SessionButtonColor, SessionButtonType } from './session/SessionButton';
+import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton';
-import { SessionIconButton, SessionIconSize, SessionIconType } from './session/icon';
-import { PillDivider } from './session/PillDivider';
-import { SyncUtils, ToastUtils, UserUtils } from '../session/utils';
-import { MAX_USERNAME_LENGTH } from './session/registration/RegistrationTabs';
-import { SessionSpinner } from './session/SessionSpinner';
-import { ConversationModel, ConversationTypeEnum } from '../models/conversation';
+import { SessionIconButton, SessionIconSize, SessionIconType } from '../session/icon';
+import { PillDivider } from '../session/PillDivider';
+import { SyncUtils, ToastUtils, UserUtils } from '../../session/utils';
+import { MAX_USERNAME_LENGTH } from '../session/registration/RegistrationTabs';
+import { SessionSpinner } from '../session/SessionSpinner';
+import { ConversationModel, ConversationTypeEnum } from '../../models/conversation';
-import { SessionWrapperModal } from './session/SessionWrapperModal';
-import { AttachmentUtil } from '../util';
-import { getConversationController } from '../session/conversations';
-import { SpacerLG, SpacerMD } from './basic/Text';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
+import { AttachmentUtil } from '../../util';
+import { getConversationController } from '../../session/conversations';
+import { SpacerLG, SpacerMD } from '../basic/Text';
import autoBind from 'auto-bind';
-import { editProfileModal } from '../state/ducks/modalDialog';
-import { uploadOurAvatar } from '../interactions/conversationInteractions';
+import { editProfileModal } from '../../state/ducks/modalDialog';
+import { uploadOurAvatar } from '../../interactions/conversationInteractions';
interface State {
profileName: string;
diff --git a/ts/components/conversation/InviteContactsDialog.tsx b/ts/components/dialog/InviteContactsDialog.tsx
similarity index 100%
rename from ts/components/conversation/InviteContactsDialog.tsx
rename to ts/components/dialog/InviteContactsDialog.tsx
diff --git a/ts/components/session/ModalContainer.tsx b/ts/components/dialog/ModalContainer.tsx
similarity index 76%
rename from ts/components/session/ModalContainer.tsx
rename to ts/components/dialog/ModalContainer.tsx
index 9cd2d7d2c..a9583ba0a 100644
--- a/ts/components/session/ModalContainer.tsx
+++ b/ts/components/dialog/ModalContainer.tsx
@@ -16,20 +16,20 @@ import {
getUpdateGroupNameModal,
getUserDetailsModal,
} from '../../state/selectors/modal';
-import { AdminLeaveClosedGroupDialog } from '../conversation/AdminLeaveClosedGroupDialog';
-import { InviteContactsDialog } from '../conversation/InviteContactsDialog';
-import { AddModeratorsDialog } from '../conversation/ModeratorsAddDialog';
-import { RemoveModeratorsDialog } from '../conversation/ModeratorsRemoveDialog';
-import { UpdateGroupMembersDialog } from '../conversation/UpdateGroupMembersDialog';
-import { UpdateGroupNameDialog } from '../conversation/UpdateGroupNameDialog';
-import { DeleteAccountModal } from '../dialog/DeleteAccountModal';
-import { EditProfileDialog } from '../EditProfileDialog';
-import { OnionPathModal } from '../OnionStatusPathDialog';
-import { UserDetailsDialog } from '../UserDetailsDialog';
+import { AdminLeaveClosedGroupDialog } from './AdminLeaveClosedGroupDialog';
+import { InviteContactsDialog } from './InviteContactsDialog';
+import { DeleteAccountModal } from './DeleteAccountModal';
+import { EditProfileDialog } from './EditProfileDialog';
+import { OnionPathModal } from './OnionStatusPathDialog';
+import { UserDetailsDialog } from './UserDetailsDialog';
import { SessionConfirm } from './SessionConfirm';
-import { SessionNicknameDialog } from './SessionNicknameDialog';
-import { SessionPasswordModal } from './SessionPasswordModal';
+import { SessionPasswordDialog } from './SessionPasswordDialog';
import { SessionSeedModal } from './SessionSeedModal';
+import { AddModeratorsDialog } from './ModeratorsAddDialog';
+import { RemoveModeratorsDialog } from './ModeratorsRemoveDialog';
+import { UpdateGroupMembersDialog } from './UpdateGroupMembersDialog';
+import { UpdateGroupNameDialog } from './UpdateGroupNameDialog';
+import { SessionNicknameDialog } from './SessionNicknameDialog';
export const ModalContainer = () => {
const confirmModalState = useSelector(getConfirmModal);
@@ -65,7 +65,7 @@ export const ModalContainer = () => {
{adminLeaveClosedGroupModalState && (
)}
- {sessionPasswordModalState && }
+ {sessionPasswordModalState && }
{deleteAccountModalState && }
>
);
diff --git a/ts/components/conversation/ModeratorsAddDialog.tsx b/ts/components/dialog/ModeratorsAddDialog.tsx
similarity index 100%
rename from ts/components/conversation/ModeratorsAddDialog.tsx
rename to ts/components/dialog/ModeratorsAddDialog.tsx
diff --git a/ts/components/conversation/ModeratorsRemoveDialog.tsx b/ts/components/dialog/ModeratorsRemoveDialog.tsx
similarity index 100%
rename from ts/components/conversation/ModeratorsRemoveDialog.tsx
rename to ts/components/dialog/ModeratorsRemoveDialog.tsx
diff --git a/ts/components/OnionStatusPathDialog.tsx b/ts/components/dialog/OnionStatusPathDialog.tsx
similarity index 92%
rename from ts/components/OnionStatusPathDialog.tsx
rename to ts/components/dialog/OnionStatusPathDialog.tsx
index 5c32cdea6..59671dda5 100644
--- a/ts/components/OnionStatusPathDialog.tsx
+++ b/ts/components/dialog/OnionStatusPathDialog.tsx
@@ -2,30 +2,27 @@ import React from 'react';
import _ from 'lodash';
-import { getTheme } from '../state/selectors/theme';
-
import Electron from 'electron';
const { shell } = Electron;
import { useDispatch, useSelector } from 'react-redux';
-import { SessionIcon, SessionIconButton, SessionIconSize, SessionIconType } from './session/icon';
-
-import { SessionWrapperModal } from './session/SessionWrapperModal';
import ip2country from 'ip2country';
import countryLookup from 'country-code-lookup';
import { useTheme } from 'styled-components';
-import { Snode } from '../data/data';
-import { onionPathModal } from '../state/ducks/modalDialog';
+import { Snode } from '../../data/data';
+import { onionPathModal } from '../../state/ducks/modalDialog';
import {
getFirstOnionPath,
getFirstOnionPathLength,
getIsOnline,
getOnionPathsCount,
-} from '../state/selectors/onions';
-
-import { SessionSpinner } from './session/SessionSpinner';
-import { Flex } from './basic/Flex';
+} from '../../state/selectors/onions';
+import { getTheme } from '../../state/selectors/theme';
+import { Flex } from '../basic/Flex';
+import { SessionIcon, SessionIconButton, SessionIconSize, SessionIconType } from '../session/icon';
+import { SessionSpinner } from '../session/SessionSpinner';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
export type StatusLightType = {
glowStartDelay: number;
diff --git a/ts/components/session/SessionConfirm.tsx b/ts/components/dialog/SessionConfirm.tsx
similarity index 91%
rename from ts/components/session/SessionConfirm.tsx
rename to ts/components/dialog/SessionConfirm.tsx
index 3ba43ca00..8f5e0d529 100644
--- a/ts/components/session/SessionConfirm.tsx
+++ b/ts/components/dialog/SessionConfirm.tsx
@@ -1,12 +1,12 @@
import React, { useState } from 'react';
-import { SessionButton, SessionButtonColor } from './SessionButton';
-import { SessionHtmlRenderer } from './SessionHTMLRenderer';
-import { SessionIcon, SessionIconSize, SessionIconType } from './icon';
+import { SessionButton, SessionButtonColor } from '../session/SessionButton';
+import { SessionHtmlRenderer } from '../session/SessionHTMLRenderer';
+import { SessionIcon, SessionIconSize, SessionIconType } from '../session/icon';
import { DefaultTheme, useTheme, withTheme } from 'styled-components';
-import { SessionWrapperModal } from './SessionWrapperModal';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
import { updateConfirmModal } from '../../state/ducks/modalDialog';
import { SpacerLG } from '../basic/Text';
-import { SessionSpinner } from './SessionSpinner';
+import { SessionSpinner } from '../session/SessionSpinner';
export interface SessionConfirmDialogProps {
message?: string;
diff --git a/ts/components/session/SessionModal.tsx b/ts/components/dialog/SessionModal.tsx
similarity index 97%
rename from ts/components/session/SessionModal.tsx
rename to ts/components/dialog/SessionModal.tsx
index 31a850a0d..505b8514e 100644
--- a/ts/components/session/SessionModal.tsx
+++ b/ts/components/dialog/SessionModal.tsx
@@ -1,9 +1,9 @@
import React from 'react';
import classNames from 'classnames';
-import { SessionIconButton, SessionIconSize, SessionIconType } from './icon/';
-import { SessionButtonColor, SessionButtonType } from './SessionButton';
import { DefaultTheme } from 'styled-components';
+import { SessionIconButton, SessionIconSize, SessionIconType } from '../session/icon';
+import { SessionButtonColor, SessionButtonType } from '../session/SessionButton';
interface Props {
title: string;
diff --git a/ts/components/session/SessionNicknameDialog.tsx b/ts/components/dialog/SessionNicknameDialog.tsx
similarity index 94%
rename from ts/components/session/SessionNicknameDialog.tsx
rename to ts/components/dialog/SessionNicknameDialog.tsx
index d13cce10c..cb917f400 100644
--- a/ts/components/session/SessionNicknameDialog.tsx
+++ b/ts/components/dialog/SessionNicknameDialog.tsx
@@ -1,12 +1,12 @@
import React, { useState } from 'react';
import { getConversationController } from '../../session/conversations';
-import { SessionButton } from './SessionButton';
import _ from 'lodash';
-import { SessionWrapperModal } from './SessionWrapperModal';
import { SpacerLG } from '../basic/Text';
import { useDispatch } from 'react-redux';
import { changeNickNameModal } from '../../state/ducks/modalDialog';
+import { SessionButton } from '../session/SessionButton';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
type Props = {
conversationId: string;
diff --git a/ts/components/session/SessionPasswordModal.tsx b/ts/components/dialog/SessionPasswordDialog.tsx
similarity index 96%
rename from ts/components/session/SessionPasswordModal.tsx
rename to ts/components/dialog/SessionPasswordDialog.tsx
index 8e6c0777e..8e0f48314 100644
--- a/ts/components/session/SessionPasswordModal.tsx
+++ b/ts/components/dialog/SessionPasswordDialog.tsx
@@ -1,11 +1,11 @@
import React from 'react';
-import { SessionButton, SessionButtonColor } from './SessionButton';
-import { missingCaseError, PasswordUtil } from '../../util/';
+import { SessionButton, SessionButtonColor } from '../session/SessionButton';
+import { missingCaseError, PasswordUtil } from '../../util';
import { ToastUtils } from '../../session/utils';
-import { SessionIconType } from './icon';
+import { SessionIconType } from '../session/icon';
import { getPasswordHash } from '../../data/data';
-import { SessionWrapperModal } from './SessionWrapperModal';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
import { SpacerLG, SpacerSM } from '../basic/Text';
import autoBind from 'auto-bind';
import { sessionPassword } from '../../state/ducks/modalDialog';
@@ -23,7 +23,7 @@ interface State {
currentPasswordRetypeEntered: string | null;
}
-export class SessionPasswordModal extends React.Component {
+export class SessionPasswordDialog extends React.Component {
private passportInput: HTMLInputElement | null = null;
constructor(props: any) {
diff --git a/ts/components/session/SessionSeedModal.tsx b/ts/components/dialog/SessionSeedModal.tsx
similarity index 97%
rename from ts/components/session/SessionSeedModal.tsx
rename to ts/components/dialog/SessionSeedModal.tsx
index 74ce12adf..3a48bac69 100644
--- a/ts/components/session/SessionSeedModal.tsx
+++ b/ts/components/dialog/SessionSeedModal.tsx
@@ -1,13 +1,13 @@
import React from 'react';
-import { SessionButton } from './SessionButton';
+import { SessionButton } from '../session/SessionButton';
import { ToastUtils, UserUtils } from '../../session/utils';
import { withTheme } from 'styled-components';
import { PasswordUtil } from '../../util';
import { getPasswordHash } from '../../data/data';
import { QRCode } from 'react-qr-svg';
import { mn_decode } from '../../session/crypto/mnemonic';
-import { SessionWrapperModal } from './SessionWrapperModal';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
import { SpacerLG, SpacerSM, SpacerXS } from '../basic/Text';
import autoBind from 'auto-bind';
import { recoveryPhraseModal } from '../../state/ducks/modalDialog';
diff --git a/ts/components/conversation/UpdateGroupMembersDialog.tsx b/ts/components/dialog/UpdateGroupMembersDialog.tsx
similarity index 100%
rename from ts/components/conversation/UpdateGroupMembersDialog.tsx
rename to ts/components/dialog/UpdateGroupMembersDialog.tsx
diff --git a/ts/components/conversation/UpdateGroupNameDialog.tsx b/ts/components/dialog/UpdateGroupNameDialog.tsx
similarity index 100%
rename from ts/components/conversation/UpdateGroupNameDialog.tsx
rename to ts/components/dialog/UpdateGroupNameDialog.tsx
diff --git a/ts/components/UserDetailsDialog.tsx b/ts/components/dialog/UserDetailsDialog.tsx
similarity index 77%
rename from ts/components/UserDetailsDialog.tsx
rename to ts/components/dialog/UserDetailsDialog.tsx
index 511c66a93..5d08d067a 100644
--- a/ts/components/UserDetailsDialog.tsx
+++ b/ts/components/dialog/UserDetailsDialog.tsx
@@ -1,17 +1,16 @@
import React, { useState } from 'react';
-import { Avatar, AvatarSize } from './Avatar';
-import { SessionButton, SessionButtonColor, SessionButtonType } from './session/SessionButton';
-import { SessionIdEditable } from './session/SessionIdEditable';
-import { getConversationController } from '../session/conversations';
-import { ConversationTypeEnum } from '../models/conversation';
-import { SessionWrapperModal } from './session/SessionWrapperModal';
-import { SpacerMD } from './basic/Text';
-import { updateUserDetailsModal } from '../state/ducks/modalDialog';
-import { openConversationWithMessages } from '../state/ducks/conversations';
// tslint:disable-next-line: no-submodule-imports
import useKey from 'react-use/lib/useKey';
-import { getFirstUnreadMessageIdInConversation } from '../data/data';
+import { ConversationTypeEnum } from '../../models/conversation';
+import { getConversationController } from '../../session/conversations';
+import { openConversationWithMessages } from '../../state/ducks/conversations';
+import { updateUserDetailsModal } from '../../state/ducks/modalDialog';
+import { Avatar, AvatarSize } from '../Avatar';
+import { SpacerMD } from '../basic/Text';
+import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton';
+import { SessionIdEditable } from '../session/SessionIdEditable';
+import { SessionWrapperModal } from '../session/SessionWrapperModal';
type Props = {
conversationId: string;
authorAvatarPath: string | null;
diff --git a/ts/components/session/ActionsPanel.tsx b/ts/components/session/ActionsPanel.tsx
index 6ae2da3c8..9356440bf 100644
--- a/ts/components/session/ActionsPanel.tsx
+++ b/ts/components/session/ActionsPanel.tsx
@@ -37,20 +37,16 @@ import { getOpenGroupManager } from '../../opengroup/opengroupV2/OpenGroupManage
import { forceRefreshRandomSnodePool } from '../../session/snode_api/snodePool';
import { getSwarmPollingInstance } from '../../session/snode_api';
import { DURATION } from '../../session/constants';
-import {
- actions as conversationActions,
- conversationChanged,
- conversationRemoved,
-} from '../../state/ducks/conversations';
+import { conversationChanged, conversationRemoved } from '../../state/ducks/conversations';
import { editProfileModal, onionPathModal } from '../../state/ducks/modalDialog';
import { uploadOurAvatar } from '../../interactions/conversationInteractions';
-import { ModalContainer } from './ModalContainer';
+import { ModalContainer } from '../dialog/ModalContainer';
import { debounce } from 'underscore';
import { loadDefaultRooms } from '../../opengroup/opengroupV2/ApiUtil';
-import { ActionPanelOnionStatusLight } from '../OnionStatusPathDialog';
// tslint:disable-next-line: no-import-side-effect no-submodule-imports
+import { ActionPanelOnionStatusLight } from '../dialog/OnionStatusPathDialog';
const Section = (props: { type: SectionType; avatarPath?: string }) => {
const ourNumber = useSelector(getOurNumber);
const unreadMessageCount = useSelector(getUnreadMessageCount);
diff --git a/ts/components/session/settings/SessionSettingListItem.tsx b/ts/components/session/settings/SessionSettingListItem.tsx
index fe04793e1..451dd463a 100644
--- a/ts/components/session/settings/SessionSettingListItem.tsx
+++ b/ts/components/session/settings/SessionSettingListItem.tsx
@@ -7,7 +7,7 @@ import { SessionToggle } from '../SessionToggle';
import { SessionButton } from '../SessionButton';
import { SessionSettingType } from './SessionSettings';
import { SessionRadioGroup } from '../SessionRadioGroup';
-import { SessionConfirmDialogProps } from '../SessionConfirm';
+import { SessionConfirmDialogProps } from '../../dialog/SessionConfirm';
type Props = {
title?: string;
diff --git a/ts/components/session/settings/SessionSettings.tsx b/ts/components/session/settings/SessionSettings.tsx
index 1fc8dd116..4a285b060 100644
--- a/ts/components/session/settings/SessionSettings.tsx
+++ b/ts/components/session/settings/SessionSettings.tsx
@@ -8,22 +8,20 @@ import { ConversationLookupType } from '../../../state/ducks/conversations';
import { StateType } from '../../../state/reducer';
import { getConversationController } from '../../../session/conversations';
import { getConversationLookup } from '../../../state/selectors/conversations';
-import { connect, useSelector } from 'react-redux';
+import { connect } from 'react-redux';
import {
createOrUpdateItem,
getPasswordHash,
hasLinkPreviewPopupBeenDisplayed,
} from '../../../../ts/data/data';
-import { SpacerLG, SpacerXS } from '../../basic/Text';
import { shell } from 'electron';
-import { SessionConfirmDialogProps } from '../SessionConfirm';
+import { SessionConfirmDialogProps } from '../../dialog/SessionConfirm';
import { mapDispatchToProps } from '../../../state/actions';
import { unblockConvoById } from '../../../interactions/conversationInteractions';
import { toggleAudioAutoplay } from '../../../state/ducks/userConfig';
import { sessionPassword } from '../../../state/ducks/modalDialog';
-import { PasswordAction } from '../SessionPasswordModal';
+import { PasswordAction } from '../../dialog/SessionPasswordDialog';
import { SessionIconButton, SessionIconSize, SessionIconType } from '../icon';
-import { withTheme } from 'styled-components';
export enum SessionSettingCategory {
Appearance = 'appearance',
diff --git a/ts/state/ducks/modalDialog.tsx b/ts/state/ducks/modalDialog.tsx
index 6ec81e0d4..1eb17279d 100644
--- a/ts/state/ducks/modalDialog.tsx
+++ b/ts/state/ducks/modalDialog.tsx
@@ -1,6 +1,6 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
-import { SessionConfirmDialogProps } from '../../components/session/SessionConfirm';
-import { PasswordAction } from '../../components/session/SessionPasswordModal';
+import { SessionConfirmDialogProps } from '../../components/dialog/SessionConfirm';
+import { PasswordAction } from '../../components/dialog/SessionPasswordDialog';
export type ConfirmModalState = SessionConfirmDialogProps | null;
export type InviteContactModalState = { conversationId: string } | null;