Skip to content

Releases: daily-co/daily-react

0.26.0

Choose a tag to compare

Features

  • useDialOut and useDialin hooks for the PSTN/SIP dial-out and dial-in APIs, which daily-react did not previously model.
    • useDialOut exposes a sessions map (keyed by sessionId) plus startDialOut, stopDialOut, sendDTMF, sipCallTransfer, and sipRefer, with onDialOut* callbacks.
    • useDialin exposes isReady, sipEndpoint, provider, a sessions map, and startDialIn, with onDialin* callbacks.
    • Both reset on left-meeting and call-instance destruction.
  • useMeetingSessionSummary hook that reactively surfaces the server-assigned session id ({ id }) — useful for correlating a call with recordings, logs, and REST API resources. Distinct from useMeetingSessionState (which returns data and topology); returns null before the session has started.
  • Custom track support in components. DailyVideo and DailyAudioTrack now accept a custom trackName (for tracks started via daily-js startCustomTrack()), and their type prop is now optional. Read custom tracks via useMediaTrack(id, trackName). A local participant's own custom track is no longer wrongly forced playable or mirrored. Note: a custom trackName is resolved as a participant-property path, so names containing . are unsupported.

Bug Fixes

  • Picture-in-picture mirror: restore the local self-view mirror transform after leaving picture-in-picture (e.g. a browser-triggered auto-PiP on tab switch), instead of permanently un-mirroring the self-view until the tile remounts.

Full Changelog: daily-react-2026-06-25-0.25.3...daily-react-2026-07-15-0.26.0

0.25.3

Choose a tag to compare

Maintenance

  • atomFamily migrated to the jotai-family package. atomFamily now imports from jotai-family instead of the deprecated jotai/utils export, keeping daily-react forward-compatible with jotai v3 (which drops it from jotai/utils). The package is externalized in the build, so it isn't bundled into dist. Resolves #47.

Full diff: daily-react-2026-05-13-0.25.2...daily-react-2026-06-25-0.25.3

0.25.2

Choose a tag to compare

Bug Fixes

  • iOS Safari audio silent after rejoin in DailyAudio / DailyAudioTrack. The audio element is now released on left-meeting by pausing playback and clearing srcObject. Previously the stale WebRTC stream stayed attached across join/leave cycles, which on iOS Safari produced a stuck-buffer noise on leave and silenced audio on subsequent joins when DailyAudio was kept mounted.

Full diff: daily-react-2026-04-30-0.25.1...daily-react-2026-05-13-0.25.2

0.25.1

Choose a tag to compare

Bug Fixes

  • Safari audio dropouts after srcObject swap in DailyAudioTrack. The audio element is now played after the srcObject swap on Safari, fixing intermittent audio dropouts when participant tracks change.

Full diff: daily-react-2026-04-21-0.25.0...daily-react-2026-04-30-0.25.1

0.25.0

Choose a tag to compare

Features

  • Multiple concurrent recording & livestreaming instancesuseRecording() and useLiveStreaming() now accept an instanceId parameter for per-instance state. Added useRecordingInstances() and useLiveStreamingInstances() convenience hooks, plus new RecordingInstanceState and LiveStreamingInstanceState exports. Stopping or erroring one instance no longer clears state for others.
  • Version reporting via aboutClient — the daily-react version is now passed through to daily-js via the new aboutClient API, so it's included in call logs regardless of who creates the call instance.
  • networkStatus on useNetwork() — added to the hook's return value.
  • Cloud-audio-only recording type — supported end-to-end via the bumped daily-js.

Maintenance

  • Upgraded size-limit / @size-limit/preset-small-lib to v11, eliminating the transitive svgo vulnerability (billion-laughs XML entity expansion). Dev-only change.
  • Minimal example: bumped daily-js, daily-react, react, and react-dom; replaced the hardcoded room URL with a DAILY_ROOM_URL env var plus a missing-config guard.
  • Minimal example: updated picomatch to patch GHSA-3v7f-55p6-f55p (method injection) and GHSA-c2c7-rcm5-vvqj (ReDoS via extglob quantifiers).

Full diff: daily-react-2025-10-29-0.24.0...daily-react-2026-04-21-0.25.0

0.24.0

Choose a tag to compare

Maintenance

  • useCallObject() and useCallFrame() will now throw an error when in strict mode and a call object cannot be created in unsupported browsers

Fixes

  • Fixed a race condition where useDevices() could unintentionally reset selected devices after joining a call

0.23.2

Choose a tag to compare

Maintenance

  • Fixed rollup configuration to match build output previously generated (0.23.0 and below)

0.23.1

Choose a tag to compare

Fixes

  • Fixed an issue which could lead to Safari not playing audio anymore after a participant left

Maintenance

  • Switched from tsdx to rollup for bundling the package

0.23.0

Choose a tag to compare

Improvements

  • Added an optional interval parameter to useAudioLevelObserver() to allow setting custom intervals for audio level events (Thanks @AlexHayton!)
  • Updated useNetwork() to return the new networkState and networkStateReasons properties. quality and threshold are now considered deprecated in favor of the new properties.
  • Added user_name and rawResponse properties to the Transcription type definition

0.22.0

Choose a tag to compare

Bugfixes

  • Fixed return value from useRoomExp when token and room exp and eject were mixed
  • Added error handling around startLocalAudioObserver inside useAudioLevelObserver

Maintenance

  • Update React peer dependency
  • Updated dependencies in minimal example
  • Added Jotai debug labels