Skip to content

Commit 6386ee7

Browse files
Add modal on mobile for RTT (#5790)
* Modal on phone * Change files * update test * Change files * Update packages/react-composites CallWithChatComposite browser test snapshots * Update packages/react-composites CallWithChatComposite browser test snapshots * Update packages/react-composites CallComposite browser test snapshots * Update packages/react-composites CallComposite browser test snapshots * udpate lint --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 2626627 commit 6386ee7

13 files changed

Lines changed: 47 additions & 29 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "prerelease",
3+
"area": "feature",
4+
"workstream": "RTT",
5+
"comment": "Add RTT modal when starting RTT on mobile",
6+
"packageName": "@azure/communication-react",
7+
"email": "96077406+carocao-msft@users.noreply.github.com",
8+
"dependentChangeType": "patch"
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "prerelease",
3+
"area": "feature",
4+
"workstream": "RTT",
5+
"comment": "Add RTT modal when starting RTT on mobile",
6+
"packageName": "@azure/communication-react",
7+
"email": "96077406+carocao-msft@users.noreply.github.com",
8+
"dependentChangeType": "patch"
9+
}

packages/react-composites/src/composites/common/Drawer/MoreDrawer.tsx

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ import {
5252
getLocalUserId,
5353
getIsTeamsCall
5454
} from '../../CallComposite/selectors/baseSelectors';
55+
/* @conditional-compile-remove(rtt) */
56+
import { CallingRealTimeTextModal } from '../CallingRealTimeTextModal';
5557

5658
/** @private */
5759
export interface MoreDrawerStrings {
@@ -204,6 +206,16 @@ export const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {
204206
const participants = useSelector(getRemoteParticipantsConnectedSelector);
205207
const allowDtmfDialer = showDtmfDialer(callees, participants, props.dtmfDialerOptions);
206208
const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);
209+
/* @conditional-compile-remove(rtt) */
210+
const [showRealTimeTextModal, setShowRealTimeTextModal] = useState(false);
211+
/* @conditional-compile-remove(rtt) */
212+
const openRealTimeTextModal = useCallback((): void => {
213+
setShowRealTimeTextModal(true);
214+
}, []);
215+
/* @conditional-compile-remove(rtt) */
216+
const onDismissRealTimeTextModal = useCallback((): void => {
217+
setShowRealTimeTextModal(false);
218+
}, []);
207219

208220
const raiseHandButtonProps = usePropsFor(RaiseHandButton) as RaiseHandButtonProps;
209221
/* @conditional-compile-remove(together-mode) */
@@ -654,7 +666,7 @@ export const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {
654666
iconName: 'RealTimeTextIcon',
655667
styles: { root: { lineHeight: 0 } }
656668
},
657-
onItemClick: props.onStartRealTimeText,
669+
onItemClick: openRealTimeTextModal,
658670
disabled: rttDisabled,
659671
secondaryComponent: (
660672
<Stack verticalFill verticalAlign="center">
@@ -665,7 +677,7 @@ export const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {
665677
theme,
666678
realTimeTextProps.isRealTimeTextOn || props.startRealTimeTextButtonChecked
667679
)}
668-
onChange={props.onStartRealTimeText}
680+
onChange={openRealTimeTextModal}
669681
/>
670682
</Stack>
671683
)
@@ -690,9 +702,17 @@ export const MoreDrawer = (props: MoreDrawerProps): JSX.Element => {
690702
customDrawerButtons['overflow'].forEach((element) => {
691703
drawerMenuItems.push(element);
692704
});
693-
694705
return (
695706
<>
707+
{
708+
/* @conditional-compile-remove(rtt) */ showRealTimeTextModal && (
709+
<CallingRealTimeTextModal
710+
showModal={showRealTimeTextModal}
711+
onDismissModal={onDismissRealTimeTextModal}
712+
onStartRealTimeText={props.onStartRealTimeText}
713+
/>
714+
)
715+
}
696716
{isSpokenLanguageDrawerOpen && showCaptionsButton && (
697717
<SpokenLanguageSettingsDrawer
698718
onLightDismiss={props.onLightDismiss}

packages/react-composites/tests/browser/call/hermetic/RealTimeText.test.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,7 @@ test.describe('Real Time Text tests', async () => {
4949
expect(await stableScreenshot(page)).toMatchSnapshot(`realTimeText-button-call.png`);
5050
});
5151

52-
test('Real Time Text Modal renders normally', async ({ page, serverUrl }, testInfo) => {
53-
//skip this test for mobile
54-
if (isTestProfileMobile(testInfo)) {
55-
test.skip();
56-
}
52+
test('Real Time Text Modal renders normally', async ({ page, serverUrl }) => {
5753
const initialState = defaultMockCallAdapterState();
5854
await page.goto(buildUrlWithMockAdapter(serverUrl, initialState, { newControlBarExperience: 'true' }));
5955
await pageClick(page, dataUiId('common-call-composite-more-button'));
@@ -62,19 +58,13 @@ test.describe('Real Time Text tests', async () => {
6258
expect(await stableScreenshot(page)).toMatchSnapshot(`realTimeText-modal.png`);
6359
});
6460

65-
test('Real Time Text Banner renders normally after start button is clicked', async ({
66-
page,
67-
serverUrl
68-
}, testInfo) => {
61+
test('Real Time Text Banner renders normally after start button is clicked', async ({ page, serverUrl }) => {
6962
const initialState = defaultMockCallAdapterState();
7063
await page.goto(buildUrlWithMockAdapter(serverUrl, initialState, { newControlBarExperience: 'true' }));
7164
await pageClick(page, dataUiId('common-call-composite-more-button'));
7265
await pageClick(page, `[id="common-call-composite-rtt-button"]`);
7366
await pageClick(page, `[id="common-call-composite-rtt-start-button"]`);
74-
if (!isTestProfileMobile(testInfo)) {
75-
// need to click start for the modal
76-
await pageClick(page, dataUiId('realTimeText-modal-confirm-button'));
77-
}
67+
await pageClick(page, dataUiId('realTimeText-modal-confirm-button'));
7868
expect(await stableScreenshot(page)).toMatchSnapshot(`realTimeText-banner.png`);
7969
});
8070

packages/react-composites/tests/browser/callwithchat/hermetic/RealTimeText.test.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,7 @@ test.describe('Real Time Text tests', async () => {
5050
expect(await stableScreenshot(page)).toMatchSnapshot(`realTimeText-button-call.png`);
5151
});
5252

53-
test('Real Time Text Modal renders normally', async ({ page, serverUrl }, testInfo) => {
54-
//skip this test for mobile
55-
if (isTestProfileMobile(testInfo)) {
56-
test.skip();
57-
}
53+
test('Real Time Text Modal renders normally', async ({ page, serverUrl }) => {
5854
const initialState = defaultMockCallAdapterState();
5955
await loadCallPage(page, serverUrl, initialState);
6056
await pageClick(page, dataUiId('common-call-composite-more-button'));
@@ -63,19 +59,13 @@ test.describe('Real Time Text tests', async () => {
6359
expect(await stableScreenshot(page)).toMatchSnapshot(`realTimeText-modal.png`);
6460
});
6561

66-
test('Real Time Text Banner renders normally after start button is clicked', async ({
67-
page,
68-
serverUrl
69-
}, testInfo) => {
62+
test('Real Time Text Banner renders normally after start button is clicked', async ({ page, serverUrl }) => {
7063
const initialState = defaultMockCallAdapterState();
7164
await loadCallPage(page, serverUrl, initialState);
7265
await pageClick(page, dataUiId('common-call-composite-more-button'));
7366
await pageClick(page, `[id="common-call-composite-rtt-button"]`);
7467
await pageClick(page, `[id="common-call-composite-rtt-start-button"]`);
75-
if (!isTestProfileMobile(testInfo)) {
76-
// need to click start for the modal
77-
await pageClick(page, dataUiId('realTimeText-modal-confirm-button'));
78-
}
68+
await pageClick(page, dataUiId('realTimeText-modal-confirm-button'));
7969
expect(await stableScreenshot(page)).toMatchSnapshot(`realTimeText-banner.png`);
8070
});
8171

Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)