Skip to content

Releases: daily-co/daily-react

0.11.5

14 Aug 11:37
Compare
Choose a tag to compare

Bugfixes

  • Fixed an issue where comparing Maps and Sets internally inside the usePermissions would lead to an infinite recursive loop.

0.11.4

09 Aug 08:38
Compare
Choose a tag to compare

Bugfixes

  • useParticipantProperty: fixed an issue where useParticipantProperty returned undefined on first render, despite the correct value being available in store already.

0.11.3

04 Aug 12:14
Compare
Choose a tag to compare

Bugfixes

  • useScreenShare: Fixes an issue where optimized render cycles in useParticipantIds (see 0.11.0) could lead to stale screens returned from useScreenShare

0.11.2

03 Aug 15:28
Compare
Choose a tag to compare

Bugfixes

  • useParticipantProperty: fixed an issue introduced in 0.11.1 where changes to tracks and permissions were not picked up correctly by useParticipantProperty.

0.11.1

03 Aug 08:03
Compare
Choose a tag to compare

Improvements

  • useParticipantProperty: improved the hook's render performance by only re-rendering when the returned value(s) actually changed.

0.11.0

28 Jul 07:20
Compare
Choose a tag to compare

Features

Improvements

  • Improved rendering performance of useParticipantIds and useParticipantProperty: 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 of useParticipantIds 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 the useRecoilTransactionObserver_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 per useParticipantIds to initialize the state.

0.10.0

19 Jun 13:56
Compare
Choose a tag to compare

Features

Improvements

  • New properties returned from useDevices: currentCam, currentMic and currentSpeaker. These are shortcuts to the accompanying selected devices in cameras, microphones and `speakers.
  • usePermissions now accepts an optional sessionId. This allows to conveniently read a remote participant's permissions. When no sessionId is passed, this hook returns the local participant's permissions.

0.9.0

25 May 13:35
Compare
Choose a tag to compare

Features

  • New hook useMeetingState(): this hook is a direct wrapper around meetingState() 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's permissions object. Use this hook to determine the presence status and ability to send media. More info in our docs

Improvements

Bugfixes

  • Fixed an issue in combination with daily-js 0.45.0, where an app using <DailyProvider> without passing a callObject 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

09 May 13:11
Compare
Choose a tag to compare

Improvements

  • The 'screen' filter for useParticipantIds now filters participants with active screen shares, based on their tracks property. The boolean screen property, as returned by .participants() is deprecated.
  • Attempts to .play() video tags rendered from DailyVideo components have been improved.
  • DailyAudio and DailyAudioTrack now support rmpAudio tracks.
  • DailyVideo now supports rmpVideo 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

30 Mar 07:19
Compare
Choose a tag to compare

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