|
|
@ -7,7 +7,7 @@ import { useDispatch } from 'react-redux';
|
|
|
|
import { VALIDATION } from '../../session/constants';
|
|
|
|
import { VALIDATION } from '../../session/constants';
|
|
|
|
import { ConvoHub } from '../../session/conversations';
|
|
|
|
import { ConvoHub } from '../../session/conversations';
|
|
|
|
import { ToastUtils, UserUtils } from '../../session/utils';
|
|
|
|
import { ToastUtils, UserUtils } from '../../session/utils';
|
|
|
|
import { updateInviteContactModal } from '../../state/ducks/modalDialog';
|
|
|
|
import { updateGroupMembersModal, updateInviteContactModal } from '../../state/ducks/modalDialog';
|
|
|
|
import { SpacerLG } from '../basic/Text';
|
|
|
|
import { SpacerLG } from '../basic/Text';
|
|
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
import {
|
|
|
@ -22,12 +22,10 @@ import { PubKey } from '../../session/types';
|
|
|
|
import { SessionUtilUserGroups } from '../../session/utils/libsession/libsession_utils_user_groups';
|
|
|
|
import { SessionUtilUserGroups } from '../../session/utils/libsession/libsession_utils_user_groups';
|
|
|
|
import { groupInfoActions } from '../../state/ducks/metaGroups';
|
|
|
|
import { groupInfoActions } from '../../state/ducks/metaGroups';
|
|
|
|
import { useContactsToInviteToGroup } from '../../state/selectors/conversations';
|
|
|
|
import { useContactsToInviteToGroup } from '../../state/selectors/conversations';
|
|
|
|
import { useMemberGroupChangePending } from '../../state/selectors/groups';
|
|
|
|
|
|
|
|
import { useSelectedIsGroupV2 } from '../../state/selectors/selectedConversation';
|
|
|
|
import { useSelectedIsGroupV2 } from '../../state/selectors/selectedConversation';
|
|
|
|
import { MemberListItem } from '../MemberListItem';
|
|
|
|
import { MemberListItem } from '../MemberListItem';
|
|
|
|
import { SessionWrapperModal } from '../SessionWrapperModal';
|
|
|
|
import { SessionWrapperModal } from '../SessionWrapperModal';
|
|
|
|
import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton';
|
|
|
|
import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton';
|
|
|
|
import { SessionSpinner } from '../loading';
|
|
|
|
|
|
|
|
import { SessionToggle } from '../basic/SessionToggle';
|
|
|
|
import { SessionToggle } from '../basic/SessionToggle';
|
|
|
|
import { GroupInviteRequiredVersionBanner } from '../NoticeBanner';
|
|
|
|
import { GroupInviteRequiredVersionBanner } from '../NoticeBanner';
|
|
|
|
import { hasClosedGroupV2QAButtons } from '../../shared/env_vars';
|
|
|
|
import { hasClosedGroupV2QAButtons } from '../../shared/env_vars';
|
|
|
@ -117,9 +115,6 @@ const InviteContactsDialogInner = (props: Props) => {
|
|
|
|
const dispatch = useDispatch();
|
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
|
|
|
|
|
|
|
const privateContactPubkeys = useContactsToInviteToGroup() as Array<PubkeyType>;
|
|
|
|
const privateContactPubkeys = useContactsToInviteToGroup() as Array<PubkeyType>;
|
|
|
|
|
|
|
|
|
|
|
|
const isProcessingUIChange = useMemberGroupChangePending();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const isPrivate = useIsPrivate(conversationId);
|
|
|
|
const isPrivate = useIsPrivate(conversationId);
|
|
|
|
const isPublic = useIsPublic(conversationId);
|
|
|
|
const isPublic = useIsPublic(conversationId);
|
|
|
|
const membersFromRedux = useSortedGroupMembers(conversationId) || [];
|
|
|
|
const membersFromRedux = useSortedGroupMembers(conversationId) || [];
|
|
|
@ -163,6 +158,11 @@ const InviteContactsDialogInner = (props: Props) => {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
dispatch(action as any);
|
|
|
|
dispatch(action as any);
|
|
|
|
empty();
|
|
|
|
empty();
|
|
|
|
|
|
|
|
// We want to show the dialog where "invite sending" is visible (i.e. the current group members) instead of this one
|
|
|
|
|
|
|
|
// once we hit "invite"
|
|
|
|
|
|
|
|
closeDialog();
|
|
|
|
|
|
|
|
dispatch(updateGroupMembersModal({ conversationId }));
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
void submitForClosedGroup(conversationId, selectedContacts);
|
|
|
|
void submitForClosedGroup(conversationId, selectedContacts);
|
|
|
@ -221,13 +221,12 @@ const InviteContactsDialogInner = (props: Props) => {
|
|
|
|
)}
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<SpacerLG />
|
|
|
|
<SpacerLG />
|
|
|
|
<SessionSpinner loading={isProcessingUIChange} />
|
|
|
|
|
|
|
|
<SpacerLG />
|
|
|
|
<SpacerLG />
|
|
|
|
<div className="session-modal__button-group">
|
|
|
|
<div className="session-modal__button-group">
|
|
|
|
<SessionButton
|
|
|
|
<SessionButton
|
|
|
|
text={okText}
|
|
|
|
text={okText}
|
|
|
|
buttonType={SessionButtonType.Simple}
|
|
|
|
buttonType={SessionButtonType.Simple}
|
|
|
|
disabled={!hasContacts || isProcessingUIChange}
|
|
|
|
disabled={!hasContacts}
|
|
|
|
onClick={onClickOK}
|
|
|
|
onClick={onClickOK}
|
|
|
|
dataTestId="session-confirm-ok-button"
|
|
|
|
dataTestId="session-confirm-ok-button"
|
|
|
|
/>
|
|
|
|
/>
|
|
|
@ -236,7 +235,6 @@ const InviteContactsDialogInner = (props: Props) => {
|
|
|
|
buttonColor={SessionButtonColor.Danger}
|
|
|
|
buttonColor={SessionButtonColor.Danger}
|
|
|
|
buttonType={SessionButtonType.Simple}
|
|
|
|
buttonType={SessionButtonType.Simple}
|
|
|
|
onClick={closeDialog}
|
|
|
|
onClick={closeDialog}
|
|
|
|
disabled={isProcessingUIChange}
|
|
|
|
|
|
|
|
dataTestId="session-confirm-cancel-button"
|
|
|
|
dataTestId="session-confirm-cancel-button"
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|