@multiplayer-app/session-recorder-react-native 1.2.14 → 1.2.15

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Gegham Khachatryan
3
+ Copyright (c) 2025 Multiplayer Inc.
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
6
6
  in the Software without restriction, including without limitation the rights
package/README.md CHANGED
@@ -1,3 +1,31 @@
1
+ ![Description](./docs/img/header-js.png)
2
+
3
+ <div align="center">
4
+ <a href="https://github.com/multiplayer-app/multiplayer-session-recorder-javascript">
5
+ <img src="https://img.shields.io/github/stars/multiplayer-app/multiplayer-session-recorder-javascript?style=social&label=Star&maxAge=2592000" alt="GitHub stars">
6
+ </a>
7
+ <a href="https://github.com/multiplayer-app/multiplayer-session-recorder-javascript/blob/main/LICENSE">
8
+ <img src="https://img.shields.io/github/license/multiplayer-app/multiplayer-session-recorder-javascript" alt="License">
9
+ </a>
10
+ <a href="https://multiplayer.app">
11
+ <img src="https://img.shields.io/badge/Visit-multiplayer.app-blue" alt="Visit Multiplayer">
12
+ </a>
13
+
14
+ </div>
15
+ <div>
16
+ <p align="center">
17
+ <a href="https://x.com/trymultiplayer">
18
+ <img src="https://img.shields.io/badge/Follow%20on%20X-000000?style=for-the-badge&logo=x&logoColor=white" alt="Follow on X" />
19
+ </a>
20
+ <a href="https://www.linkedin.com/company/multiplayer-app/">
21
+ <img src="https://img.shields.io/badge/Follow%20on%20LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" alt="Follow on LinkedIn" />
22
+ </a>
23
+ <a href="https://discord.com/invite/q9K3mDzfrx">
24
+ <img src="https://img.shields.io/badge/Join%20our%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join our Discord" />
25
+ </a>
26
+ </p>
27
+ </div>
28
+
1
29
  # Multiplayer Session Recorder for React Native
2
30
 
3
31
  The Multiplayer Session Recorder for React Native provides comprehensive session recording capabilities for React Native applications, including gesture tracking, navigation monitoring, screen recording, and full-stack debugging. It includes full support for both bare React Native and Expo applications.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { createStore } from "../utils/createStore.js";
3
+ import { createStore } from "./createStore.js";
4
4
  export const sessionRecorderStore = createStore({
5
5
  isInitialized: false,
6
6
  sessionType: null,
@@ -1 +1 @@
1
- {"version":3,"names":["createStore","sessionRecorderStore","isInitialized","sessionType","sessionState","isWidgetModalVisible","isOnline","error"],"sourceRoot":"../../../src","sources":["context/SessionRecorderStore.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAoB,yBAAsB;AAa9D,OAAO,MAAMC,oBAAiD,GAC5DD,WAAW,CAAuB;EAChCE,aAAa,EAAE,KAAK;EACpBC,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE,IAAI;EAClBC,oBAAoB,EAAE,KAAK;EAC3BC,QAAQ,EAAE,IAAI;EACdC,KAAK,EAAE;AACT,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createStore","sessionRecorderStore","isInitialized","sessionType","sessionState","isWidgetModalVisible","isOnline","error"],"sourceRoot":"../../../src","sources":["context/SessionRecorderStore.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAoB,kBAAe;AAavD,OAAO,MAAMC,oBAAiD,GAC5DD,WAAW,CAAuB;EAChCE,aAAa,EAAE,KAAK;EACpBC,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE,IAAI;EAClBC,oBAAoB,EAAE,KAAK;EAC3BC,QAAQ,EAAE,IAAI;EACdC,KAAK,EAAE;AACT,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createStore","initialState","state","listeners","Set","getState","setState","partial","prevState","nextState","Object","is","forEach","l","subscribe","listener","add","delete"],"sourceRoot":"../../../src","sources":["context/createStore.ts"],"mappings":";;AAQA,OAAO,SAASA,WAAWA,CAAmBC,YAAe,EAAY;EACvE,IAAIC,KAAQ,GAAGD,YAAY;EAC3B,MAAME,SAAS,GAAG,IAAIC,GAAG,CAAc,CAAC;EAExC,MAAMC,QAAQ,GAAGA,CAAA,KAAMH,KAAK;EAE5B,MAAMI,QAA8B,GAAIC,OAAO,IAAK;IAClD,MAAMC,SAAS,GAAGN,KAAK;IACvB,MAAMO,SAAS,GACb,OAAOF,OAAO,KAAK,UAAU,GACxBA,OAAO,CAAoBC,SAAS,CAAC,GACrC;MAAE,GAAGA,SAAS;MAAE,GAAGD;IAAQ,CAAO;IACzC,IAAIG,MAAM,CAACC,EAAE,CAACF,SAAS,EAAED,SAAS,CAAC,EAAE;IACrCN,KAAK,GAAGO,SAAS;IACjBN,SAAS,CAACS,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACX,KAAK,EAAEM,SAAS,CAAC,CAAC;EAC/C,CAAC;EAED,MAAMM,SAAgC,GAAIC,QAAQ,IAAK;IACrDZ,SAAS,CAACa,GAAG,CAACD,QAAQ,CAAC;IACvB,OAAO,MAAMZ,SAAS,CAACc,MAAM,CAACF,QAAQ,CAAC;EACzC,CAAC;EAED,OAAO;IAAEV,QAAQ;IAAEC,QAAQ;IAAEQ;EAAU,CAAC;AAC1C","ignoreList":[]}
@@ -2,18 +2,43 @@
2
2
 
3
3
  import { useStoreSelector } from "./useStoreSelector.js";
4
4
  import { sessionRecorderStore } from "./SessionRecorderStore.js";
5
+
6
+ /**
7
+ * Select a derived slice from the shared Session Recorder store.
8
+ * Works in both React (web) and React Native since the store shape is identical.
9
+ *
10
+ * @param selector - Function that maps the full store state to the slice you need
11
+ * @param equalityFn - Optional comparator to avoid unnecessary re-renders
12
+ * @returns The selected slice of state
13
+ */
5
14
  export function useSessionRecorderStore(selector, equalityFn) {
6
15
  return useStoreSelector(sessionRecorderStore, selector, equalityFn);
7
16
  }
17
+
18
+ /**
19
+ * Read the current session recording state (started, paused, stopped).
20
+ */
8
21
  export function useSessionRecordingState() {
9
22
  return useSessionRecorderStore(s => s.sessionState);
10
23
  }
24
+
25
+ /**
26
+ * Read the current session type (MANUAL/CONTINUOUS).
27
+ */
11
28
  export function useSessionType() {
12
29
  return useSessionRecorderStore(s => s.sessionType);
13
30
  }
31
+
32
+ /**
33
+ * Check whether the Session Recorder has been initialized.
34
+ */
14
35
  export function useIsInitialized() {
15
36
  return useSessionRecorderStore(s => s.isInitialized);
16
37
  }
38
+
39
+ /**
40
+ * Read the current widget modal visibility.
41
+ */
17
42
  export function useWidgetModalVisible() {
18
43
  return useSessionRecorderStore(s => s.isWidgetModalVisible);
19
44
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useStoreSelector","sessionRecorderStore","useSessionRecorderStore","selector","equalityFn","useSessionRecordingState","s","sessionState","useSessionType","sessionType","useIsInitialized","isInitialized","useWidgetModalVisible","isWidgetModalVisible"],"sourceRoot":"../../../src","sources":["context/useSessionRecorderStore.ts"],"mappings":";;AAEA,SAASA,gBAAgB,QAAQ,uBAAoB;AACrD,SAEEC,oBAAoB,QACf,2BAAwB;AAE/B,OAAO,SAASC,uBAAuBA,CACrCC,QAA6C,EAC7CC,UAA8C,EACtC;EACR,OAAOJ,gBAAgB,CACrBC,oBAAoB,EACpBE,QAAQ,EACRC,UACF,CAAC;AACH;AAEA,OAAO,SAASC,wBAAwBA,CAAA,EAAG;EACzC,OAAOH,uBAAuB,CAAuBI,CAAC,IAAKA,CAAC,CAACC,YAAY,CAAC;AAC5E;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,OAAON,uBAAuB,CAAsBI,CAAC,IAAKA,CAAC,CAACG,WAAW,CAAC;AAC1E;AAEA,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,OAAOR,uBAAuB,CAAWI,CAAC,IAAKA,CAAC,CAACK,aAAa,CAAC;AACjE;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,OAAOV,uBAAuB,CAAWI,CAAC,IAAKA,CAAC,CAACO,oBAAoB,CAAC;AACxE","ignoreList":[]}
1
+ {"version":3,"names":["useStoreSelector","sessionRecorderStore","useSessionRecorderStore","selector","equalityFn","useSessionRecordingState","s","sessionState","useSessionType","sessionType","useIsInitialized","isInitialized","useWidgetModalVisible","isWidgetModalVisible"],"sourceRoot":"../../../src","sources":["context/useSessionRecorderStore.ts"],"mappings":";;AAEA,SAASA,gBAAgB,QAAQ,uBAAoB;AACrD,SAEEC,oBAAoB,QACf,2BAAwB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACrCC,QAA6C,EAC7CC,UAA8C,EACtC;EACR,OAAOJ,gBAAgB,CACrBC,oBAAoB,EACpBE,QAAQ,EACRC,UACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAA,EAAG;EACzC,OAAOH,uBAAuB,CAAuBI,CAAC,IAAKA,CAAC,CAACC,YAAY,CAAC;AAC5E;;AAEA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,OAAON,uBAAuB,CAAsBI,CAAC,IAAKA,CAAC,CAACG,WAAW,CAAC;AAC1E;;AAEA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,OAAOR,uBAAuB,CAAWI,CAAC,IAAKA,CAAC,CAACK,aAAa,CAAC;AACjE;;AAEA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,OAAOV,uBAAuB,CAAWI,CAAC,IAAKA,CAAC,CAACO,oBAAoB,CAAC;AACxE","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { type Store } from '../utils/createStore';
1
+ import { type Store } from './createStore';
2
2
  import { SessionType } from '@multiplayer-app/session-recorder-common';
3
3
  import { SessionState } from '../types';
4
4
  export type SessionRecorderState = {
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderStore.d.ts","sourceRoot":"","sources":["../../../../src/context/SessionRecorderStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAQzD,CAAC"}
1
+ {"version":3,"file":"SessionRecorderStore.d.ts","sourceRoot":"","sources":["../../../../src/context/SessionRecorderStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAQzD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../../../src/context/createStore.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC;CAClD,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAuBvE"}
@@ -1,9 +1,29 @@
1
1
  import { SessionType } from '@multiplayer-app/session-recorder-common';
2
2
  import { SessionState } from '../types';
3
3
  import { type SessionRecorderState } from './SessionRecorderStore';
4
+ /**
5
+ * Select a derived slice from the shared Session Recorder store.
6
+ * Works in both React (web) and React Native since the store shape is identical.
7
+ *
8
+ * @param selector - Function that maps the full store state to the slice you need
9
+ * @param equalityFn - Optional comparator to avoid unnecessary re-renders
10
+ * @returns The selected slice of state
11
+ */
4
12
  export declare function useSessionRecorderStore<TSlice>(selector: (s: SessionRecorderState) => TSlice, equalityFn?: (a: TSlice, b: TSlice) => boolean): TSlice;
13
+ /**
14
+ * Read the current session recording state (started, paused, stopped).
15
+ */
5
16
  export declare function useSessionRecordingState(): SessionState | null;
17
+ /**
18
+ * Read the current session type (MANUAL/CONTINUOUS).
19
+ */
6
20
  export declare function useSessionType(): SessionType | null;
21
+ /**
22
+ * Check whether the Session Recorder has been initialized.
23
+ */
7
24
  export declare function useIsInitialized(): boolean;
25
+ /**
26
+ * Read the current widget modal visibility.
27
+ */
8
28
  export declare function useWidgetModalVisible(): boolean;
9
29
  //# sourceMappingURL=useSessionRecorderStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionRecorderStore.d.ts","sourceRoot":"","sources":["../../../../src/context/useSessionRecorderStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,MAAM,EAC7C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAC7C,MAAM,CAMR;AAED,wBAAgB,wBAAwB,wBAEvC;AAED,wBAAgB,cAAc,uBAE7B;AAED,wBAAgB,gBAAgB,YAE/B;AAED,wBAAgB,qBAAqB,YAEpC"}
1
+ {"version":3,"file":"useSessionRecorderStore.d.ts","sourceRoot":"","sources":["../../../../src/context/useSessionRecorderStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,MAAM,EAC7C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,GAC7C,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,wBAEvC;AAED;;GAEG;AACH,wBAAgB,cAAc,uBAE7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,YAE/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,YAEpC"}
@@ -1,4 +1,4 @@
1
- import { type Store } from '../utils/createStore';
1
+ import { type Store } from './createStore';
2
2
  import { shallowEqual } from '../utils/shallowEqual';
3
3
  export declare function useStoreSelector<TState extends object, TSlice>(store: Store<TState>, selector: (state: TState) => TSlice, equalityFn?: (a: TSlice, b: TSlice) => boolean): TSlice;
4
4
  export declare const shallow: typeof shallowEqual;
@@ -1 +1 @@
1
- {"version":3,"file":"useStoreSelector.d.ts","sourceRoot":"","sources":["../../../../src/context/useStoreSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAC5D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACnC,UAAU,GAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAmB,GACxD,MAAM,CAyBR;AAED,eAAO,MAAM,OAAO,qBAAe,CAAC"}
1
+ {"version":3,"file":"useStoreSelector.d.ts","sourceRoot":"","sources":["../../../../src/context/useStoreSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAC5D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACnC,UAAU,GAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAmB,GACxD,MAAM,CAyBR;AAED,eAAO,MAAM,OAAO,qBAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplayer-app/session-recorder-react-native",
3
- "version": "1.2.14",
3
+ "version": "1.2.15",
4
4
  "description": "Multiplayer Fullstack Session Recorder for React Native",
5
5
  "author": {
6
6
  "name": "Multiplayer Software, Inc.",
@@ -107,7 +107,7 @@
107
107
  "typescript": "^5.9.2"
108
108
  },
109
109
  "dependencies": {
110
- "@multiplayer-app/session-recorder-common": "1.2.14",
110
+ "@multiplayer-app/session-recorder-common": "1.2.15",
111
111
  "@opentelemetry/core": "2.0.1",
112
112
  "@opentelemetry/exporter-trace-otlp-http": "0.203.0",
113
113
  "@opentelemetry/instrumentation": "0.203.0",
@@ -1,4 +1,4 @@
1
- import { createStore, type Store } from '../utils/createStore';
1
+ import { createStore, type Store } from './createStore';
2
2
  import { SessionType } from '@multiplayer-app/session-recorder-common';
3
3
  import { SessionState } from '../types';
4
4
 
@@ -6,6 +6,14 @@ import {
6
6
  sessionRecorderStore,
7
7
  } from './SessionRecorderStore';
8
8
 
9
+ /**
10
+ * Select a derived slice from the shared Session Recorder store.
11
+ * Works in both React (web) and React Native since the store shape is identical.
12
+ *
13
+ * @param selector - Function that maps the full store state to the slice you need
14
+ * @param equalityFn - Optional comparator to avoid unnecessary re-renders
15
+ * @returns The selected slice of state
16
+ */
9
17
  export function useSessionRecorderStore<TSlice>(
10
18
  selector: (s: SessionRecorderState) => TSlice,
11
19
  equalityFn?: (a: TSlice, b: TSlice) => boolean
@@ -17,18 +25,30 @@ export function useSessionRecorderStore<TSlice>(
17
25
  );
18
26
  }
19
27
 
28
+ /**
29
+ * Read the current session recording state (started, paused, stopped).
30
+ */
20
31
  export function useSessionRecordingState() {
21
32
  return useSessionRecorderStore<SessionState | null>((s) => s.sessionState);
22
33
  }
23
34
 
35
+ /**
36
+ * Read the current session type (MANUAL/CONTINUOUS).
37
+ */
24
38
  export function useSessionType() {
25
39
  return useSessionRecorderStore<SessionType | null>((s) => s.sessionType);
26
40
  }
27
41
 
42
+ /**
43
+ * Check whether the Session Recorder has been initialized.
44
+ */
28
45
  export function useIsInitialized() {
29
46
  return useSessionRecorderStore<boolean>((s) => s.isInitialized);
30
47
  }
31
48
 
49
+ /**
50
+ * Read the current widget modal visibility.
51
+ */
32
52
  export function useWidgetModalVisible() {
33
53
  return useSessionRecorderStore<boolean>((s) => s.isWidgetModalVisible);
34
54
  }
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useRef, useState } from 'react';
2
- import { type Store } from '../utils/createStore';
2
+ import { type Store } from './createStore';
3
3
  import { shallowEqual } from '../utils/shallowEqual';
4
4
 
5
5
  export function useStoreSelector<TState extends object, TSlice>(
@@ -1 +0,0 @@
1
- {"version":3,"names":["createStore","initialState","state","listeners","Set","getState","setState","partial","prevState","nextState","Object","is","forEach","l","subscribe","listener","add","delete"],"sourceRoot":"../../../src","sources":["utils/createStore.ts"],"mappings":";;AAQA,OAAO,SAASA,WAAWA,CAAmBC,YAAe,EAAY;EACvE,IAAIC,KAAQ,GAAGD,YAAY;EAC3B,MAAME,SAAS,GAAG,IAAIC,GAAG,CAAc,CAAC;EAExC,MAAMC,QAAQ,GAAGA,CAAA,KAAMH,KAAK;EAE5B,MAAMI,QAA8B,GAAIC,OAAO,IAAK;IAClD,MAAMC,SAAS,GAAGN,KAAK;IACvB,MAAMO,SAAS,GACb,OAAOF,OAAO,KAAK,UAAU,GACxBA,OAAO,CAAoBC,SAAS,CAAC,GACrC;MAAE,GAAGA,SAAS;MAAE,GAAGD;IAAQ,CAAO;IACzC,IAAIG,MAAM,CAACC,EAAE,CAACF,SAAS,EAAED,SAAS,CAAC,EAAE;IACrCN,KAAK,GAAGO,SAAS;IACjBN,SAAS,CAACS,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACX,KAAK,EAAEM,SAAS,CAAC,CAAC;EAC/C,CAAC;EAED,MAAMM,SAAgC,GAAIC,QAAQ,IAAK;IACrDZ,SAAS,CAACa,GAAG,CAACD,QAAQ,CAAC;IACvB,OAAO,MAAMZ,SAAS,CAACc,MAAM,CAACF,QAAQ,CAAC;EACzC,CAAC;EAED,OAAO;IAAEV,QAAQ;IAAEC,QAAQ;IAAEQ;EAAU,CAAC;AAC1C","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/createStore.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC;CAClD,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAuBvE"}
File without changes
File without changes