Releases: daily-co/daily-react
Releases · daily-co/daily-react
0.10.0
Features
- New hook
useSendSettings: use this hook to interact to react to and change send settings. SeeupdateSendSettings()for an overview of send settings. - New hook
useMeetingSessionState: use this hook to read and change meeting session data. Check our blog post on custom session data to learn when this API is suitable for you. - New hook
useParticipantCounts: this is a convenience hook aroundparticipantCounts().
Improvements
- New properties returned from
useDevices:currentCam,currentMicandcurrentSpeaker. These are shortcuts to the accompanyingselecteddevices incameras,microphonesand `speakers. usePermissionsnow accepts an optionalsessionId. This allows to conveniently read a remote participant'spermissions. When nosessionIdis passed, this hook returns the local participant's permissions.
0.9.0
Features
- New hook
useMeetingState(): this hook is a direct wrapper aroundmeetingState()and returns a stateful representation of the current meeting state. More info in our docs - New hook
usePermissions(): this hook is a convenience wrapper around the local participant'spermissionsobject. Use this hook to determine the presence status and ability to send media. More info in our docs
Improvements
useLocalSessionId()does not returnnullanymore, which improves compatibility with other hooks likeuseParticipantProperty()oruseMediaTrack(). In case no local participant exists, this hook will return an empty string''.
Bugfixes
- Fixed an issue in combination with daily-js 0.45.0, where an app using
<DailyProvider>without passing acallObjectwould throw an error in development mode with React 18 and strict mode enabled.
Maintenance
- This release requires daily-js 0.45.0 or higher. We've updated the peerDependency accordingly.
0.8.0
Improvements
- The
'screen'filter foruseParticipantIdsnow filters participants with active screen shares, based on theirtracksproperty. The booleanscreenproperty, as returned by.participants()is deprecated. - Attempts to
.play()video tags rendered fromDailyVideocomponents have been improved. DailyAudioandDailyAudioTracknow supportrmpAudiotracks.DailyVideonow supportsrmpVideotracks.
Bugfixes
- Fixed an issue that could lead to
DailyAudionot re-rendering audio tags correctly, which would result in missing sound from remote participants.
0.7.3
Improvements
- Updated wrapper methods to daily-js exposed from hooks to infer function types from daily-js to avoid type mismatches between daily-react and daily-js. This impacts:
useInputSettings().updateInputSettingsuseLiveStreaming().startLiveStreaminguseLiveStreaming().stopLiveStreaminguseLiveStreaming().updateLiveStreaminguseReceiveSettings().updateReceiveSettingsuseRecording().startRecordinguseRecording().stopRecordinguseRecording().updateRecordinguseScreenShare().startScreenShareuseScreenShare().stopScreenShareuseTranscription().startTranscriptionuseTranscription().stopTranscription
- Added checks for destroyed call objects to prevent calling daily-js methods on already destroyed instances
- Dropped Node.js 12 from our CI/CD checks. This means that using daily-react in Node.js 12 setups isn't tested anymore. Node.js 12 stopped receiving security updates in April 2022.
Bugfixes
- Fixed potentially stale state information for waiting participants returned from
useWaitingParticipants() - Fixed an issue where
useReceiveSettings()could return outdated information about received layers
0.7.2
Improvements
DailyVideo: Improvedloadedmetadataandresizelisteners (see #11)useRecording: Fixed a bug where the state returned fromuseRecordingcould become stale, when events related to recording were emitted fromdaily-jswhile no instance ofuseRecordingwas rendered (fixes #13)useLiveStreaming: Fixed a bug where the state returned fromuseLiveStreamingcould become stale, when events related to live streaming were emitted fromdaily-jswhile no instance ofuseLiveStreamingwas rendered
Thanks to contributions from @rileyjshaw!
0.7.1
0.7.0
Features
- New hook
useAudioLevel: this hook allows to monitor the volume of a givenMediaStreamTrack. Read more in our docs
Improvements
DailyAudioTrackandDailyVideonow both accept arefand additional HTML attributes to be passed to the underlying DOM elementDailyAudionow accepts arefas an imperative handle. The assignedrefhas a couple of getter methods to query for a subset of<audio>elements. Check our docs for detailed information.useDevicesnow returns a new initial state"idle"forcamStateandmicState. Before this release it defaulted to"pending", which is now only true while a request for device access is actually pending.- Other improvements to speaker slot assignment logic in
DailyAudio
Bugfixes
useLocalSessionIdnow correctly returns the local participant'ssession_idafterleave()-ing a call andpreAuth()-ing again
0.6.2
Improvements
- Prefixed recoil atom keys with
daily-react-to avoid naming conflicts when integrating Daily React with an application based on Recoil itself - Added
filteroption touseActiveSpeakerIdto allow limiting active speakers to subgroups
Bugfixes
- Fixed an issue where
DailyDevicescould throw an error due to a non-existentlocalparticipant object - Fixed
DailyAudioto only consider subscribed audio tracks
Full Changelog: daily-react-2022-11-25-0.6.1...daily-react-2022-12-05-0.6.2
0.6.1
Improvements
DailyProvidernow acceptsrecoilRootPropsto control the behavior of its internalRecoilRoot. You can passrecoilRootProps={{ override: false }}to letdaily-reactstore its state in your application's ownRecoilRoot- Hooks with event callbacks no longer wrap calling the passed callback in
setTimeout(() => onX.?(ev), 0)to reduce fragmentation of stack traces.
Thanks to contributions from @zukilover!
0.6.0
Moved package and repository
We're excited to announce that we've moved @daily-co/daily-react-hooks to @daily-co/daily-react!
Please note that @daily-co/daily-react-hooks is now deprecated. To get the latest updates, please upgrade to @daily-co/daily-react. To help you migrate swiftly we created a small codemod. It removes the old package, installs the new one and updates all import statements in your codebase.
Features
- 🆕 🎥
DailyVideocomponent: no more battles when assigningMediaStreamTracks to<video>elements! All it takes is asessionIdandDailyVideowill take care of the rest. Learn more aboutDailyVideoin our docs! - 🆕 🔉
DailyAudiocomponent: having a hard time managing audio tracks? Sweat no more:DailyAudiois a plug-and-play component to keep audio rolling in your Daily React app! Learn more aboutDailyAudioin our docs! - 🆕 🎻
DailyAudioTrackcomponent: in cases whereDailyAudiodoesn't fit as nicely and developers need more fine-grained control on which audio tracks should play in the browser,DailyAudioTrackallows to setup a custom audio composition. Read up aboutDailyAudioTrackin, yup, you guessed right, our docs! - 🆕 🎤
useActiveSpeakerIdhook: use this hook, when you're only interested in the active speaker'ssession_id.useActiveSpeakerIdis a drop-in replacement foruseActiveParticipant()?.session_idto optimize render performance. Check our docs for more info!
Improvements
useThrottledDailyEventnow allows multiple daily-js events to be registered in a single throttling queue. Events handled in the same queue are guaranteed to be handled in the same order as they were emitted. Check the docs for more info!useDevicesreturns new error states as returned bycamera-errorevents. Head over to our docs to learn more!
This release requires @daily-co/daily-js@0.33.0.