diff --git a/src/platform/onboarding/cloud/CloudSurveyView.vue b/src/platform/onboarding/cloud/CloudSurveyView.vue index 1ed601171b..a87c285b3f 100644 --- a/src/platform/onboarding/cloud/CloudSurveyView.vue +++ b/src/platform/onboarding/cloud/CloudSurveyView.vue @@ -80,6 +80,13 @@ > +
+ +
@@ -243,6 +250,7 @@ const isSubmitting = ref(false) const surveyData = ref({ familiarity: '', useCase: '', + useCaseOther: '', industry: '', industryOther: '', making: [] as string[] @@ -265,7 +273,8 @@ const purposeOptions = [ }, { label: 'Client work (freelance)', value: 'client' }, { label: 'My own workplace (in-house)', value: 'inhouse' }, - { label: 'Academic research', value: 'research' } + { label: 'Academic research', value: 'research' }, + { label: 'Other', value: 'other' } ] const industryOptions = [ @@ -290,7 +299,13 @@ const makingOptions = [ // Validation per step const validStep1 = computed(() => !!surveyData.value.familiarity) -const validStep2 = computed(() => !!surveyData.value.useCase) +const validStep2 = computed(() => { + if (!surveyData.value.useCase) return false + if (surveyData.value.useCase === 'other') { + return !!surveyData.value.useCaseOther?.trim() + } + return true +}) const validStep3 = computed(() => { if (!surveyData.value.industry) return false if (surveyData.value.industry === 'other') { @@ -314,13 +329,16 @@ const goTo = (step: number, activate: (val: string | number) => void) => { const onSubmitSurvey = async () => { try { isSubmitting.value = true - // prepare payload: collapse "other" field + // prepare payload with consistent structure const payload = { familiarity: surveyData.value.familiarity, - useCase: surveyData.value.useCase, + useCase: + surveyData.value.useCase === 'other' + ? surveyData.value.useCaseOther?.trim() || 'other' + : surveyData.value.useCase, industry: surveyData.value.industry === 'other' - ? { type: 'other', text: surveyData.value.industryOther } + ? surveyData.value.industryOther?.trim() || 'other' : surveyData.value.industry, making: surveyData.value.making }