Releases: daily-co/daily-react
Releases · daily-co/daily-react
0.11.5
Bugfixes
- Fixed an issue where comparing
Map
s andSet
s internally inside theusePermissions
would lead to an infinite recursive loop.
0.11.4
Bugfixes
useParticipantProperty
: fixed an issue whereuseParticipantProperty
returnedundefined
on first render, despite the correct value being available in store already.
0.11.3
Bugfixes
useScreenShare
: Fixes an issue where optimized render cycles inuseParticipantIds
(see 0.11.0) could lead to stalescreens
returned fromuseScreenShare
0.11.2
Bugfixes
useParticipantProperty
: fixed an issue introduced in 0.11.1 where changes to tracks and permissions were not picked up correctly byuseParticipantProperty
.
0.11.1
Improvements
useParticipantProperty
: improved the hook's render performance by only re-rendering when the returned value(s) actually changed.
0.11.0
Features
- New handling of
canAdmin
permissions inusePermissions
: the hook now returnscanAdminParticipants
,canAdminStreaming
andcanAdminTranscription
in addition to the other permission fields. Read more aboutcanAdmin
in our docs. - New hook
useCPULoad
: this hook keeps track of the CPU load state and reason (seegetCpuLoadStats()
) via'cpu-load-change'
events. - New hook
useRoomExp
: this hook determines the meeting ejection date for the local participant, based oneject_after_elapsed
,eject_at_room_exp
andexp
room/token configuration.
Improvements
- Improved rendering performance of
useParticipantIds
anduseParticipantProperty
: previously both hooks subscribed to all participant objects stored in the recoil state. This led to a lot of unexpected render cycles, e.g.useParticipantIds({ filter: 'remote' })
would re-render when the local participant toggled their cam or mic. We've restructured the way we store and subscribe to changes in participant objects to achieve only targeted re-renders. Every instance ofuseParticipantIds
now sets up its own local state of returned ids, and only updates the state when the resulting array of ids doesn't match the previously stored one. To keep the connection to the recoil state store, we're now using theuseRecoilTransactionObserver_UNSTABLE
hook which worked flawlessly in our internal tests. Please be aware that with this change we've introduced at least 1 additional render cycle peruseParticipantIds
to initialize the state.
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
,currentMic
andcurrentSpeaker
. These are shortcuts to the accompanyingselected
devices incameras
,microphones
and `speakers. usePermissions
now accepts an optionalsessionId
. This allows to conveniently read a remote participant'spermissions
. When nosessionId
is 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'spermissions
object. Use this hook to determine the presence status and ability to send media. More info in our docs
Improvements
useLocalSessionId()
does not returnnull
anymore, 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 acallObject
would 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 foruseParticipantIds
now filters participants with active screen shares, based on theirtracks
property. The booleanscreen
property, as returned by.participants()
is deprecated. - Attempts to
.play()
video tags rendered fromDailyVideo
components have been improved. DailyAudio
andDailyAudioTrack
now supportrmpAudio
tracks.DailyVideo
now supportsrmpVideo
tracks.
Bugfixes
- Fixed an issue that could lead to
DailyAudio
not 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().updateInputSettings
useLiveStreaming().startLiveStreaming
useLiveStreaming().stopLiveStreaming
useLiveStreaming().updateLiveStreaming
useReceiveSettings().updateReceiveSettings
useRecording().startRecording
useRecording().stopRecording
useRecording().updateRecording
useScreenShare().startScreenShare
useScreenShare().stopScreenShare
useTranscription().startTranscription
useTranscription().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