// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added documentation for VoiceFocus and WebAudio best practice.
- Add support for React 19.
- Migrate storybook to v8.
- Migrate Jest to v29.
- Rewrite PopOver component using floating-ui
- Added support for multiple content shares in meetings through the
ContentShareProvider. The provider now accepts amaxContentSharesprop (default: 1, range 1-2) to specify the maximum number of concurrent content shares allowed.- Added new collections in
ContentShareStateto track multiple content shares:tiles,tileIdToAttendeeId, andattendeeIdToTileId. - Added optional
tileIdprop to theContentSharecomponent to specify which content share to render. - Added
canStartContentSharestate to control when content sharing is allowed based on the current number of shares and configured maximum. - Maintained backward compatibility by keeping
tileIdandsharingAttendeeIdproperties, which now point to the most recently started content share when multiple shares are present.
- Added new collections in
- Added support for styled-components v6. This change is compatible with both styled-components v5 and v6. styled-components v6 introduces various breaking changes. One major difference is that styled-components v6 omits automatic vendor prefixing by default. If you prefer the v5 behavior, refer to the styled-components v6 migration guide for details.
- Change to use loggers from
LoggerProvideras default when initialize background blur/replacement processor. - Change to not log the entire stringified
optionsobject in background blur/replacement processor.
- Fix conditions where
BackgroundReplacementProviderneeds to be re-rendered.
- Add
changeBackgroundReplacementImagefunction in theBackgroundReplacementProviderto enable the functionality of changing the background replacement image.changeBackgroundReplacementImagewill take aBlobas its parameter and return aPromise. - Add usage of
changeBackgroundReplacementImagein storybook.
- Add support for node 20 and drop support for node < 18.
- Add
skipDeviceSelectionoption on theMeetingManager.joinAPI. TheMeetingManager.joinby default lists and selects audio input, output and video input devices. UseskipDeviceSelectionflag to skip this default device selection. This is helpful when builders want to fully control device selection as part of meeting initialization. This also avoids no-audio issues in Safari which happens due to listing and selecting devices multiple times.
startAudioInputDevice,startVideoInputDevice, andsetupDeviceLabelTriggerofMeetingManagernow throw errors with the original errornamereturned by thegetUserMediacall. See details in issue #888.- Migrate SDK to react 18 based.
- Migrate storybook to v7.
- Migrate stories to ArgTypes based.
- Add support for react 18.
- Applications depending on Chime SDK component library currently do not have a out of the box
MeetingStatusto tell whether the JS SDK is in reconnection. Thus, addaudioVideoDidStartConnectingwith a newMeetingStatus.Reconnectingto aid such a use case.
- Updated
ContentShareto have optional nameplate prop.
-
Fix a bug where the
isVideoEnabledis still true even when the video device is unplugged. -
When audio inputs change in a meeting,
AudioInputProviderwill only automatically select a new audio input device if a meeting is joined withDeviceLabels.AudioorDeviceLabels.AudioAndVideodevice labels. -
Publish
MeetingStatus.Failedonly when a non-terminal failure is encountered. Currently, some Amazon Chime SDK for JavaScript meeting session statuses pass both thesessionStatus.isFailure()as well assessionStatus.isTerminal()in JS SDK, thus, for a status if it is in both, it will be considered as non-terminal failure andMeetingStatus.TerminalFailurewill never get set for such statuses. Check MeetingSessionStatus file for more information on both methods in JS SDK.
- Add support for Node.js 18.
- Updated
VoiceFocusProviderto destroy the Voice Focus worker thread on unmount. - Reverted changes to
BackgroundBlurProviderandBackgroundReplacemenProviderto fix bug related toisBackgroundBlurSupportedandisBackgroundReplacementSupportedreturning false.
- Update the documentation to use
GlobalStylesalong withThemeProvider.
- Refactor
toggleContentSharefunction to allow specifying aMediaStreamto share. This can be used to share non-screen share content. - Expose the background blur processor and background replacement processor from their respective providers -
BackgroundBlurProviderandBackgroundReplacementProvider.
- Update tsconfig to include packages under
./@typesandnode_modules/@typesin the TypeScript compilation. - Move the definition of default theme from its implementation to its
d.tsfile under./@typesto support function themes usage of styled-component.
- Add
audioSpeakerDelayMs,audioUpstreamRoundTripTimeMs,audioUpstreamJitterMs,audioDownstreamJitterMsandcurrentRoundTripTimeMsmetrics touseMediaStreamMetricshook. Also addrtcStatsReportto expose the originalRTCStatsReportfrom RTCPeerConnection.getStats().
- Improve "Handle Device Permission" guide in Quick Starts.
- Upgrade
storybookto a fixed6.5.0-alpha.64withwebpack v5to fix security vulnerabilities and issues with external HTTP link rendering. - Update integration test demo to install
amazon-chime-sdk-component-library-reactfrom local instead of from npm. Update corresponding GitHub Action and scripts.
- Fix command line sample to install latest node dependencies in migration guides.
- Clarify
setIsVideoEnabledusage inLocalVideoProvideranduseLocalVideodocs.
Amazon Chime SDK React Components Library v3 is here !! 🎉🎉🎉
Amazon Chime SDK React Components Library v3 includes major improvements for component style customization, MeetingProvider/MeetingManager configuration, device management, WebRTC metrics and logger.
- Component style customization: Improve components for easier customization of style. Check out our styling guide for more information.
MeetingProvider/MeetingManagerconfiguration: ImproveMeetingProvider,MeetingManagerandMeetingManager.join()API to allow configuring a meeting session right before joining a meeting instead of whenMeetingProvidermounts.- Device management: Improve
typesfor device selection components to better support basic and transformed devices. RemoveuseSelectAudioInputDevice,useSelectVideoInputDevice, anduseSelectAudioOutputDevicehooks to standardize device selection throughMeetingManagerand throw error when selection fails. - WebRTC metrics: Publish the standardized WebRTC metrics for all supported browsers. Deprecate
useBandwidthMetricshook in favor ofuseMediaStreamMetricshook. - Logger: Add
LoggerProvideranduseLoggercomponents to enable universal logging in component library.
Below is a list of all changes in Amazon Chime SDK React Components Library v3. Please refer to the Migration from 2.0 to 3.0 for more information.
- Add
LoggerProvideranduseLoggercomponents to enable universal logging in component library. - Add a new interface
MeetingManagerJoinOptionscontainingdeviceLabels,eventController,enableWebAudio, andactiveSpeakerPolicyproperties. This interface is used for optional parameteroptionsofMeetingManager.join()API. - Add new method
selectVideoInputDevice(device: VideoInputDevice)inMeetingManager. This method only updates theMeetingManager.selectedVideoInputDevicewith the givendeviceand publish this update viaselectedVideoInputDeviceObservers. The originalselectedVideoInputDevicemethod in V2 has been renamed tostartVideoInputDevicein V3. - Extend and enable style customizing capabilities on the SDK components.
- Add documentation for device management change.
- Remove logging of the video transform device to avoid circular structure error.
- Remove preset device selection options ("None" and "440 Hz" for audio input device. "None", "Blue", and "SMTP Color Bars" for video input device). Remove
appendSampleDevicesfrom Props ofCameraSelection,MicSelection,AudioInputControl,AudioInputVFcontrol, andVideoInputControl. RemoveDeviceConfigtype. RemoveadditionalDevicesfrom Props ofuseAudioInputsanduseVideoInputshook. - Remove
useSelectAudioInputDevice,useSelectAudioOutputDeviceanduseSelectVideoInputDevicehook. - Remove use of the deprecated
enableUnifiedPlanForChromiumBasedBrowsersconfiguration variable. - Remove all deprecated
MeetingSessionStatusCode. - Remove legacy metrics
videoDownstreamGoogFrameHeight,videoDownstreamGoogFrameWidth,videoUpstreamGoogFrameHeightandvideoUpstreamGoogFrameWidthfrom thevideoStreamMetricsreturned by theuseMediaStreamMetricshook to adopt to Amazon Chime SDK for JavaScript V3 changes (aws/amazon-chime-sdk-js#2086). - Remove
MeetingSessionConfigurationproperties fromMeetingProviderprops. - Remove
deviceLabels,eventController,logLevel,postLogConfig,logger,enableWebAudio, andactiveSpeakerPolicyfromMeetingProviderprops. - Deprecate
useBandwidthMetricshook as we already haveuseMediaStreamMetrics.
- Update the
selectedDeviceId: string | nulltoselectedDevice: Device | TransformDevice. - Update
MeetingManagerto use newEventControllerAPI. - Update
amazon-chime-sdk-jsdependency to v3. - Update the
compilerOptions.targetintsconfig.jsonfromes5toES2015 (ES6). - Update the
ChannelListUI component to take in optionallastChannelMessageandlastChannelMessageTimestampparameters. If any of them is set, it will display more detailed channel item view with last message content or timestamp. - Update
MeetingManager.join()API to have a require parametermeetingSessionConfiguration: MeetingSessionConfigurationand an optional parameteroptions?: MeetingManagerJoinOptions. WithmeetingSessionConfigurationparameter builders have direct access toMeetingSessionConfigurationwhich allows more flexibility to customize theMeetingSession. Withoptionsparameter, builders can easily config theenableWebAudio,logger,activeSpeakerPolicy,deviceLabelsandeventControllerbefore joining the meeting. - Rename
selectAudioInputDevicetostartAudioInputDevice,selectVideoInputDevicetostartVideoInputDevice, andselectAudioOutputDevicetostartAudioOutputDevice. - Rename
DevicePermissionStatus.UNSETtoDevicePermissionStatus.UNTRIGGEREDandDevicePermissionStatustoDeviceLabelTriggerStatus. - Rename
useDevicePermissionStatustouseDeviceLabelTriggerStatus. - Rename
devicePermissionsObserverstodeviceLabelTriggerStatusObserversand correspondingsubscribe,unsubscribe, andpublishfunctions. - Rename
deviceLabelTriggerChangeObserverstodeviceLabelTriggerObserversand correspondingsubscribe,unsubscribe, andpublishfunctions. - Rename the
globalproperty ofDefaultThemeinterface toglobalStyleto avoid conflict with reserved keywordglobal. - Revert "Add Observer to select input device error" (PR #493).
useAudioInputsanduseVideoInputshook no longer returnselectDeviceError.selectAudioInputDevice,selectVideoInputDevice, andselectAudioOutputDevicemethod ofMeetingManagernow throw error when failed. The device selection methods returned byuseSelectAudioInputDevice,useSelectVideoInputDevice, anduseSelectAudioOutputDevicehook are built on top of theseMeetingManagermethods, thus now they throw error when failed as well.
- Add styling guide documentation for customizing SDK and UI component CSS.
- Extend and enable style customizing capabilities on the SDK components.
- Add
MeetingSessionConfigurationas a required parameter toMeetingManager.join()method. With this change the builders have direct access toMeetingSessionConfiguration, this will allow more flexibility to customize theMeetingSession. - Add
MeetingManagerJoinOptionsas a new interface for theoptionsparameter of theMeetingManager.joinmethod. - Add
deviceLabels,eventController,logLevel,postLoggerConfig,logger,enableWebAudio, andactiveSpeakerPolicytoMeetingManagerJoinOptionsinterface.
- Update
MeetingManagerto use newEventControllerAPI. - Update
amazon-chime-sdk-jsdependency to v3 beta. - Update the
compilerOptions.targetintsconfig.jsonfromes5toES2015 (ES6). - Rename the
globalproperty ofDefaultThemeInterface toglobalStyleto avoid conflict with reserved keywordglobal. - Change
Versioning.tsto read from Git instead of manually hard-coded. This is the same behavior inamazon-chime-sdk-js. - Update the ChannelList UI component to take in optional
lastChannelMessageandlastChannelMessageTimestampparameters. If any of them is set, it will display more detailed channel item view with last message content or timestamp.
- Remove use of the deprecated
enableUnifiedPlanForChromiumBasedBrowsersconfiguration variable. - Remove all deprecated
MeetingSessionStatusCode. - Remove legacy metrics
videoDownstreamGoogFrameHeight,videoDownstreamGoogFrameWidth,videoUpstreamGoogFrameHeightandvideoUpstreamGoogFrameWidthfrom thevideoStreamMetricsreturned by theuseMediaStreamMetricshook to adopt to Amazon Chime SDK for JavaScript V3 changes (aws/amazon-chime-sdk-js#2086). - Deprecate
useBandwidthMetricshook as we already haveuseMediaStreamMetrics. - Remove
MeetingSessionConfigurationproperties fromMeetingProviderprops. - Remove
deviceLabels,eventController,logLevel,postLogConfig,logger,enableWebAudio, andactiveSpeakerPolicyfromMeetingProviderprops.
- Fix a bug in
BackgroundBlurProviderandBackgroundReplacementProviderwhere the options objects are updated and causing re-rendering and destroying previous processor. - Fix a bug in
PreviewVideowhere the PreviewVideo component did not start whenaudioVideochanged.
- Add Amazon Chime Echo Reduction feature. Allow builders to supply the response from a
CreateMeetingorCreateMeetingWithAttendeescall when adding aVoiceFocusProviderto the component tree. This enables optional features like Amazon Chime Echo Reduction to be added to devices when turning on Amazon Voice Focus. - Add
videoAvailabilityDidChangeas an audio observer inLocalVideoProviderand a new statehasReachedVideoLimitto disable the video button when the video limit is reached. - Add
keepLastFrameWhenPausedas an optional parameter to allow to keep the last frame of the video when a remote video is paused via the pauseVideoTile.
- Add
BackgroundReplacementProviderprovider to support background replacement.
- Add
activeSpeakerPolicyandvideoUplinkBandwidthPolicytoMeetingProviderprops.
- Change
additionalDevicesto a prop inAudioInputControl,VideoInputControl,AudioInputVFControl,MicSelection, andCameraSelectioncomponents to allow option to turn off that configuration. - Add
reconnectTimeoutMsas an optional parameter toMeetingManagerConfigto manage the timeout for reconnection.
- Fix the issue that Amazon Voice Focus does not get applied on new devices mid-meeting.
- Add
BackgroundBlurCheckboxcomponent to allow selecting background blur video filter for thePreviewVideocomponent.
- The
PreviewVideocomponent will listen to theselectedVideoInputTransformstate, which means it can display regularDevicevideo streams, along withVideoTransformDevicevideo streams as well. VideoInputBackgroundBlurControlcomponent is initialized with theselectedVideoInputTransformDevice.
- Revert back to publishing
audioVideoupdate after listing devices. Publishing earlier before listing devices breaksuseAudioInputs,useAudioOutputsanduseVideoInputshooks. The reason is device change observers may fail to get added toaudioVideobased on builders implementation. Hence, falling back to what existed earlier.
- Fix the issue that
AudioVideoObserverwas not removed as expected inLocalVideoProvider. - Fix
eventDidReceiveobserver removal inMeetingManager.
- Add Eslint rules to enforce code style and fix issues.
- Add logs for Amazon Voice Focus components.
- Add FAQ link on audio outputs not available in FireFox and Safari.
- Add
BackgroundBlurProviderwhich provides a background blur video transform device. - Add
VideoInputBackgroundBlurControlcomponent which includes a checkbox for enabling background blur. - Add
unsubscribeFromSelectedVideoInputTransformDevicewhich subscribes to changes to selected video devices. - Add
subscribeFromSelectedVideoInputTransformDevice. - Add
publishSelectedVideoInputTransformDevicewhich publishes aDevice | VideoTransformDevicedepending on what video device was chosen.
- Update
useSelectVideoInputDevicehook documentation and usage example. - Update package.json to include NPM 8.
- Update
meetingManager.selectVideoInputDeviceto acceptVideoTransformDeviceas a parameter.
- Revert the commit: Add Amazon Voice Focus to default device to fix the breaking issue #636
- Fix the issue that Amazon Voice Focus does not get applied on new devices mid-meeting.
- Fix the issue where we call
meetingManager.leavean additional time when we callmeetingManager.leave. - Remove the observer in
LocalVideoProviderwhen it is unmounted to fix memory leak.
- Add
activeSpeakerPolicyandvideoUplinkBandwidthPolicyinMeetingManagerConfigto allow builders to pass in custom policies. - For more flexibility, allow passing
MeetingManagerConfigtomeetingManager.joinmethod. Passing the config here would override config passed throughMeetingProviderprops. - Add more details in the
AudioInputProvideron storybook. - Add
MeetingStatus.Leftand set it when explicitly leaving the meeting. - Publish
MeetingStatus.FailedwhenaudioVideoDidStopgets triggered with one of the Failure types ofMeetingSessionStatus. - Add
Terminal FailureMeeting Status.
- Remove the audio video observers in the
audioVideoDidStop()function instead ofleave()function in theMeetingManager. - Update
VoiceFocusProvideranduseVoiceFocusdocumentation in the storybook.
- Remove setting the
MeetingStatustoMeetingStatus.Loadingwhen we callmeetingManager.leave.
- Remove the year in the copy right checker.
- Add MeetingEventProvider and useMeetingEvent hook to receive meeting events from
amazon-chime-sdk-js. Please check Amazon Chime SDK for JavaScript meeting events guide for more information on meeting events. - Add optional parameter
enableWebAudio: booleanin the config of meeting manager to decide whether to enable Web Audio in the device controller. - Extend the ability to accept
DeviceandAudioTransformDeviceas audio input in meeting manager. - Add a new provider VoiceFocusProvider to initialize noise suppression and transform a normal audio input device to an Amazon Voice Focus transform device.
- Add a new UI component AudioInputVFControl to provide Amazon Voice Focus option to users.
- Add CSS for
disabledprops onPopOverItem. - [Doc] Add documentation for
AudioInputVFControlcomponent withinMeetingControlsin the story book. - [Doc] Add documentation for
VoiceFocusProviderprovider in the story book. - [Doc] Add documentation for useVoiceFocus hook in the story book.
- Change the input type of
useSelectAudioInputDevicehook from string toDeviceandAudioTransformDevice. - Add
meetingManagerConfig: ManagerConfigobject toMeetingManagerand use it ininitializeMeetingSessionmethod. We will use values frommeetingManagerConfig: ManagerConfigdirectly instead of class level variables.
- Exclude the uuid module from the Rollup bundle so that the Chime SDK React Components Library uses the uuid module from the builder's node_modules.
- [Doc] Fix the broken hyperlinks in storybook and slightly improve the storybook.
- Add optional parameter
deviceLabels: DeviceLabels | DeviceLabelTriggerinmeetingManager.listAndSelectDevices()to let builder indicate the type of devices they want to select. - Add optional parameter
loggerandvideoDownlinkBandwidthPolicyinManagerConfigto pass in theLoggerobject andVideoDownlinkBandwidthPolicyobject that you want to be used in the meeting session. - [Doc] Add several how-to docs in storybook.
- The
listAndSelectDevices()method inMeetingManagernow selects the devices based on its parameterdeviceLabelsinstead of the existence of device label. - [Doc] Rename the "How-tos" section in storybook to "Quick Starts" as well the file name.
- Migrate Meeting Demo app to amazon-chime-sdk repo under aws-sample. The new meeting demo is here.
- [Doc] Add explanation for the limitation of the
useDevicePermissionStatushook in storybook. - [Doc] Add how-to doc for view-only mode in storybook.
- Add support to override event reporter for client event ingestion once enabled in the Amazon Chime SDK for JavaScript. For more information check the Client Event Ingestion guide in the Amazon Chime SDK for JavaScript.
- Add new function
setIsVideoEnabledinuseLocalVideohook. - [Doc] Add how-to doc for
useMediaStreamMetricshook in storybook.
- Set the
isVideoEnabledtofalsewhen stopping video preview.
- Add
sourceIdas an optional parameter in thetoggleContentSharefunction to specify which screen to share. - [Doc] Add a new page, a "How-tos" section in the story book to show use-cases with sample code.
- In
MeetingManager, add optional parameterdeviceLabels: DeviceLabels | DeviceLabelTriggerinjoin()method, and addinvokeDeviceProvider(deviceLabels: DeviceLabels)method to control the device permission request. Builder could pass adeviceLabelsof typeDeviceLabelsto select the devices from which the browser requests permission when joining the meeting. Builder could also pass adeviceLabelsofDeviceLabelTriggertype, to set their customizeddeviceLabelTriggerwhich is triggered to get the device info. Builder could callinvokeDeviceProvider(deviceLabels: DeviceLabels)to trigger the device permission prompts. For example, builder wants to implement a view-only mode and no device permission prompts are triggered during the whole process. Builder could first callmeetingManager.join(DeviceLabels.None)to join a meeting. Later they can trigger the device permission prompts by callingmeetingManager.invokeDeviceProvider(DeviceLabels.AudioAndVideo)to get the full access to devices.
- [Demo] Fix post logging in the demo meeting app.
- [Doc] Add documentation in introduction on how to use
MeetingSessionPostLoggerto post Amazon Chime SDK for JavaScript logs. - Add
useMediaStreamMetricshook to expose audio, video and bandwidth data.
- Add or remove event listener only when
el.currentreference is valid inuseFocusInanduseMouseMovehooks. - Fix bug related to
PreviewVideocomponent not releasing media stream when unmounted. - Correct
IconButtonborder in dark theme.
- Added optional props to specify icon titles in the
AudioInputControlandContentShareControlcomponents. - Added optional props to specify the dropdown text that shows when no video quality is selected, in the
QualitySelectioncomponent. - Added observer to
selectAudioInputDeviceErrorandselectVideoInputDeviceErrorto deliver the error from SDK level to client application level.
- Change
package-lockto V2 to support NPM 7. - Update
enginesfield inpackage.jsonto include Node 16. - Bump
hosted-git-infoversion.
- Add browser flag for node resolve in rollup config.
- Fix device permission doc to remove reference to meetingStatus
- Added support for optional keys to pass extra data in the
AttendeeResponse.
- Fix incorrect type definitions in date formatting.
- Fix the Jest configuration to not use the deprecated
tsConfigspelling oftsconfig. - Fix removeEventListener bug for WithTooltip.
- Reset
isAudioOnstate totruewhenLocalAudioOutputProviderunmounts.
- Added a step in release script to create a test react app, install latest version of component app as dependency and build the test app.
- Added some key properties to
ModalButtonGroup, which quiets some React warnings. - Added an optional prop
onPopOverClickto pass a callback function to thePopOverUI component. This callback will be called when thePopOverUI component is clicked. - Added
--no-fail-on-empty-changesetflag in deploy script to not fail for empty changeset. - Add
WithTooltipdocs, warning log if no container is found, and some additional flexibility.
- Bumped react and react-dom version to 17.
- Updated versions of testing-library family of packages.
- Corrected the detection of
yesterdayin said code. - Wraped actions in tests with
act, as React requests.
- [Demo] Removed call
await MeetingManager.leave()onendMeetingForAllbutton click.
- Fix getAttendee populate name even after the attendee has left the meeting
- Fixed the
MicrophoneActivitycomponent'sclassNameprop overridden by theMicVolumeIndicatorcomponentclassName. - NotificatonGroups don't accept pointer-events.
- Clean up timeouts when
useFocusInanduseMouseMovehooks are unmounted.
- Allow the
PopOverUI component to stay open for multiple clicks. - Added
WithTooltip()HOC and updatedRosterHeader,RosterCell,PopOverMenu,PopOver,NavbarItem,ControlbarItem, andChatBubbleConatinerto support tooltips. - Added documentation for components that support tooltips, exposed
WithTooltipcomponent and related interfaces/types.
- Render roster without waiting for getAtendee callback.
- Update
MeetingProviderand corresponding documentation to support re-usableMeetingManagerinstance.
- [Docs] Fix broken link in RosterAttendee story
- Fix LocalVideo not rendering on initial attempt
- Fix inconsistent snapshot for EditableChatBubble
- [Docs] Fix mdx style rendering
- Confirm video device exists when requesting user device permission
- Add JoinedFromAnotherDevice meeting status
- Allow property passthough to IconButton in NavbarItem
- Fix icon preventing clicks on
Selectcomponents - Fix Github Actions build-storybook error
- [Docs] Fix ContentShare docs
- Fix non-overridable Mic prop in
RosterAttendee - Fix incorrect fill-rule property on
ZoomInandZoomOut - [Demo] Fix closing roster from stopping active speaker detection.
- Fix serverless deploy script to work on Windows
- [Tests] Update outdated snapshots
- [Chat Demo] Fix double API calls on channel click.
- NotificatonGroups don't accept pointer-events
- Add
useSelectAudioInputDevice,useSelectAudioOutputDevicehooks - Added Echo icon
- Added poorConnection property to DeskPhone icon
- Added optional 'id' prop for ui components
- Added optional
timestampprop in ChatBubble - Added forwardRef for ChatBubbleContainer
- Added optional img to MessageAttachment
- Added a classname to PopOverMenu component for styling access
- Added forwardRef for Textarea
- Added
useDevicePermissionStatushook as an exported component from the library. - Added a "dismissible" prop to Modal to optionally allow persistent modals
- Added ZoomIn and ZoomOut icons
- Added style variants to Caution icon
- Update Jest major version
- Changed RosterHeader 'title' prop to all for elements as well as strings
- Changed senderName to optional in ChatBubble
- Moved children inside of a div in ChatBubble
- Changed
MeetingManagerto strictly enforceDevicePermissionStatustype. - Update
realtimeUnsubscribeFromVolumeIndicatorinterface to also accept a callback param. - Refactored NavBar to allow static width
- Refactored NavBarItem to use IconButton directly
- Change control bar theme opacity to 1
- [Chat Demo] Rename misspelled file names and imports
- Set amazon-chime-sdk-js in package.json dependencies
- Remove playwright tests, scripts, and dependency
- Removed content in ChatBubble
- Removed showName in ChatBubble
- Removed unused import statements from NavBar
- Fix meeting manager to handle
setSinkIderror
- Remove needless camera selection when joining meeting
- [Demo] Fix demo test speakers
- [Demo] Add Chat Demo app
- Allow arbitrary to be passed to RosterProvider
- Allow for simlucast configuration in MeetingProvider
- Updated button focus states to increase their accessibility
- [Documentation] Update README with solutions of common issues
- Fixed ModalBody component to allow custom classNames
- Fixed PopOver components to allow custom classNames
- Fixed small visual errors in chat componnets.
- Fixed broken snapshot tests for Badge component.
- Fixed slight spacing issue in ChatBubbleContainer.
- Fixed issue where checkmark in PopOverItem wouldn't change on hover/focus.
- Removed unused import in ChatBubble component.
- Fix InfiniteList to make it more flexible.
- Fix Popover Submenu being hidden.
- Added Lock and Pin icons
- Export Chat components and utilities
- Added Attachment, Dock, and Emoji picker icons
- Added HandRaise and ListHandRaise icons
- Added ConnectionProblem icon
- Added linkColors for incoming and outgoing chat in chatBubble
- Changed ChatBubbleContainer props to be more flexible.
- Changed Record icon
- Slight style changes to Modal and PopOver components.
- Changed Badge props to be more flexible.
- Changed PopOver component styling.
- Bumped chime-sdk-js version to 1.22.
- Added try/catch block to MeetingManager leave() function.
- [Demo] Changed handling audio binding asynchronously.
- Removed DateHeader component
- [Demo] Removed use of depricated methods.
- [Demo] Removed call MeetingManager.leave() on leave button click. (duplicate)
- Docs rename variable
rosterArrayfrom the attendees list toattendees - Add base styles to ChannelList
- Fixed createChatBubbleList unit test that was incorrectly named and not running
- Fixed TS error inside /InfiniteList/index.tsx.
- Add
tabIndexto BaseProps - Add
Like,Dislike,Feedbackicons - Add
isSelectedprop to NavBarItem - Add optional children to RosterHeader for custom element rendering
- Add optional
iconproperty forRadioandRadioGroupto allow for rendering an icon instead of a label - Add Document icon and MessageAttachment components.
- Add stories and tests for all ChatBubble components.
- Add class to DateHeader component.
- Add Attachment icon
- Added passthrough for a react node in the subtitle of PopOverHeader
- Add
buttonPropspassthrough forRosterCellandPopOverMenu
- Changed ChannelList props to accept and children instead of PopOverItem props.
- Added extra scroll functionality to the InfiniteList component when a new message is sent.
- Changed Message type to only include needed properties.
- Changed ChatBubble to composed components to support redact and edit.
- Changed RosterCell to support extra icons and menus when running late
- Changed ChatBubble component props for simplicity.
- Removed createChatBubbleList function.
- Removed exports and stories for unreleased chat components
- Fixed
useToggleLocalMutenot working when mounted before audioVideo initialized - Fixed missing
audioVideodeps inuseLocalAudioInputActivityPreview - Fixed
leadingIconalignment inSearchInput - Rename icon (ContentShare > ScreenShare) to fix conflicting names
- Remove unused import in Select
- Temporarily removed ChannelList component snapshot test
- [Demo] Fixed so a user leaves a meeting when they press the back button in the browser or navigate back to home
- Add
useLocalAudioInputActivityPreviewhook for direct access to microphone input value - Add chat message component
- Add
isSelectedprop toControlBarButtoncomponent - Add
UpAndDownCareticon component - Add channel list component for chat
- Add
childrenprop for ControlBarItem to allow for custom PopOver content - Added styleMessageList function
- Added Chat DateHeader component
- Added formatDate utility function
- Adjust clear behavior and minor styling of inputs
- Changed RosterCell CSS to ensure vertical alignment of icons
- [DEMO] Upgrade
webpack-dev-serverto fixnode-forgesecurity vulnerability alert - Updated
Selectcaret icon - Allow layout prop for VideoTileGrid
- Changed Message component to ChatBubble and moved InfiniteList to /Chat/MessageList
- Add PostLogger support to MeetingProvider
- Add
useBandwidthMetricshook, add bandwidth stats to demo - Add missing exported hooks to index.ts
- Add documentation for UserActivityProvider and RosterProvider
- [Demo] Default to nearest available region
- [Docs] Upgrade storybook to v6
- Update Device selector to use hooks instead of local state
- Fixed
cssprop not taking precedence over media queries - Fixed incorrect device permission status
- Fixed
useAttendeeStatusreturning incorrect video state for local user when mounting
- Add Github documentation link to README
- Add SDK log level selection ability to demo and library
- Added npm run build to the github actions publishing workflow
- Improve consistency and accuracy of docs for Hooks and Providers
- Fix
npm run build:releaserunning on windows OS - Update Storybook to 5.3
- Improve docs for SDK components
- Portrait video support, minor style fixes
- [Demo] Update demo dependencies
- Fixed reversed labels for mute/unmute control in
AudioInputControl - Fixed
PreviewVideocomponent when selecting new video input device - Fixed incorrect Storybook docs rendering
- Add NPM and CI Flow badge to README
- Move StyledSystem to peer dependencies
- Test script to run /Modal/index.test.tsx and /Button/PrimaryButton/index.test.tsx in playwright across 3 browsers
- Add Play, Pause and Sound disabled SVG icons
- Add initial roster components
- Add connected components to lib directory
- Add types required in
AudioOutputProvider - Add sound disabled to
AudioOutputControl - Add
LocalAudioOutputProvidertoMeetingView - Add
ContentShareControlProviderfor content share control methods - Add
device-utilsneeded in audio, video providers in library connected components - Add audio, video device types to types in library
- Add
useToggleLocalMuteto demo - Add
Modal,ModalButtonGroupto librarysrc/index - Add code style checking script
- Add postbuild script
- RemoteVideos, RemoteVideo components
- CSS reset, public domain version
- Set up customized MDX documentation and add docs for Badge component
- Add patch version bump for each merge
- Add docs for Button component, re-organize docs
- Add docs for all Form components
- Add mic volume indicator component
- Add serverless setup for the meeting demo
- Add publish script.
- ActiveSpeaker, ActiveTile providers and hooks
- Add docs for PopOver component
- Add github action workflow that automates publishing to npm
- Add docs for Grid component
- Add docs for the Modal component
- Add docs for Heading and ControlBar components
- Add SDK components documentation
- Add docs for Flex component
- Add Navbar component
- Add github actions workflow check for changes to workflows with 'push' or 'pull_request' trigger types
- Add docs for MeetingProvider and hooks
- Add docs or Label and Portal components
- Add docs for Navbar, Roster and Notification components
- Add notification
Severity,ActionTypeenums to index exports - Add notification
NotificationType,Actioninterfaces to index exports - Add docs for
MeetingControls - Add introduction documentation
- Add styles around
DeviceSelectionin demo - Add documentation around
DeviceSelectionanduseAudioInputActivityPreviewhook - Add docs for all icon components
- Added documentation for Modal component again, after being reverted
- Add RosterAttendee component, connected MicVolumeIndicator
- Add docs for Themes
- Add theme switcher to demo nav
- Add docs for local devices and meeting status providers
- Add docs for VideoGrid and VideoTile components
- Add
Gridunit test. - Add a story to display all icons in one place for reference
- Add versioning tag to demo app
- Add third party dependency attributes to NOTICE file
- Add component to manage visibility of controlbar
- Add third party licence text
- Add InfiniteList container component
- Added delay for more consistent animation snapshotting with playwright.
npm run testscript changed to only include /components and /utils- Update prebuild script to trigger git actions on git push event
- Changed relative imports and
MeetingViewto accomodate imports of connected components from library - Updated the
ContentShareControlwith SDK components - Changed
ScreenSharetoContentSharein library and demo - Update
AudioInputControlto use hooks and SDK components - Updated end meeting control, meeting controls container in demo app with SDK components
- Changed
ModaltoModalButtonGroupin ModalButtonGroup component - Changed
endMeetingto callleaveMeetingand avoid cleanups with both calls in demoMeetingManager npm run build:releasewill run code style check as part of the build.- Update
RosterHeaderfor filtering - Import components relatively using alias
- Update demo app README
- Update
Modalto SDK Modal component and minor change toCardcomponent in the demo - Updating demo with basic video grid
- Add enforcement of passing test coverage thresholds.
- Update codestyle script to ignore non-source files within
demo/meetingapp. - Moved components into /ui directory
- Change license from ISC to Apache-2.0
- Move provider, hooks and connected components from demo to library
- Add clear button to input component
- SIP Meeting implementation and related imports
- Update import in
useDevicePermissionStatushook - Renamed
MeetingControlsContainertoMeetingControls - Changed play, pause icons in
ContentShareControlto popover actions - Changed IconButton props to accept dynamic width and height
- Changed test script so you can properly test one file
- Changed jest exclude config to exclude playwright tests
- Changed disabled microphone icon prop to muted
- Changed modal size properties to theme object
- Update grid to support active speaker
- Updated prebuild script to ignore CHANGELOG verification for BOT submitted PR's
- Added
npm run build:publishscript - Changed `prebuild:publish' to run npm install prior to running scripts to make sure all dependencies are available
- Update roster with mobile design
- [Desktop only] Integrate navbar, roster toggle in demo
- Take callback for fetching attendees. Take in meeting/attendee info for joining meeting
- Update Home view index file name
- Provide fallback message when no devices are found
- Rename
NotificationProviderhooks - Update publish github action to deploy storybook documentation
- Remake
AudioActivityPreviewintouseLocalAudioInputActivityPreviewhook - Refactor styles from SDK Component
DeviceSelectionand move them to demo - Moved
ActivityBarfrom library to demo, since it seemed more tightly related our demo - Updated package.json to state sdk as peer dependency
- Stop local video, if enabled, when selecting "none" as video input source
- Add volume indicator, stop local video when selecting none as video source
- Add redirection to home on page refresh in demo
- Changed
NotificationGroupminor styles - Updated VideoTileGrid to take in prop for fallback view. Updated demo meeting view with meeting info
- Use route HOME constant as BASE_URL to replace runtime BASE_URL generation
- Make Microphone red when connection is poor. Adjust MicActivity %s
- Updated Portal storybook documentation to only show documentation without visual documentation
- Change className to include
ch-prefix for all UI components - Change
data-testidin some components to maintain consistency - Use MeetingManager to maintain active speakers
- Change storybook layouts so that there's a more consistent look
- Add
useMeetingStatushook - Renamed
MeetingManagersubscriptions for consistency - Improve Storybook documentaions according to the guidance of technical writing
- NOTICE includes correct copyright text
- LICENSE includes full Apache license
- Update typescript build tree to exclude test-helper and demo's folder from library build process
- Changed hard coded labels in components to take labels in prop and updated related docs
- Updated
ContentTilestatic color to refer theme color
- Removed active state button tests.
- 'styled-reset' package due to license incompatibility
- Reverted
Add docs for the Modal componentcommit to fix CSSProperties compatibility error - Removed
MeetingStatusProvider - Removed minor version bumping for each merge.
- Fixed prebuild for PR and Push
- Fix react state update errors for
MeetingStatusProvider,MeetingRosterandMeetingJoinDetails - Fix roster showing stale attendees
AudioActivityPreviewto show mic progress track on audio input device change- Fixed release execution bug
- Fixed bug in verdaccio clean up
- Fix demo application not allowing to select video / audio via popover
- Fixed some demo layout issues
- Fixed issue in demo when reselecting a device in the control bar
- Fix roster not including attendees when rejoining meeting
- Fix mobile portrait local video being too large
- Fix content share not resetting when leaving a meeting
- Fix demo form, add display names back to form components
- Fix race condition where content share would stop but grey bg would persist
- Fix end meeting
- Fix video grid, input bugs on iOS
- Fix microphone poorConnection SVG warning in devtools
- Fix search input snapshot tests for new layout