Skip to content

Releases: daily-co/daily-react

0.10.0

19 Jun 13:56

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

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

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

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

0.7.2

08 Feb 08:37

Choose a tag to compare

Improvements

  • DailyVideo: Improved loadedmetadata and resize listeners (see #11)
  • useRecording: Fixed a bug where the state returned from useRecording could become stale, when events related to recording were emitted from daily-js while no instance of useRecording was rendered (fixes #13)
  • useLiveStreaming: Fixed a bug where the state returned from useLiveStreaming could become stale, when events related to live streaming were emitted from daily-js while no instance of useLiveStreaming was rendered

Thanks to contributions from @rileyjshaw!

0.7.1

13 Jan 11:14

Choose a tag to compare

Bugfixes

  • Fixed an issue (#12) where camState returned from useDevices() switched back to "idle" when muting the camera
  • Fixed an issue where useLocalSessionId returned a stale session_id when the local participant was updated immediately before calling leave()

0.7.0

12 Jan 08:18

Choose a tag to compare

Features

  • New hook useAudioLevel: this hook allows to monitor the volume of a given MediaStreamTrack. Read more in our docs

Improvements

  • DailyAudioTrack and DailyVideo now both accept a ref and additional HTML attributes to be passed to the underlying DOM element
  • DailyAudio now accepts a ref as an imperative handle. The assigned ref has a couple of getter methods to query for a subset of <audio> elements. Check our docs for detailed information.
  • useDevices now returns a new initial state "idle" for camState and micState. 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

  • useLocalSessionId now correctly returns the local participant's session_id after leave()-ing a call and preAuth()-ing again

0.6.2

05 Dec 10:59

Choose a tag to compare

Improvements

  • Prefixed recoil atom keys with daily-react- to avoid naming conflicts when integrating Daily React with an application based on Recoil itself
  • Added filter option to useActiveSpeakerId to allow limiting active speakers to subgroups

Bugfixes

  • Fixed an issue where DailyDevices could throw an error due to a non-existent local participant object
  • Fixed DailyAudio to 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

25 Nov 08:29

Choose a tag to compare

Improvements

  • DailyProvider now accepts recoilRootProps to control the behavior of its internal RecoilRoot. You can pass recoilRootProps={{ override: false }} to let daily-react store its state in your application's own RecoilRoot
  • 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

15 Nov 14:43

Choose a tag to compare

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

  • 🆕 🎥 DailyVideo component: no more battles when assigning MediaStreamTracks to <video> elements! All it takes is a sessionId and DailyVideo will take care of the rest. Learn more about DailyVideo in our docs!
  • 🆕 🔉 DailyAudio component: having a hard time managing audio tracks? Sweat no more: DailyAudio is a plug-and-play component to keep audio rolling in your Daily React app! Learn more about DailyAudio in our docs!
  • 🆕 🎻 DailyAudioTrack component: in cases where DailyAudio doesn't fit as nicely and developers need more fine-grained control on which audio tracks should play in the browser, DailyAudioTrack allows to setup a custom audio composition. Read up about DailyAudioTrack in, yup, you guessed right, our docs!
  • 🆕 🎤 useActiveSpeakerId hook: use this hook, when you're only interested in the active speaker's session_id. useActiveSpeakerId is a drop-in replacement for useActiveParticipant()?.session_id to optimize render performance. Check our docs for more info!

Improvements

  • useThrottledDailyEvent now 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!
  • useDevices returns new error states as returned by camera-error events. Head over to our docs to learn more!

This release requires @daily-co/daily-js@0.33.0.