diff --git a/.changeset/shy-oranges-pick.md b/.changeset/shy-oranges-pick.md new file mode 100644 index 000000000..547ed41fc --- /dev/null +++ b/.changeset/shy-oranges-pick.md @@ -0,0 +1,5 @@ +--- +'@livekit/components-react': patch +--- + +Fix bug in useSession not exposing tracks when muted and switch empty value from null to undefined diff --git a/packages/react/src/hooks/useSession.ts b/packages/react/src/hooks/useSession.ts index d4d25cc3b..a9e62d960 100644 --- a/packages/react/src/hooks/useSession.ts +++ b/packages/react/src/hooks/useSession.ts @@ -88,8 +88,8 @@ type SessionStateConnecting = SessionStateCommon & { isConnected: false; local: { - cameraTrack: null; - microphoneTrack: null; + cameraTrack: undefined; + microphoneTrack: undefined; }; }; @@ -101,8 +101,8 @@ type SessionStateConnected = SessionStateCommon & { isConnected: true; local: { - cameraTrack: TrackReference | null; - microphoneTrack: TrackReference | null; + cameraTrack?: TrackReference; + microphoneTrack?: TrackReference; }; }; @@ -111,8 +111,8 @@ type SessionStateDisconnected = SessionStateCommon & { isConnected: false; local: { - cameraTrack: null; - microphoneTrack: null; + cameraTrack: undefined; + microphoneTrack: undefined; }; }; @@ -367,8 +367,8 @@ export function useSession( const { localParticipant } = useLocalParticipant({ room }); const cameraPublication = localParticipant.getTrackPublication(Track.Source.Camera); const localCamera = React.useMemo(() => { - if (!cameraPublication || cameraPublication.isMuted) { - return null; + if (!cameraPublication) { + return undefined; } return { source: Track.Source.Camera, @@ -378,8 +378,8 @@ export function useSession( }, [localParticipant, cameraPublication, cameraPublication?.isMuted]); const microphonePublication = localParticipant.getTrackPublication(Track.Source.Microphone); const localMicrophone = React.useMemo(() => { - if (!microphonePublication || microphonePublication.isMuted) { - return null; + if (!microphonePublication) { + return undefined; } return { source: Track.Source.Microphone, @@ -441,8 +441,8 @@ export function useSession( ...generateDerivedConnectionStateValues(ConnectionState.Connecting), local: { - cameraTrack: null, - microphoneTrack: null, + cameraTrack: undefined, + microphoneTrack: undefined, }, }; @@ -469,8 +469,8 @@ export function useSession( ...generateDerivedConnectionStateValues(ConnectionState.Disconnected), local: { - cameraTrack: null, - microphoneTrack: null, + cameraTrack: undefined, + microphoneTrack: undefined, }, }; }