@snap/camera-kit
Version:
Camera Kit Web
29 lines • 1.57 kB
JavaScript
import { forActions } from "@snap/state-management";
import { map } from "rxjs";
import { Injectable } from "@snap/ts-inject";
import { TypedCustomEvent } from "../../events/TypedCustomEvent";
import { CameraKitLegalPromptResult } from "../../generated-proto/blizzard/cameraKitEvents";
import { legalStateFactory } from "../../legal/legalState";
import { metricsEventTargetFactory } from "../metricsEventTarget";
import { metricsClientFactory } from "../../clients/metricsClient";
import { Count } from "../operational/Count";
export const reportLegalState = Injectable("reportLegalState", [legalStateFactory.token, metricsEventTargetFactory.token, metricsClientFactory.token], (legalState, metricsEventTarget, metrics) => {
legalState.events
.pipe(forActions("accept", "reject"), map(([{ data, name }]) => ({
name: "legalPrompt",
legalPromptId: data,
legalPromptResult: name === "accept"
? CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_ACCEPTED
: CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_DISMISSED,
})))
.subscribe({
next: (legalPromptEvent) => {
metricsEventTarget.dispatchEvent(new TypedCustomEvent("legalPrompt", legalPromptEvent));
metrics.setOperationalMetrics(Count.count("legal_prompt_interaction", 1, {
accepted: (legalPromptEvent.legalPromptResult ===
CameraKitLegalPromptResult.CAMERA_KIT_LEGAL_PROMPT_ACCEPTED).toString(),
}));
},
});
});
//# sourceMappingURL=reportLegalState.js.map