@ansiversa/components 0.0.136 → 0.0.137
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/package.json
CHANGED
|
@@ -17,6 +17,13 @@ const formatDateTime = (value: string | null, fallback = "Not yet") => {
|
|
|
17
17
|
|
|
18
18
|
const flashnoteBaseUrl = buildAppUrl(summary.appId);
|
|
19
19
|
const decksUrl = buildAppUrl(summary.appId, "/decks");
|
|
20
|
+
const trackOpenPayload = JSON.stringify({
|
|
21
|
+
id: summary.appId,
|
|
22
|
+
key: summary.appId,
|
|
23
|
+
name: "FlashNote",
|
|
24
|
+
description: "FlashNote",
|
|
25
|
+
url: flashnoteBaseUrl,
|
|
26
|
+
});
|
|
20
27
|
---
|
|
21
28
|
|
|
22
29
|
<section class="av-auth-stack-lg">
|
|
@@ -25,7 +32,13 @@ const decksUrl = buildAppUrl(summary.appId, "/decks");
|
|
|
25
32
|
<p class="av-text-soft">Last study: {formatDateTime(summary.lastStudyAt)}</p>
|
|
26
33
|
</div>
|
|
27
34
|
<div class="av-row-wrap">
|
|
28
|
-
<AvButton
|
|
35
|
+
<AvButton
|
|
36
|
+
href={flashnoteBaseUrl}
|
|
37
|
+
size="sm"
|
|
38
|
+
onclick={`window.dispatchEvent(new CustomEvent('ansiversa:app-opened', { detail: ${trackOpenPayload} }))`}
|
|
39
|
+
>
|
|
40
|
+
Open App ->
|
|
41
|
+
</AvButton>
|
|
29
42
|
<AvButton href={decksUrl} size="sm" variant="ghost">View decks</AvButton>
|
|
30
43
|
</div>
|
|
31
44
|
</div>
|
|
@@ -19,6 +19,13 @@ const portfolioBaseUrl = buildAppUrl(summary.appId);
|
|
|
19
19
|
const portfoliosUrl = buildAppUrl(summary.appId, "/app/portfolios");
|
|
20
20
|
const completionLabel =
|
|
21
21
|
typeof summary.completionHint === "number" ? `${summary.completionHint}%` : "—";
|
|
22
|
+
const trackOpenPayload = JSON.stringify({
|
|
23
|
+
id: summary.appId,
|
|
24
|
+
key: summary.appId,
|
|
25
|
+
name: "Portfolio Creator",
|
|
26
|
+
description: "Portfolio Creator",
|
|
27
|
+
url: portfolioBaseUrl,
|
|
28
|
+
});
|
|
22
29
|
---
|
|
23
30
|
|
|
24
31
|
<section class="av-auth-stack-lg">
|
|
@@ -27,7 +34,13 @@ const completionLabel =
|
|
|
27
34
|
<p class="av-text-soft">Last updated: {formatDateTime(summary.lastUpdatedAt)}</p>
|
|
28
35
|
</div>
|
|
29
36
|
<div class="av-row-wrap">
|
|
30
|
-
<AvButton
|
|
37
|
+
<AvButton
|
|
38
|
+
href={portfolioBaseUrl}
|
|
39
|
+
size="sm"
|
|
40
|
+
onclick={`window.dispatchEvent(new CustomEvent('ansiversa:app-opened', { detail: ${trackOpenPayload} }))`}
|
|
41
|
+
>
|
|
42
|
+
Open App ->
|
|
43
|
+
</AvButton>
|
|
31
44
|
<AvButton href={portfoliosUrl} size="sm" variant="ghost">View portfolios</AvButton>
|
|
32
45
|
</div>
|
|
33
46
|
</div>
|
|
@@ -20,6 +20,13 @@ const attemptsDelta = typeof attemptsPrevious7d === "number"
|
|
|
20
20
|
? summary.kpis.attemptsLast7d - attemptsPrevious7d
|
|
21
21
|
: null;
|
|
22
22
|
const quizBaseUrl = buildAppUrl(summary.appId);
|
|
23
|
+
const trackOpenPayload = JSON.stringify({
|
|
24
|
+
id: summary.appId,
|
|
25
|
+
key: summary.appId,
|
|
26
|
+
name: "Quiz",
|
|
27
|
+
description: "Quiz",
|
|
28
|
+
url: quizBaseUrl,
|
|
29
|
+
});
|
|
23
30
|
---
|
|
24
31
|
|
|
25
32
|
<section class="av-auth-stack-lg">
|
|
@@ -28,7 +35,13 @@ const quizBaseUrl = buildAppUrl(summary.appId);
|
|
|
28
35
|
<p class="av-text-soft">Last attempt: {formatDateTime(summary.kpis.lastAttemptAt)}</p>
|
|
29
36
|
</div>
|
|
30
37
|
<div class="av-row-wrap">
|
|
31
|
-
<AvButton
|
|
38
|
+
<AvButton
|
|
39
|
+
href={quizBaseUrl}
|
|
40
|
+
size="sm"
|
|
41
|
+
onclick={`window.dispatchEvent(new CustomEvent('ansiversa:app-opened', { detail: ${trackOpenPayload} }))`}
|
|
42
|
+
>
|
|
43
|
+
Open App ->
|
|
44
|
+
</AvButton>
|
|
32
45
|
<AvButton href={buildAppUrl(summary.appId, "/results")} size="sm" variant="ghost">View Results</AvButton>
|
|
33
46
|
</div>
|
|
34
47
|
</div>
|
|
@@ -20,6 +20,13 @@ const resumesUrl = buildAppUrl(summary.appId, "/app/resumes");
|
|
|
20
20
|
const templatesLabel = summary.templatesUsed.length > 0 ? summary.templatesUsed.join(", ") : "No templates yet";
|
|
21
21
|
const completionLabel =
|
|
22
22
|
typeof summary.completionHint === "number" ? `${summary.completionHint}%` : "—";
|
|
23
|
+
const trackOpenPayload = JSON.stringify({
|
|
24
|
+
id: summary.appId,
|
|
25
|
+
key: summary.appId,
|
|
26
|
+
name: "Resume Builder",
|
|
27
|
+
description: "Resume Builder",
|
|
28
|
+
url: resumeBaseUrl,
|
|
29
|
+
});
|
|
23
30
|
---
|
|
24
31
|
|
|
25
32
|
<section class="av-auth-stack-lg">
|
|
@@ -28,7 +35,13 @@ const completionLabel =
|
|
|
28
35
|
<p class="av-text-soft">Last updated: {formatDateTime(summary.lastUpdatedAt)}</p>
|
|
29
36
|
</div>
|
|
30
37
|
<div class="av-row-wrap">
|
|
31
|
-
<AvButton
|
|
38
|
+
<AvButton
|
|
39
|
+
href={resumeBaseUrl}
|
|
40
|
+
size="sm"
|
|
41
|
+
onclick={`window.dispatchEvent(new CustomEvent('ansiversa:app-opened', { detail: ${trackOpenPayload} }))`}
|
|
42
|
+
>
|
|
43
|
+
Open App ->
|
|
44
|
+
</AvButton>
|
|
32
45
|
<AvButton href={resumesUrl} size="sm" variant="ghost">View resumes</AvButton>
|
|
33
46
|
</div>
|
|
34
47
|
</div>
|