diff --git a/packages/screeb-sdk-angular/docs/classes/Screeb.md b/packages/screeb-sdk-angular/docs/classes/Screeb.md index 047005e..45a29b7 100644 --- a/packages/screeb-sdk-angular/docs/classes/Screeb.md +++ b/packages/screeb-sdk-angular/docs/classes/Screeb.md @@ -29,6 +29,8 @@ - [load](Screeb.md#load) - [messageClose](Screeb.md#messageclose) - [messageStart](Screeb.md#messagestart) +- [sessionReplayStart](Screeb.md#sessionreplaystart) +- [sessionReplayStop](Screeb.md#sessionreplaystop) - [surveyClose](Screeb.md#surveyclose) - [surveyStart](Screeb.md#surveystart) - [targetingCheck](Screeb.md#targetingcheck) @@ -482,6 +484,42 @@ this.screeb.messageStart( ___ +### sessionReplayStart + +▸ **sessionReplayStart**(): `Promise`\<`unknown`\> + +Starts a session replay. + +#### Returns + +`Promise`\<`unknown`\> + +**`Example`** + +```ts +this.screeb.sessionReplayStart(); +``` + +___ + +### sessionReplayStop + +▸ **sessionReplayStop**(): `Promise`\<`unknown`\> + +Interrupts a running session replay. + +#### Returns + +`Promise`\<`unknown`\> + +**`Example`** + +```ts +this.screeb.sessionReplayStop(); +``` + +___ + ### surveyClose ▸ **surveyClose**(): `Promise`\<`unknown`\> diff --git a/packages/screeb-sdk-angular/projects/screeb-sdk-angular/src/lib/screeb.ts b/packages/screeb-sdk-angular/projects/screeb-sdk-angular/src/lib/screeb.ts index e8dfa16..6eae4ac 100644 --- a/packages/screeb-sdk-angular/projects/screeb-sdk-angular/src/lib/screeb.ts +++ b/packages/screeb-sdk-angular/projects/screeb-sdk-angular/src/lib/screeb.ts @@ -392,6 +392,34 @@ export class Screeb { ); } + /** + * Interrupts a running session replay. + * + * @example + * ```ts + * this.screeb.sessionReplayStop(); + * ``` + */ + public async sessionReplayStop() { + await this.ensureScreeb("sessionReplayStop"); + + return _Screeb.sessionReplayStop(); + } + + /** + * Starts a session replay. + * + * @example + * ```ts + * this.screeb.sessionReplayStart(); + * ``` + */ + public async sessionReplayStart() { + await this.ensureScreeb("sessionReplayStart"); + + return _Screeb.sessionReplayStart(); + } + /** * Forces a targeting check. * diff --git a/packages/screeb-sdk-browser/docs/README.md b/packages/screeb-sdk-browser/docs/README.md index 5df7290..3b36a26 100644 --- a/packages/screeb-sdk-browser/docs/README.md +++ b/packages/screeb-sdk-browser/docs/README.md @@ -59,6 +59,8 @@ - [load](README.md#load) - [messageClose](README.md#messageclose) - [messageStart](README.md#messagestart) +- [sessionReplayStart](README.md#sessionreplaystart) +- [sessionReplayStop](README.md#sessionreplaystop) - [surveyClose](README.md#surveyclose) - [surveyStart](README.md#surveystart) - [targetingCheck](README.md#targetingcheck) @@ -1036,6 +1038,46 @@ Screeb.messageStart( ___ +### sessionReplayStart + +▸ **sessionReplayStart**(): `void` \| `Promise`\<`unknown`\> + +Starts a session replay. + +#### Returns + +`void` \| `Promise`\<`unknown`\> + +**`Example`** + +```ts +import * as Screeb from "@screeb/sdk-browser"; + +Screeb.sessionReplayStart(); +``` + +___ + +### sessionReplayStop + +▸ **sessionReplayStop**(): `void` \| `Promise`\<`unknown`\> + +Interrupts a running session replay. + +#### Returns + +`void` \| `Promise`\<`unknown`\> + +**`Example`** + +```ts +import * as Screeb from "@screeb/sdk-browser"; + +Screeb.sessionReplayStop(); +``` + +___ + ### surveyClose ▸ **surveyClose**(): `void` \| `Promise`\<`unknown`\> diff --git a/packages/screeb-sdk-browser/src/index.ts b/packages/screeb-sdk-browser/src/index.ts index e41db16..a413716 100644 --- a/packages/screeb-sdk-browser/src/index.ts +++ b/packages/screeb-sdk-browser/src/index.ts @@ -509,6 +509,31 @@ export const messageStart = ( hooks: hooks, }); +/** + * Interrupts a running session replay. + * + * @example + * ```ts + * import * as Screeb from "@screeb/sdk-browser"; + * + * Screeb.sessionReplayStop(); + * ``` + */ +export const sessionReplayStop = () => callScreebCommand("session-replay.stop"); + +/** + * Starts a session replay. + * + * @example + * ```ts + * import * as Screeb from "@screeb/sdk-browser"; + * + * Screeb.sessionReplayStart(); + * ``` + */ +export const sessionReplayStart = () => + callScreebCommand("session-replay.start"); + /** * Forces a targeting check. * diff --git a/packages/screeb-sdk-react/docs/README.md b/packages/screeb-sdk-react/docs/README.md index 807773e..e654dc1 100644 --- a/packages/screeb-sdk-react/docs/README.md +++ b/packages/screeb-sdk-react/docs/README.md @@ -22,6 +22,8 @@ - [ScreebContextValues](README.md#screebcontextvalues) - [ScreebProps](README.md#screebprops) - [ScreebProviderProps](README.md#screebproviderprops) +- [SessionReplayStartFunction](README.md#sessionreplaystartfunction) +- [SessionReplayStopFunction](README.md#sessionreplaystopfunction) - [SurveyCloseFunction](README.md#surveyclosefunction) - [SurveyStartFunction](README.md#surveystartfunction) - [TargetingCheckFunction](README.md#targetingcheckfunction) @@ -527,6 +529,8 @@ Screeb context API | `load` | [`LoadFunction`](README.md#loadfunction) | | `messageClose` | [`MessageCloseFunction`](README.md#messageclosefunction) | | `messageStart` | [`MessageStartFunction`](README.md#messagestartfunction) | +| `sessionReplayStart` | [`SessionReplayStartFunction`](README.md#sessionreplaystartfunction) | +| `sessionReplayStop` | [`SessionReplayStopFunction`](README.md#sessionreplaystopfunction) | | `surveyClose` | [`SurveyCloseFunction`](README.md#surveyclosefunction) | | `surveyStart` | [`SurveyStartFunction`](README.md#surveystartfunction) | | `targetingCheck` | [`TargetingCheckFunction`](README.md#targetingcheckfunction) | @@ -560,6 +564,54 @@ Properties of Screeb provider ___ +### SessionReplayStartFunction + +Ƭ **SessionReplayStartFunction**: () => `Promise`\<`unknown`\> + +Starts a session replay. + +**`Example`** + +```ts +const { sessionReplayStart } = useScreeb(); + +sessionReplayStart(); +``` + +#### Type declaration + +▸ (): `Promise`\<`unknown`\> + +##### Returns + +`Promise`\<`unknown`\> + +___ + +### SessionReplayStopFunction + +Ƭ **SessionReplayStopFunction**: () => `Promise`\<`unknown`\> + +Interrupts a running session replay. + +**`Example`** + +```ts +const { sessionReplayStop } = useScreeb(); + +sessionReplayStop(); +``` + +#### Type declaration + +▸ (): `Promise`\<`unknown`\> + +##### Returns + +`Promise`\<`unknown`\> + +___ + ### SurveyCloseFunction Ƭ **SurveyCloseFunction**: () => `Promise`\<`unknown`\> diff --git a/packages/screeb-sdk-react/src/provider.tsx b/packages/screeb-sdk-react/src/provider.tsx index 8a0b458..e5c4775 100644 --- a/packages/screeb-sdk-react/src/provider.tsx +++ b/packages/screeb-sdk-react/src/provider.tsx @@ -244,6 +244,20 @@ export const ScreebProvider: React.FC< [], ); + const sessionReplayStop = React.useCallback( + async () => + await ensureScreeb("sessionReplayStop", () => Screeb.sessionReplayStop()), + [], + ); + + const sessionReplayStart = React.useCallback( + async () => + await ensureScreeb("sessionReplayStart", () => + Screeb.sessionReplayStart(), + ), + [], + ); + const targetingCheck = React.useCallback( async () => await ensureScreeb("targetingCheck", () => Screeb.targetingCheck()), @@ -292,6 +306,8 @@ export const ScreebProvider: React.FC< surveyStart, messageClose, messageStart, + sessionReplayStop, + sessionReplayStart, targetingCheck, targetingDebug, }), @@ -311,6 +327,8 @@ export const ScreebProvider: React.FC< surveyStart, messageClose, messageStart, + sessionReplayStop, + sessionReplayStart, targetingCheck, targetingDebug, ], diff --git a/packages/screeb-sdk-react/src/types.ts b/packages/screeb-sdk-react/src/types.ts index 968cd58..e2768af 100644 --- a/packages/screeb-sdk-react/src/types.ts +++ b/packages/screeb-sdk-react/src/types.ts @@ -390,6 +390,30 @@ export type MessageStartFunction = ( language?: string, ) => Promise; +/** + * Interrupts a running session replay. + * + * @example + * ```ts + * const { sessionReplayStop } = useScreeb(); + * + * sessionReplayStop(); + * ``` + */ +export type SessionReplayStopFunction = () => Promise; + +/** + * Starts a session replay. + * + * @example + * ```ts + * const { sessionReplayStart } = useScreeb(); + * + * sessionReplayStart(); + * ``` + */ +export type SessionReplayStartFunction = () => Promise; + /** * Forces a targeting check. * @@ -445,6 +469,8 @@ export type ScreebContextValues = { surveyStart: SurveyStartFunction; messageClose: MessageCloseFunction; messageStart: MessageStartFunction; + sessionReplayStart: SessionReplayStartFunction; + sessionReplayStop: SessionReplayStopFunction; targetingCheck: TargetingCheckFunction; targetingDebug: TargetingDebugFunction; };