diff --git a/frontend/src/components/OnboardingSteps.vue b/frontend/src/components/OnboardingSteps.vue
index 90dc7011..dca983f8 100644
--- a/frontend/src/components/OnboardingSteps.vue
+++ b/frontend/src/components/OnboardingSteps.vue
@@ -21,14 +21,24 @@
!step.completed && step.onClick()"
+ class="group w-full flex gap-2 justify-between items-center hover:bg-surface-gray-1 rounded px-2 py-1.5 cursor-pointer"
+ @click.stop="() => !step.completed && step.onClick()"
>
-
-
{{ step.title }}
+
+
+
+ {{ step.title }}
+
+
+
@@ -39,6 +49,6 @@ import { useOnboarding } from '@/composables/onboarding'
const emit = defineEmits(['close'])
-const { steps, stepsCompleted, totalSteps, completedPercentage } =
+const { steps, stepsCompleted, totalSteps, completedPercentage, skip } =
useOnboarding()
diff --git a/frontend/src/composables/onboarding.js b/frontend/src/composables/onboarding.js
index 03ab2a25..dc6874c1 100644
--- a/frontend/src/composables/onboarding.js
+++ b/frontend/src/composables/onboarding.js
@@ -190,7 +190,7 @@ export function useOnboarding() {
syncStatus()
- function updateOnboardingStep(step) {
+ function updateOnboardingStep(step, skipped = false) {
if (isOnboardingStepsCompleted.value) return
let user = window.user
if (!user) return false
@@ -212,13 +212,21 @@ export function useOnboarding() {
window.user = user
- capture('onboarding_' + step)
+ if (skipped) {
+ capture('onboarding_skipped_' + step)
+ } else {
+ capture('onboarding_' + step)
+ }
call('crm.api.onboarding.update_user_onboarding_status', {
steps: JSON.stringify(_steps),
})
}
+ function skip(step) {
+ updateOnboardingStep(step, true)
+ }
+
function syncStatus() {
if (isOnboardingStepsCompleted.value) return
let user = window.user
@@ -241,5 +249,6 @@ export function useOnboarding() {
totalSteps,
completedPercentage,
updateOnboardingStep,
+ skip,
}
}