@stream-io/video-client 1.38.1 → 1.38.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.38.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.38.1...@stream-io/video-client-1.38.2) (2025-12-11)
6
+
7
+ ### Bug Fixes
8
+
9
+ - revert usage of useSyncExternalStore ([#2043](https://github.com/GetStream/stream-video-js/issues/2043)) ([849e896](https://github.com/GetStream/stream-video-js/commit/849e8964ac90d5785a6d608443f80156d1081744)), closes [#1953](https://github.com/GetStream/stream-video-js/issues/1953) [#2034](https://github.com/GetStream/stream-video-js/issues/2034) [#2006](https://github.com/GetStream/stream-video-js/issues/2006) [#2008](https://github.com/GetStream/stream-video-js/issues/2008)
10
+
5
11
  ## [1.38.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.38.0...@stream-io/video-client-1.38.1) (2025-12-08)
6
12
 
7
13
  ### Bug Fixes
@@ -4880,26 +4880,6 @@ const defaultEgress = {
4880
4880
  hls: { playlist_url: '', status: '' },
4881
4881
  rtmps: [],
4882
4882
  };
4883
- /**
4884
- * Creates a stable participant filter function, ready to be used in combination
4885
- * with the `useSyncExternalStore` hook.
4886
- *
4887
- * @param predicate the predicate to use.
4888
- */
4889
- const createStableParticipantsFilter = (predicate) => {
4890
- const empty = [];
4891
- return (participants) => {
4892
- // no need to filter if there are no participants
4893
- if (!participants.length)
4894
- return empty;
4895
- // return a stable empty array if there are no remote participants
4896
- // instead of creating an empty one
4897
- const filteredParticipants = participants.filter(predicate);
4898
- if (!filteredParticipants.length)
4899
- return empty;
4900
- return filteredParticipants;
4901
- };
4902
- };
4903
4883
  /**
4904
4884
  * Holds the state of the current call.
4905
4885
  * @react You don't have to use this class directly, as we are exposing the state through Hooks.
@@ -5579,8 +5559,8 @@ class CallState {
5579
5559
  // in the original subject
5580
5560
  map((ps) => ps.sort(this.sortParticipantsBy)), shareReplay({ bufferSize: 1, refCount: true }));
5581
5561
  this.localParticipant$ = this.participants$.pipe(map((participants) => participants.find((p) => p.isLocalParticipant)), shareReplay({ bufferSize: 1, refCount: true }));
5582
- this.remoteParticipants$ = this.participants$.pipe(map(createStableParticipantsFilter((p) => !p.isLocalParticipant)), shareReplay({ bufferSize: 1, refCount: true }));
5583
- this.pinnedParticipants$ = this.participants$.pipe(map(createStableParticipantsFilter((p) => !!p.pin)), shareReplay({ bufferSize: 1, refCount: true }));
5562
+ this.remoteParticipants$ = this.participants$.pipe(map((participants) => participants.filter((p) => !p.isLocalParticipant)), shareReplay({ bufferSize: 1, refCount: true }));
5563
+ this.pinnedParticipants$ = this.participants$.pipe(map((participants) => participants.filter((p) => !!p.pin)), shareReplay({ bufferSize: 1, refCount: true }));
5584
5564
  this.dominantSpeaker$ = this.participants$.pipe(map((participants) => participants.find((p) => p.isDominantSpeaker)), shareReplay({ bufferSize: 1, refCount: true }));
5585
5565
  this.hasOngoingScreenShare$ = this.participants$.pipe(map((participants) => participants.some((p) => hasScreenShare(p))), distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));
5586
5566
  // dates
@@ -6013,7 +5993,7 @@ const getSdkVersion = (sdk) => {
6013
5993
  return sdk ? `${sdk.major}.${sdk.minor}.${sdk.patch}` : '0.0.0-development';
6014
5994
  };
6015
5995
 
6016
- const version = "1.38.1";
5996
+ const version = "1.38.2";
6017
5997
  const [major, minor, patch] = version.split('.');
6018
5998
  let sdkInfo = {
6019
5999
  type: SdkType.PLAIN_JAVASCRIPT,
@@ -15012,7 +14992,7 @@ class StreamClient {
15012
14992
  this.getUserAgent = () => {
15013
14993
  if (!this.cachedUserAgent) {
15014
14994
  const { clientAppIdentifier = {} } = this.options;
15015
- const { sdkName = 'js', sdkVersion = "1.38.1", ...extras } = clientAppIdentifier;
14995
+ const { sdkName = 'js', sdkVersion = "1.38.2", ...extras } = clientAppIdentifier;
15016
14996
  this.cachedUserAgent = [
15017
14997
  `stream-video-${sdkName}-v${sdkVersion}`,
15018
14998
  ...Object.entries(extras).map(([key, value]) => `${key}=${value}`),