Skip to content

Commit 3aab73e

Browse files
Update domain permissions to support individual camera and microphone modals (#2485)
1 parent 1e0f9b6 commit 3aab73e

26 files changed

Lines changed: 626 additions & 177 deletions
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "prerelease",
3+
"comment": "New individual camera and microphone permission modals",
4+
"packageName": "@internal/react-components",
5+
"email": "2684369+JamesBurnside@users.noreply.github.com",
6+
"dependentChangeType": "patch"
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "none",
3+
"comment": "Update names",
4+
"packageName": "@internal/react-composites",
5+
"email": "2684369+JamesBurnside@users.noreply.github.com",
6+
"dependentChangeType": "none"
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "none",
3+
"comment": "Add stories for individual camera and mic permission modals in internal folder",
4+
"packageName": "@internal/storybook",
5+
"email": "2684369+JamesBurnside@users.noreply.github.com",
6+
"dependentChangeType": "none"
7+
}

packages/communication-react/review/beta/communication-react.api.md

Lines changed: 59 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,20 @@ export interface CallWithChatControlOptions {
10201020
// @public
10211021
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
10221022

1023+
// @beta
1024+
export const CameraAndMicrophoneDomainPermissions: (props: CameraAndMicrophoneDomainPermissionsProps) => JSX.Element;
1025+
1026+
// @beta
1027+
export interface CameraAndMicrophoneDomainPermissionsProps extends CommonDomainPermissionsProps {
1028+
cameraIconName?: string;
1029+
connectorIconName?: string;
1030+
microphoneIconName?: string;
1031+
strings?: CameraAndMicrophoneDomainPermissionsStrings;
1032+
}
1033+
1034+
// @beta
1035+
export type CameraAndMicrophoneDomainPermissionsStrings = DomainPermissionsStrings;
1036+
10231037
// @public
10241038
export const CameraButton: (props: CameraButtonProps) => JSX.Element;
10251039

@@ -1070,6 +1084,18 @@ export interface CameraButtonStyles extends ControlBarButtonStyles {
10701084
menuStyles?: Partial<CameraButtonContextualMenuStyles>;
10711085
}
10721086

1087+
// @beta
1088+
export const CameraDomainPermissions: (props: CameraDomainPermissionsProps) => JSX.Element;
1089+
1090+
// @beta
1091+
export interface CameraDomainPermissionsProps extends CommonDomainPermissionsProps {
1092+
cameraIconName?: string;
1093+
strings?: CameraDomainPermissionsStrings;
1094+
}
1095+
1096+
// @beta
1097+
export type CameraDomainPermissionsStrings = DomainPermissionsStrings;
1098+
10731099
// @public
10741100
export type ChatAdapter = ChatAdapterThreadManagement & AdapterState<ChatAdapterState> & Disposable & ChatAdapterSubscribers & FileUploadAdapter;
10751101

@@ -1305,6 +1331,14 @@ export type ClientState = CallClientState & ChatClientState;
13051331
// @public
13061332
export type Common<A, B> = Pick<A, CommonProperties<A, B>>;
13071333

1334+
// @beta
1335+
export interface CommonDomainPermissionsProps {
1336+
appName: string;
1337+
onContinueAnywayClick?: () => void;
1338+
onTroubleshootingClick?: () => void;
1339+
styles?: DomainPermissionsStyles;
1340+
}
1341+
13081342
// @public
13091343
export type CommonProperties<A, B> = {
13101344
[P in keyof A & keyof B]: A[P] extends B[P] ? P : never;
@@ -1375,16 +1409,18 @@ export type ComponentProps<Component extends (props: any) => JSX.Element> = Chat
13751409
export interface ComponentStrings {
13761410
BrowserPermissionDenied: BrowserPermissionDeniedStrings;
13771411
BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;
1412+
CameraAndMicrophoneDomainPermissions: DomainPermissionsStrings;
13781413
cameraButton: CameraButtonStrings;
1414+
CameraDomainPermissions: DomainPermissionsStrings;
13791415
devicesButton: DevicesButtonStrings;
13801416
dialpad: DialpadStrings;
1381-
DomainPermissions: DomainPermissionsStrings;
13821417
endCallButton: EndCallButtonStrings;
13831418
errorBar: ErrorBarStrings;
13841419
holdButton: HoldButtonStrings;
13851420
messageStatusIndicator: MessageStatusIndicatorStrings;
13861421
messageThread: MessageThreadStrings;
13871422
microphoneButton: MicrophoneButtonStrings;
1423+
MicrophoneDomainPermissions: DomainPermissionsStrings;
13881424
participantItem: ParticipantItemStrings;
13891425
participantsButton: ParticipantsButtonStrings;
13901426
screenShareButton: ScreenShareButtonStrings;
@@ -1922,23 +1958,18 @@ export interface Disposable {
19221958
}
19231959

19241960
// @beta
1925-
export const DomainPermissions: (props: DomainPermissionsProps) => JSX.Element;
1926-
1927-
// @beta
1928-
export interface DomainPermissionsProps {
1929-
appName: string;
1930-
onAllowAccessClick?: () => void;
1931-
onTroubleshootingClick?: () => void;
1932-
strings?: DomainPermissionsStrings;
1933-
}
1961+
export type DomainPermissionsStrings = {
1962+
primaryText?: string;
1963+
secondaryText?: string;
1964+
linkText?: string;
1965+
primaryButtonText?: string;
1966+
ariaLabel?: string;
1967+
};
19341968

19351969
// @beta
1936-
export interface DomainPermissionsStrings {
1937-
ariaLabel: string;
1938-
linkText: string;
1939-
primaryButtonText: string;
1940-
primaryText: string;
1941-
secondaryText: string;
1970+
export interface DomainPermissionsStyles extends BaseCustomStyles {
1971+
primaryButton?: IButtonStyles;
1972+
troubleshootingLink?: ILinkStyles;
19421973
}
19431974

19441975
// @beta
@@ -2467,6 +2498,18 @@ export interface MicrophoneButtonStyles extends ControlBarButtonStyles {
24672498
menuStyles?: Partial<MicrophoneButtonContextualMenuStyles>;
24682499
}
24692500

2501+
// @beta
2502+
export const MicrophoneDomainPermissions: (props: MicrophoneDomainPermissionsProps) => JSX.Element;
2503+
2504+
// @beta
2505+
export interface MicrophoneDomainPermissionsProps extends CommonDomainPermissionsProps {
2506+
microphoneIconName?: string;
2507+
strings?: MicrophoneDomainPermissionsStrings;
2508+
}
2509+
2510+
// @beta
2511+
export type MicrophoneDomainPermissionsStrings = DomainPermissionsStrings;
2512+
24702513
// @public
24712514
export type NetworkDiagnosticChangedEvent = NetworkDiagnosticChangedEventArgs & {
24722515
type: 'network';

packages/communication-react/src/index.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,23 @@ export { HoldButton } from '../../react-components/src';
118118
export { Dialpad } from '../../react-components/src';
119119

120120
/* @conditional-compile-remove(call-readiness) */
121-
export { DomainPermissions } from '../../react-components/src';
121+
export {
122+
CameraAndMicrophoneDomainPermissions,
123+
MicrophoneDomainPermissions,
124+
CameraDomainPermissions
125+
} from '../../react-components/src';
126+
/* @conditional-compile-remove(call-readiness) */
127+
export type {
128+
CameraAndMicrophoneDomainPermissionsStrings,
129+
CameraAndMicrophoneDomainPermissionsProps,
130+
CameraDomainPermissionsStrings,
131+
CameraDomainPermissionsProps,
132+
CommonDomainPermissionsProps,
133+
DomainPermissionsStrings,
134+
DomainPermissionsStyles,
135+
MicrophoneDomainPermissionsStrings,
136+
MicrophoneDomainPermissionsProps
137+
} from '../../react-components/src';
122138

123139
export type {
124140
_IdentifierProviderProps,
@@ -233,8 +249,6 @@ export type {
233249
/* @conditional-compile-remove(PSTN-calls) */
234250
export type { HoldButtonProps, HoldButtonStrings, VideoTileStrings } from '../../react-components/src';
235251
/* @conditional-compile-remove(call-readiness) */
236-
export type { DomainPermissionsStrings, DomainPermissionsProps } from '../../react-components/src';
237-
/* @conditional-compile-remove(call-readiness) */
238252
export type { BrowserPermissionDeniedStrings, BrowserPermissionDeniedProps } from '../../react-components/src';
239253
/* @conditional-compile-remove(call-readiness) */
240254
export type {

packages/react-components/review/beta/react-components.api.md

Lines changed: 59 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,20 @@ export type CallParticipantListParticipant = ParticipantListParticipant & {
136136
role?: Role;
137137
};
138138

139+
// @beta
140+
export const CameraAndMicrophoneDomainPermissions: (props: CameraAndMicrophoneDomainPermissionsProps) => JSX.Element;
141+
142+
// @beta
143+
export interface CameraAndMicrophoneDomainPermissionsProps extends CommonDomainPermissionsProps {
144+
cameraIconName?: string;
145+
connectorIconName?: string;
146+
microphoneIconName?: string;
147+
strings?: CameraAndMicrophoneDomainPermissionsStrings;
148+
}
149+
150+
// @beta
151+
export type CameraAndMicrophoneDomainPermissionsStrings = DomainPermissionsStrings;
152+
139153
// @public
140154
export const CameraButton: (props: CameraButtonProps) => JSX.Element;
141155

@@ -178,6 +192,18 @@ export interface CameraButtonStyles extends ControlBarButtonStyles {
178192
menuStyles?: Partial<CameraButtonContextualMenuStyles>;
179193
}
180194

195+
// @beta
196+
export const CameraDomainPermissions: (props: CameraDomainPermissionsProps) => JSX.Element;
197+
198+
// @beta
199+
export interface CameraDomainPermissionsProps extends CommonDomainPermissionsProps {
200+
cameraIconName?: string;
201+
strings?: CameraDomainPermissionsStrings;
202+
}
203+
204+
// @beta
205+
export type CameraDomainPermissionsStrings = DomainPermissionsStrings;
206+
181207
// @public
182208
export interface ChatMessage extends MessageCommon {
183209
// (undocumented)
@@ -207,6 +233,14 @@ export interface ChatMessage extends MessageCommon {
207233
status?: MessageStatus;
208234
}
209235

236+
// @beta
237+
export interface CommonDomainPermissionsProps {
238+
appName: string;
239+
onContinueAnywayClick?: () => void;
240+
onTroubleshootingClick?: () => void;
241+
styles?: DomainPermissionsStyles;
242+
}
243+
210244
// @public
211245
export type CommunicationParticipant = {
212246
userId: string;
@@ -313,16 +347,18 @@ export interface ComponentLocale {
313347
export interface ComponentStrings {
314348
BrowserPermissionDenied: BrowserPermissionDeniedStrings;
315349
BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;
350+
CameraAndMicrophoneDomainPermissions: DomainPermissionsStrings;
316351
cameraButton: CameraButtonStrings;
352+
CameraDomainPermissions: DomainPermissionsStrings;
317353
devicesButton: DevicesButtonStrings;
318354
dialpad: DialpadStrings;
319-
DomainPermissions: DomainPermissionsStrings;
320355
endCallButton: EndCallButtonStrings;
321356
errorBar: ErrorBarStrings;
322357
holdButton: HoldButtonStrings;
323358
messageStatusIndicator: MessageStatusIndicatorStrings;
324359
messageThread: MessageThreadStrings;
325360
microphoneButton: MicrophoneButtonStrings;
361+
MicrophoneDomainPermissions: DomainPermissionsStrings;
326362
participantItem: ParticipantItemStrings;
327363
participantsButton: ParticipantsButtonStrings;
328364
screenShareButton: ScreenShareButtonStrings;
@@ -582,23 +618,18 @@ export interface DialpadStyles {
582618
}
583619

584620
// @beta
585-
export const DomainPermissions: (props: DomainPermissionsProps) => JSX.Element;
586-
587-
// @beta
588-
export interface DomainPermissionsProps {
589-
appName: string;
590-
onAllowAccessClick?: () => void;
591-
onTroubleshootingClick?: () => void;
592-
strings?: DomainPermissionsStrings;
593-
}
621+
export type DomainPermissionsStrings = {
622+
primaryText?: string;
623+
secondaryText?: string;
624+
linkText?: string;
625+
primaryButtonText?: string;
626+
ariaLabel?: string;
627+
};
594628

595629
// @beta
596-
export interface DomainPermissionsStrings {
597-
ariaLabel: string;
598-
linkText: string;
599-
primaryButtonText: string;
600-
primaryText: string;
601-
secondaryText: string;
630+
export interface DomainPermissionsStyles extends BaseCustomStyles {
631+
primaryButton?: IButtonStyles;
632+
troubleshootingLink?: ILinkStyles;
602633
}
603634

604635
// @internal
@@ -1116,6 +1147,18 @@ export interface MicrophoneButtonStyles extends ControlBarButtonStyles {
11161147
menuStyles?: Partial<MicrophoneButtonContextualMenuStyles>;
11171148
}
11181149

1150+
// @beta
1151+
export const MicrophoneDomainPermissions: (props: MicrophoneDomainPermissionsProps) => JSX.Element;
1152+
1153+
// @beta
1154+
export interface MicrophoneDomainPermissionsProps extends CommonDomainPermissionsProps {
1155+
microphoneIconName?: string;
1156+
strings?: MicrophoneDomainPermissionsStrings;
1157+
}
1158+
1159+
// @beta
1160+
export type MicrophoneDomainPermissionsStrings = DomainPermissionsStrings;
1161+
11191162
// @internal (undocumented)
11201163
export const _ModalClone: React_3.FunctionComponent<_ExtendedIModalProps>;
11211164

0 commit comments

Comments
 (0)