@wireai/activation 0.13.2 → 0.13.3
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/AGENTS.md +4 -3
- package/CHANGELOG.md +228 -4
- package/README.md +16 -2
- package/dist/analytics/index.d.mts +4 -4
- package/dist/analytics/index.d.ts +4 -4
- package/dist/analytics/index.js +104 -470
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +102 -468
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/coachmarks/index.d.mts +14 -1
- package/dist/coachmarks/index.d.ts +14 -1
- package/dist/coachmarks/index.js +58 -14
- package/dist/coachmarks/index.js.map +1 -1
- package/dist/coachmarks/index.mjs +58 -14
- package/dist/coachmarks/index.mjs.map +1 -1
- package/dist/{currentSession-ClkLjcJ0.d.mts → currentSession-BoWtr3Jp.d.mts} +2 -2
- package/dist/{currentSession-DOVZEWJl.d.ts → currentSession-CCOMlaQ2.d.ts} +2 -2
- package/dist/{decision-Bl_M2y3r.d.mts → decision-Cjw0jbEj.d.mts} +1 -1
- package/dist/{decision-Cau5KmP6.d.ts → decision-GfpXAsk_.d.ts} +1 -1
- package/dist/index.d.mts +25 -2
- package/dist/index.d.ts +25 -2
- package/dist/index.js +220 -573
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +217 -570
- package/dist/index.mjs.map +1 -1
- package/dist/questionnaire/index.d.mts +42 -10
- package/dist/questionnaire/index.d.ts +42 -10
- package/dist/questionnaire/index.js +45 -13
- package/dist/questionnaire/index.js.map +1 -1
- package/dist/questionnaire/index.mjs +45 -13
- package/dist/questionnaire/index.mjs.map +1 -1
- package/dist/reviews/index.d.mts +4 -4
- package/dist/reviews/index.d.ts +4 -4
- package/dist/reviews/index.js +27 -7
- package/dist/reviews/index.js.map +1 -1
- package/dist/reviews/index.mjs +27 -7
- package/dist/reviews/index.mjs.map +1 -1
- package/dist/showcase/index.js +7 -2
- package/dist/showcase/index.js.map +1 -1
- package/dist/showcase/index.mjs +7 -2
- package/dist/showcase/index.mjs.map +1 -1
- package/dist/{transport-DsRe4epC.d.ts → transport-CefdERPs.d.mts} +44 -5
- package/dist/{transport-CF_eHwzC.d.mts → transport-DFuPyCoJ.d.ts} +44 -5
- package/dist/{types-Buj9Lw9t.d.ts → types-UVYt9BJe.d.ts} +41 -1
- package/dist/{types-CNUqMK0D.d.mts → types-l2tfg23P.d.mts} +41 -1
- package/package.json +4 -1
- package/src/OnboardingFlow.tsx +44 -15
- package/src/WireOnboarding.tsx +7 -6
- package/src/activation/wireActivation.ts +3 -3
- package/src/analytics/analyticsFacade.ts +2 -2
- package/src/analytics/eventQueue.ts +83 -20
- package/src/cards/CardGridSelectCard.tsx +1 -1
- package/src/cards/ChipSelectCard.tsx +2 -2
- package/src/cards/SelectionCard.tsx +1 -1
- package/src/coachmarks/runtime.ts +62 -2
- package/src/coachmarks/useCoachmarkTour.ts +62 -14
- package/src/context/deviceId.ts +4 -4
- package/src/features/WireFeaturesProvider.tsx +4 -1
- package/src/identity/userIdentity.ts +1 -1
- package/src/questionnaire/QuestionnaireGate.tsx +90 -10
- package/src/questionnaire/index.ts +9 -1
- package/src/questionnaire/transport.ts +46 -11
- package/src/reviews/ReviewGate.tsx +61 -6
- package/src/reviews/index.ts +10 -1
- package/src/reviews/transport.ts +58 -12
- package/src/session-analytics/useLifecycleEvents.ts +1 -1
- package/src/theme/ThemeContext.tsx +42 -1
- package/src/types.ts +1 -1
- package/src/utils/submitResult.ts +39 -0
|
@@ -54,7 +54,12 @@ var defaultOnboardingTheme = {
|
|
|
54
54
|
var mergeTheme = (override) => {
|
|
55
55
|
return defaultOnboardingTheme;
|
|
56
56
|
};
|
|
57
|
-
var
|
|
57
|
+
var THEME_CONTEXT_SLOT = /* @__PURE__ */ Symbol.for("@wireai/activation:themeContext");
|
|
58
|
+
var themeGlobal = globalThis;
|
|
59
|
+
if (!themeGlobal[THEME_CONTEXT_SLOT]) {
|
|
60
|
+
themeGlobal[THEME_CONTEXT_SLOT] = createContext(null);
|
|
61
|
+
}
|
|
62
|
+
var OnboardingThemeContext = themeGlobal[THEME_CONTEXT_SLOT];
|
|
58
63
|
var useOnboardingTheme = () => {
|
|
59
64
|
const ctx = useContext(OnboardingThemeContext);
|
|
60
65
|
return ctx != null ? ctx : mergeTheme();
|
|
@@ -833,20 +838,22 @@ var toAnswers = (drafts) => {
|
|
|
833
838
|
};
|
|
834
839
|
|
|
835
840
|
// src/questionnaire/transport.ts
|
|
836
|
-
var submitQuestionnaireResponse = (target, id, submission) => {
|
|
837
|
-
if (!(target == null ? void 0 : target.serverUrl) || !id) return;
|
|
841
|
+
var submitQuestionnaireResponse = async (target, id, submission) => {
|
|
842
|
+
if (!(target == null ? void 0 : target.serverUrl) || !id) return "unsent";
|
|
838
843
|
try {
|
|
839
844
|
const base = target.serverUrl.replace(/\/$/, "");
|
|
840
845
|
const url = `${base}/v1/questionnaires/${encodeURIComponent(id)}/responses`;
|
|
841
846
|
const headers = { "Content-Type": "application/json" };
|
|
842
847
|
if (target.apiKey) headers.Authorization = `Bearer ${target.apiKey}`;
|
|
843
|
-
|
|
848
|
+
const res = await fetch(url, {
|
|
844
849
|
method: "POST",
|
|
845
850
|
headers,
|
|
846
851
|
body: JSON.stringify(submission)
|
|
847
|
-
}).catch(() => {
|
|
848
852
|
});
|
|
853
|
+
if (!res) return "unsent";
|
|
854
|
+
return res.ok ? "accepted" : "rejected";
|
|
849
855
|
} catch {
|
|
856
|
+
return "unsent";
|
|
850
857
|
}
|
|
851
858
|
};
|
|
852
859
|
var fetchQuestionnaireDecision = async (target, options = {}) => {
|
|
@@ -939,14 +946,39 @@ var _QuestionnaireGate = ({
|
|
|
939
946
|
}
|
|
940
947
|
onResolved == null ? void 0 : onResolved();
|
|
941
948
|
}, [id, onResolved]);
|
|
949
|
+
const postedRef = useRef(false);
|
|
950
|
+
const unackedRef = useRef(null);
|
|
951
|
+
const postOnce = useCallback(
|
|
952
|
+
(body) => {
|
|
953
|
+
if (postedRef.current) return;
|
|
954
|
+
postedRef.current = true;
|
|
955
|
+
unackedRef.current = body;
|
|
956
|
+
void submitQuestionnaireResponse(target, id, body).then((result) => {
|
|
957
|
+
if (result === "unsent") {
|
|
958
|
+
postedRef.current = false;
|
|
959
|
+
return;
|
|
960
|
+
}
|
|
961
|
+
unackedRef.current = null;
|
|
962
|
+
});
|
|
963
|
+
},
|
|
964
|
+
[target, id]
|
|
965
|
+
);
|
|
966
|
+
const recoverRef = useRef(() => {
|
|
967
|
+
});
|
|
968
|
+
recoverRef.current = () => {
|
|
969
|
+
const undelivered = unackedRef.current;
|
|
970
|
+
if (undelivered && !postedRef.current) postOnce(undelivered);
|
|
971
|
+
};
|
|
972
|
+
React8.useEffect(() => () => recoverRef.current(), []);
|
|
942
973
|
const finish = useCallback(
|
|
943
974
|
(drafts) => {
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
975
|
+
postOnce(
|
|
976
|
+
buildQuestionnaireSubmission({
|
|
977
|
+
answers: toAnswers(drafts),
|
|
978
|
+
sessionId,
|
|
979
|
+
meta
|
|
980
|
+
})
|
|
981
|
+
);
|
|
950
982
|
submittedRef.current = true;
|
|
951
983
|
onEvent == null ? void 0 : onEvent({ name: "questionnaire_submitted", id });
|
|
952
984
|
playHaptic("success");
|
|
@@ -957,7 +989,7 @@ var _QuestionnaireGate = ({
|
|
|
957
989
|
(_a2 = modalRef.current) == null ? void 0 : _a2.close();
|
|
958
990
|
}, 1500);
|
|
959
991
|
},
|
|
960
|
-
[sessionId, meta,
|
|
992
|
+
[sessionId, meta, postOnce, id, onEvent]
|
|
961
993
|
);
|
|
962
994
|
const applyTransition = useCallback(
|
|
963
995
|
(next) => {
|
|
@@ -1256,7 +1288,7 @@ var useWireFeatures = (config) => {
|
|
|
1256
1288
|
return flags;
|
|
1257
1289
|
};
|
|
1258
1290
|
var CONTEXT_SYMBOL = /* @__PURE__ */ Symbol.for("wireai.features.context");
|
|
1259
|
-
var globalObj =
|
|
1291
|
+
var globalObj = globalThis;
|
|
1260
1292
|
if (!globalObj[CONTEXT_SYMBOL]) {
|
|
1261
1293
|
globalObj[CONTEXT_SYMBOL] = createContext(null);
|
|
1262
1294
|
}
|