Releases: daily-co/daily-react
Releases · daily-co/daily-react
0.21.3
0.21.2
Improvements
- Improved Jotai state atoms for reduced CPU and memory usage.
Maintenance
- Updated dependencies in minimal example.
0.21.1
0.21.0
Breaking changes
- Removed
recoilRootProps
fromDailyProvider
as we've internally migrated from Recoil to Jotai. - Added
jotaiStore
prop toDailyProvider
, which, when passed with a Jotai store, is equivalent to passingrecoilRootProps={{ override: false }}
in previous versions.
Maintenance
- Replaced
faker
with@faker-js/faker
Thanks to @TimHeckel for supporting the migration to Jotai!
0.20.0
Features
useAudioLevelObserver()
: new hook to handle participant mic volume levels. This hook is based on audio level observers in daily-js.
Improvements
useParticipantIds()
: the fix to avoid potential stale state introduced in 0.19.1 was reverted, due to negative performance impact. Instead stale state is now avoided by prioritizing internal event handlers in Daily React over application level event handlers.
Deprecations
useAudioLevel()
is now deprecated. UseuseAudioLevelObserver()
instead.
0.19.1
Bugfixes
useParticipantIds()
: when using a customfilter
orsort
it was possible thatuseParticipantIds()
would return stale state until for any affected participant aparticipant-updated
event was emitted.useActiveSpeakerId()
: the internally stored id of the last active speaker is now correctly reset when receiving aleft-meeting
event.useParticipantProperty()
: when embedding a Daily React app inside Angular's NgZone, attempting to resolve aMediaStreamTrack
property could result in a recursive loop, due to NgZone's monkey-patching behavior on certain browser objects. (Thanks @stewartmcgown!)
0.19.0
Changes
⚠️ Breaking change:useCallFrame
: Instead of accepting the resolved value for a givenparentEl
, it will now accept a React RefparentElRef
. This generally improves the DX when working with conditionally rendered call frame wrappers.
// Before
const ref = useRef(null);
const callFrame = useCallFrame({
parentEl: ref.current,
});
// Now
const ref = useRef(null);
const callFrame = useCallFrame({
parentElRef: ref,
});
- Removed unnecessary
playsInline
attributes from rendered<audio>
elements - Updated devDependencies
0.18.0
Maintenance
- Adds
onTranscriptionMessage
touseTranscription()
and deprecatesonTranscriptionAppData
This adds a behavioral change in how transcription messages are handled, when interim results were configured. In order to distinguish interim from final results, transcription needs to be configured with includeRawResponse: true
. See startTranscription()
for details.
0.17.3
Bugfixes
- Fixed an issue where
useTranscription()
returnedisTranscribing: true
after a meeting ended - Fixed an issue where
useActiveSpeakerId()
unnecessarily initialized its state withnull
, when an active speaker id was already present - Fixed an issue where
useAudioLevel()
broke echo cancellation in Firefox, due to unintentionally playing out an audio track when it was meant to be analyzed only
0.17.2
Improvements
- When unmounting and remounting
DailyProvider
,useCallObject
oruseCallFrame()
, it will now correctly rewire to a previously created call instance, if one is available, and, when required, destroy it and create a new one. This further prevents duplicate call instance errors. useCallFrame()
better handles a React DOM ref passed asparentEl
and will only create the call frame, when the referenced DOM element is ready. Make sure to initialize a DOM ref withuseRef(null)
.