diff --git a/src/components/calls/ActiveCallHeader.tsx b/src/components/calls/ActiveCallHeader.tsx index d2d912631..8c29966e1 100644 --- a/src/components/calls/ActiveCallHeader.tsx +++ b/src/components/calls/ActiveCallHeader.tsx @@ -32,6 +32,10 @@ const ActiveCallHeader: FC = ({ useEffect(() => { document.body.classList.toggle('has-group-call-header', isGroupCallPanelHidden); + + return () => { + document.body.classList.toggle('has-group-call-header', false); + }; }, [isGroupCallPanelHidden]); if (!groupCall || !meParticipant) return undefined; diff --git a/src/components/calls/group/GroupCall.tsx b/src/components/calls/group/GroupCall.tsx index b14c52253..f2f3afe79 100644 --- a/src/components/calls/group/GroupCall.tsx +++ b/src/components/calls/group/GroupCall.tsx @@ -184,6 +184,13 @@ const GroupCall: FC = ({ } }, [closeFullscreen, isFullscreen, openFullscreen]); + const handleClose = () => { + toggleGroupCallPanel(); + if (isFullscreen) { + closeFullscreen(); + } + }; + useEffect(() => { if (!IS_REQUEST_FULLSCREEN_SUPPORTED) return undefined; const container = containerRef.current; @@ -302,7 +309,7 @@ const GroupCall: FC = ({ round size="smaller" color="translucent" - onClick={toggleGroupCallPanel} + onClick={handleClose} > diff --git a/src/components/calls/group/GroupCallParticipantList.tsx b/src/components/calls/group/GroupCallParticipantList.tsx index 4f46aa37a..00b587582 100644 --- a/src/components/calls/group/GroupCallParticipantList.tsx +++ b/src/components/calls/group/GroupCallParticipantList.tsx @@ -8,7 +8,6 @@ import { pick } from '../../../util/iteratees'; import useLang from '../../../hooks/useLang'; import { selectActiveGroupCall } from '../../../modules/selectors/calls'; import useInfiniteScroll from '../../../hooks/useInfiniteScroll'; -import { selectChat } from '../../../modules/selectors'; import GroupCallParticipant from './GroupCallParticipant'; import InfiniteScroll from '../../ui/InfiniteScroll'; @@ -31,7 +30,6 @@ const GroupCallParticipantList: FC = ({ participants, participantsCount, openParticipantMenu, - canInvite, }) => { const lang = useLang(); @@ -47,14 +45,12 @@ const GroupCallParticipantList: FC = ({ return (
- {canInvite && ( -
-
- -
-
{lang('VoipGroupInviteMember')}
+
+
+
- )} +
{lang('VoipGroupInviteMember')}
+
= ({ export default memo(withGlobal( (global): StateProps => { - const { participantsCount, participants, chatId } = selectActiveGroupCall(global) || {}; - const chat = chatId && selectChat(global, chatId); + const { participantsCount, participants } = selectActiveGroupCall(global) || {}; return { participants, participantsCount: participantsCount || 0, - canInvite: !!chat && !!chat.username, }; }, (setGlobal, actions): DispatchProps => pick(actions, [ diff --git a/src/global/cache.ts b/src/global/cache.ts index 52df6f2f7..d9ff356f9 100644 --- a/src/global/cache.ts +++ b/src/global/cache.ts @@ -222,7 +222,6 @@ function updateCache() { 'shouldShowContextMenuHint', 'leftColumnWidth', 'serviceNotifications', - // TODO Support 'groupCalls' ]), audioPlayer: { volume: global.audioPlayer.volume, diff --git a/src/modules/actions/ui/calls.ts b/src/modules/actions/ui/calls.ts index 16507b646..aa71bbb3b 100644 --- a/src/modules/actions/ui/calls.ts +++ b/src/modules/actions/ui/calls.ts @@ -149,19 +149,31 @@ addReducer('createGroupCall', (global, actions, payload) => { addReducer('createGroupCallInviteLink', (global, actions) => { const groupCall = selectActiveGroupCall(global); - if (!groupCall) { + if (!groupCall || !groupCall.chatId) { return; } + const chat = selectChat(global, groupCall.chatId); + if (!chat) { + return; + } + + const canInvite = !!chat && !!chat.username; + (async () => { - const result = await callApi('exportGroupCallInvite', { - call: groupCall, - canSelfUnmute: false, - }); + let { inviteLink } = chat.fullInfo!; + if (canInvite) { + inviteLink = await callApi('exportGroupCallInvite', { + call: groupCall, + canSelfUnmute: false, + }); + } - if (!result) return; + if (!inviteLink) { + return; + } - copyTextToClipboard(result); + copyTextToClipboard(inviteLink); actions.showNotification({ message: 'Link copied to clipboard', });