@azure/communication-react 1.4.2-alpha-202211090017.0 → 1.4.2-alpha-202211100016.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/dist/communication-react.d.ts +2 -2
  2. package/dist/dist-cjs/communication-react/index.js +51 -8
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +1 -1
  7. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -1
  9. package/dist/dist-esm/react-components/src/theming/icons.js +3 -3
  10. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  11. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +12 -2
  12. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +8 -0
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +26 -0
  15. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  16. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +10 -1
  17. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  18. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -1
  19. package/dist/dist-esm/react-composites/src/composites/common/icons.js +2 -2
  20. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  21. package/package.json +8 -8
@@ -4336,7 +4336,7 @@ export declare const DEFAULT_COMPONENT_ICONS: {
4336
4336
  SendBoxSend: JSX.Element;
4337
4337
  SendBoxSendHovered: JSX.Element;
4338
4338
  VideoTileMicOff: JSX.Element;
4339
- BackSpace: JSX.Element;
4339
+ DialpadBackspace: JSX.Element;
4340
4340
  DomainPermissionsSparkle: JSX.Element;
4341
4341
  DomainPermissionCamera: JSX.Element;
4342
4342
  DomainPermissionMic: JSX.Element;
@@ -4431,7 +4431,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
4431
4431
  HoldCallContextualMenuItem: JSX.Element;
4432
4432
  HoldCallButton: JSX.Element;
4433
4433
  ResumeCall: JSX.Element;
4434
- BackSpace: JSX.Element;
4434
+ DialpadBackspace: JSX.Element;
4435
4435
  DomainPermissionsSparkle: JSX.Element;
4436
4436
  DomainPermissionCamera: JSX.Element;
4437
4437
  DomainPermissionMic: JSX.Element;
@@ -202,7 +202,7 @@ const _toCommunicationIdentifier = (id) => {
202
202
  // Copyright (c) Microsoft Corporation.
203
203
  // Licensed under the MIT license.
204
204
  // GENERATED FILE. DO NOT EDIT MANUALLY.
205
- var telemetryVersion = '1.4.2-alpha-202211090017.0';
205
+ var telemetryVersion = '1.4.2-alpha-202211100016.0';
206
206
 
207
207
  // Copyright (c) Microsoft Corporation.
208
208
  /**
@@ -2147,7 +2147,7 @@ const DEFAULT_COMPONENT_ICONS = {
2147
2147
  SendBoxSendHovered: React__default['default'].createElement(reactIcons.Send20Filled, null),
2148
2148
  VideoTileMicOff: React__default['default'].createElement(reactIcons.MicOff16Filled, null),
2149
2149
  /* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
2150
- BackSpace: React__default['default'].createElement(reactIcons.Backspace20Regular, null),
2150
+ DialpadBackspace: React__default['default'].createElement(reactIcons.Backspace20Regular, null),
2151
2151
  /* @conditional-compile-remove(call-readiness) */
2152
2152
  DomainPermissionsSparkle: React__default['default'].createElement(DomainPermissionSparkle20Filled, null),
2153
2153
  /* @conditional-compile-remove(call-readiness) */
@@ -8347,7 +8347,7 @@ const DialpadContainer = (props) => {
8347
8347
  setText(e.target.value);
8348
8348
  }, placeholder: props.strings.placeholderText, "data-test-id": "dialpad-input", onRenderSuffix: () => {
8349
8349
  var _a;
8350
- return (React__default['default'].createElement(React__default['default'].Fragment, null, showDeleteButton && plainTextValue.length !== 0 && (React__default['default'].createElement(react.IconButton, { ariaLabel: props.strings.deleteButtonAriaLabel, onClick: deleteNumbers, styles: react.concatStyleSets(iconButtonStyles(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.deleteIcon), iconProps: { iconName: 'BackSpace' } }))));
8350
+ return (React__default['default'].createElement(React__default['default'].Fragment, null, showDeleteButton && plainTextValue.length !== 0 && (React__default['default'].createElement(react.IconButton, { ariaLabel: props.strings.deleteButtonAriaLabel, onClick: deleteNumbers, styles: react.concatStyleSets(iconButtonStyles(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.deleteIcon), iconProps: { iconName: 'DialpadBackspace' } }))));
8351
8351
  } }),
8352
8352
  React__default['default'].createElement(react.FocusZone, null, dialPadButtonsDefault.map((rows, rowIndex) => {
8353
8353
  return (React__default['default'].createElement(react.Stack, { horizontal: true, key: `row_${rowIndex}`, horizontalAlign: "stretch" }, rows.map((button, columnIndex) => (React__default['default'].createElement(DialpadButton, { key: `button_${columnIndex}`,
@@ -13613,8 +13613,8 @@ const coffeeIconStyle = {
13613
13613
  * @public
13614
13614
  */
13615
13615
  const COMPOSITE_ONLY_ICONS = {
13616
- ChevronLeft: React__default['default'].createElement(react.FontIcon, { iconName: "ChevronLeft" }),
13617
- Link: React__default['default'].createElement(react.FontIcon, { iconName: "Link" }),
13616
+ ChevronLeft: undefined,
13617
+ Link: undefined,
13618
13618
  LobbyScreenConnectingToCall: React__default['default'].createElement(CoffeeIcon, null),
13619
13619
  LobbyScreenWaitingToBeAdmitted: React__default['default'].createElement(CoffeeIcon, null),
13620
13620
  LocalDeviceSettingsCamera: React__default['default'].createElement(reactIcons.Video20Filled, null),
@@ -14582,11 +14582,20 @@ const BaseProvider = (props) => {
14582
14582
  if (alreadyWrapped) {
14583
14583
  return React__default['default'].createElement(React__default['default'].Fragment, null, props.children);
14584
14584
  }
14585
+ /**
14586
+ * Before registering fluent icons, we should check DEFAULT_COMPOSITE_ICONS and strip out the key value pairs where value is undefined
14587
+ */
14588
+ const iconsToRegister = {};
14589
+ Object.entries(DEFAULT_COMPOSITE_ICONS).forEach(([key, value]) => {
14590
+ if (value) {
14591
+ iconsToRegister[key] = value;
14592
+ }
14593
+ });
14585
14594
  /**
14586
14595
  * We register the default icon mappings merged with custom icons provided through props
14587
14596
  * to ensure all icons render correctly.
14588
14597
  */
14589
- react.registerIcons({ icons: Object.assign(Object.assign({}, DEFAULT_COMPOSITE_ICONS), props.icons) });
14598
+ react.registerIcons({ icons: Object.assign(Object.assign({}, iconsToRegister), props.icons) });
14590
14599
  // we use Customizer to override default LayerHost injected to <body />
14591
14600
  // which stop polluting global dom tree and increase compatibility with react-full-screen
14592
14601
  const CompositeElement = (React__default['default'].createElement(FluentThemeProvider, { fluentTheme: fluentTheme, rtl: rtl },
@@ -15551,6 +15560,32 @@ const isDisabled$2 = (option) => {
15551
15560
  }
15552
15561
  return option.disabled;
15553
15562
  };
15563
+ /* @conditional-compile-remove(call-readiness) */
15564
+ /**
15565
+ *
15566
+ * This function uses permission API to determine if device permission state is granted, prompt or denied
15567
+ * @returns whether device permission state is granted, prompt or denied
15568
+ * If permission API is not supported on this browser, do nothing and log out error
15569
+ * @private
15570
+ */
15571
+ const getDevicePermissionState = (setVideoState, setAudioState) => {
15572
+ navigator.permissions
15573
+ .query({ name: 'camera' })
15574
+ .then((result) => {
15575
+ setVideoState(result.state);
15576
+ })
15577
+ .catch((error) => {
15578
+ console.log(error);
15579
+ });
15580
+ navigator.permissions
15581
+ .query({ name: 'microphone' })
15582
+ .then((result) => {
15583
+ setAudioState(result.state);
15584
+ })
15585
+ .catch((error) => {
15586
+ console.log(error);
15587
+ });
15588
+ };
15554
15589
 
15555
15590
  // Copyright (c) Microsoft Corporation.
15556
15591
  // Licensed under the MIT license.
@@ -18215,6 +18250,13 @@ const ConfigurationPage = (props) => {
18215
18250
  const options = useAdaptedSelector(getSelector$1(DevicesButton));
18216
18251
  const localDeviceSettingsHandlers = useHandlers();
18217
18252
  const { video: cameraPermissionGranted, audio: microphonePermissionGranted } = useSelector$1(devicePermissionSelector);
18253
+ /* @conditional-compile-remove(call-readiness) */
18254
+ // use permission API to get video and audio permission state
18255
+ const [videoState, setVideoState] = React.useState(undefined);
18256
+ /* @conditional-compile-remove(call-readiness) */
18257
+ const [audioState, setAudioState] = React.useState(undefined);
18258
+ /* @conditional-compile-remove(call-readiness) */
18259
+ getDevicePermissionState(setVideoState, setAudioState);
18218
18260
  let errorBarProps = usePropsFor$1(ErrorBar);
18219
18261
  const adapter = useAdapter();
18220
18262
  const deviceState = adapter.getState().devices;
@@ -18251,8 +18293,9 @@ const ConfigurationPage = (props) => {
18251
18293
  mobileWithPreview = mobileWithPreview && rolePermissions.cameraButton;
18252
18294
  /* @conditional-compile-remove(call-readiness) */
18253
18295
  const permissionsState = {
18254
- camera: cameraPermissionGranted ? 'granted' : 'denied',
18255
- microphone: microphonePermissionGranted ? 'granted' : 'denied'
18296
+ // fall back to using cameraPermissionGranted and microphonePermissionGranted if permission API is not supported
18297
+ camera: videoState !== null && videoState !== void 0 ? videoState : (cameraPermissionGranted ? 'granted' : 'denied'),
18298
+ microphone: audioState !== null && audioState !== void 0 ? audioState : (microphonePermissionGranted ? 'granted' : 'denied')
18256
18299
  };
18257
18300
  /* @conditional-compile-remove(call-readiness) */
18258
18301
  const networkErrors = errorBarProps.activeErrorMessages.filter((message) => message.type === 'callNetworkQualityLow');