From 843fed5ffd30f043125194a43002f269fdd3e459 Mon Sep 17 00:00:00 2001 From: Johannes <72809645+jobenjada@users.noreply.github.com> Date: Sun, 22 Dec 2024 23:39:52 -0800 Subject: [PATCH] fix: remove default values for new questions added (#4450) Co-authored-by: Matti Nannt Co-authored-by: Dhruwang Co-authored-by: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> --- .../components/QuestionFormInput/index.tsx | 1 + apps/web/playwright/survey.spec.ts | 67 ++++++++++++++- apps/web/playwright/utils/helper.ts | 85 ++++++++++++++++++- apps/web/playwright/utils/mock.ts | 3 + packages/lib/messages/de-DE.json | 33 ------- packages/lib/messages/en-US.json | 35 +------- packages/lib/messages/fr-FR.json | 34 +------- packages/lib/messages/pt-BR.json | 34 +------- packages/lib/utils/questions.tsx | 84 ++++++------------ .../questions/picture-selection-question.tsx | 3 +- 10 files changed, 186 insertions(+), 193 deletions(-) diff --git a/apps/web/modules/surveys/components/QuestionFormInput/index.tsx b/apps/web/modules/surveys/components/QuestionFormInput/index.tsx index b3882854a4..c75c86d577 100644 --- a/apps/web/modules/surveys/components/QuestionFormInput/index.tsx +++ b/apps/web/modules/surveys/components/QuestionFormInput/index.tsx @@ -594,6 +594,7 @@ export const QuestionFormInput = ({ ref={inputRef} onBlur={onBlur} maxLength={maxLength ?? undefined} + autoFocus={id === "headline"} isInvalid={ isInvalid && text[usedLanguageCode]?.trim() === "" && diff --git a/apps/web/playwright/survey.spec.ts b/apps/web/playwright/survey.spec.ts index f38ee24f4e..06ba1a3063 100644 --- a/apps/web/playwright/survey.spec.ts +++ b/apps/web/playwright/survey.spec.ts @@ -1,7 +1,7 @@ import { surveys } from "@/playwright/utils/mock"; import { expect } from "@playwright/test"; import { test } from "./lib/fixtures"; -import { createSurvey, createSurveyWithLogic } from "./utils/helper"; +import { createSurvey, createSurveyWithLogic, uploadFileForFileUploadQuestion } from "./utils/helper"; test.use({ launchOptions: { @@ -249,42 +249,67 @@ test.describe("Multi Language Survey Create", async () => { // Add questions in default language await page.getByText("Add question").click(); await page.getByRole("button", { name: "Single-Select" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.singleSelectQuestion.question); + await page.getByPlaceholder("Option 1").fill(surveys.createAndSubmit.singleSelectQuestion.options[0]); + await page.getByPlaceholder("Option 2").fill(surveys.createAndSubmit.singleSelectQuestion.options[1]); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Multi-Select" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.multiSelectQuestion.question); + await page.getByPlaceholder("Option 1").fill(surveys.createAndSubmit.multiSelectQuestion.options[0]); + await page.getByPlaceholder("Option 2").fill(surveys.createAndSubmit.multiSelectQuestion.options[1]); + await page.getByPlaceholder("Option 3").fill(surveys.createAndSubmit.multiSelectQuestion.options[2]); await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Picture Selection" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.pictureSelectQuestion.question); + + // Handle file uploads + await uploadFileForFileUploadQuestion(page); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Rating" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.ratingQuestion.question); + await page.getByPlaceholder("Not good").fill(surveys.createAndSubmit.ratingQuestion.lowLabel); + await page.getByPlaceholder("Very satisfied").fill(surveys.createAndSubmit.ratingQuestion.highLabel); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Net Promoter Score (NPS)" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.npsQuestion.question); + await page.getByLabel("Lower label").fill(surveys.createAndSubmit.npsQuestion.lowLabel); + await page.getByLabel("Upper label").fill(surveys.createAndSubmit.npsQuestion.highLabel); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Date" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.dateQuestion.question); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "File Upload" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.fileUploadQuestion.question); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) @@ -293,18 +318,58 @@ test.describe("Multi Language Survey Create", async () => { await page.getByRole("button", { name: "Matrix" }).scrollIntoViewIfNeeded(); await page.getByRole("button", { name: "Matrix" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.matrix.question); + await page.locator("#row-0").click(); + await page.locator("#row-0").fill(surveys.createAndSubmit.matrix.rows[0]); + await page.locator("#row-1").click(); + await page.locator("#row-1").fill(surveys.createAndSubmit.matrix.rows[1]); + await page.getByRole("button", { name: "Add row" }).click(); + await page.locator("#row-2").click(); + await page.locator("#row-2").fill(surveys.createAndSubmit.matrix.rows[2]); + await page.locator("#column-0").click(); + await page.locator("#column-0").fill(surveys.createAndSubmit.matrix.columns[0]); + await page.locator("#column-1").click(); + await page.locator("#column-1").fill(surveys.createAndSubmit.matrix.columns[1]); + await page.getByRole("button", { name: "Add column" }).click(); + await page.locator("#column-2").click(); + await page.locator("#column-2").fill(surveys.createAndSubmit.matrix.columns[2]); + await page.getByRole("button", { name: "Add column" }).click(); + await page.locator("#column-3").click(); + await page.locator("#column-3").fill(surveys.createAndSubmit.matrix.columns[3]); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Address" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.address.question); + await page.getByRole("row", { name: "Address Line 2" }).getByRole("switch").nth(1).click(); + await page.getByRole("row", { name: "City" }).getByRole("cell").nth(2).click(); + await page.getByRole("row", { name: "State" }).getByRole("switch").nth(1).click(); + await page.getByRole("row", { name: "Zip" }).getByRole("cell").nth(2).click(); + await page.getByRole("row", { name: "Country" }).getByRole("switch").nth(1).click(); + await page .locator("div") .filter({ hasText: /^Add questionAdd a new question to your survey$/ }) .nth(1) .click(); await page.getByRole("button", { name: "Ranking" }).click(); + await page.getByLabel("Question*").fill(surveys.createAndSubmit.ranking.question); + await page.getByPlaceholder("Option 1").click(); + await page.getByPlaceholder("Option 1").fill(surveys.createAndSubmit.ranking.choices[0]); + await page.getByPlaceholder("Option 2").click(); + await page.getByPlaceholder("Option 2").fill(surveys.createAndSubmit.ranking.choices[1]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 3").click(); + await page.getByPlaceholder("Option 3").fill(surveys.createAndSubmit.ranking.choices[2]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 4").click(); + await page.getByPlaceholder("Option 4").fill(surveys.createAndSubmit.ranking.choices[3]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 5").click(); + await page.getByPlaceholder("Option 5").fill(surveys.createAndSubmit.ranking.choices[4]); // Enable translation in german await page.getByText("Welcome CardShownOn").click(); diff --git a/apps/web/playwright/utils/helper.ts b/apps/web/playwright/utils/helper.ts index 45346fb835..05aaedd324 100644 --- a/apps/web/playwright/utils/helper.ts +++ b/apps/web/playwright/utils/helper.ts @@ -75,6 +75,31 @@ export const apiLogin = async (page: Page, email: string, password: string) => { }); }; +export const uploadFileForFileUploadQuestion = async (page: Page) => { + try { + const fileInput = page.locator('input[type="file"]'); + const response1 = await fetch("https://formbricks-cdn.s3.eu-central-1.amazonaws.com/puppy-1-small.jpg"); + const response2 = await fetch("https://formbricks-cdn.s3.eu-central-1.amazonaws.com/puppy-2-small.jpg"); + const buffer1 = Buffer.from(await response1.arrayBuffer()); + const buffer2 = Buffer.from(await response2.arrayBuffer()); + + await fileInput.setInputFiles([ + { + name: "puppy-1-small.jpg", + mimeType: "image/jpeg", + buffer: buffer1, + }, + { + name: "puppy-2-small.jpg", + mimeType: "image/jpeg", + buffer: buffer2, + }, + ]); + } catch (error) { + console.error("Error uploading files:", error); + } +}; + export const finishOnboarding = async ( page: Page, projectChannel: TProjectConfigChannel = "website" @@ -237,9 +262,12 @@ export const createSurvey = async (page: Page, params: CreateSurveyParams) => { .click(); await page.getByRole("button", { name: "Picture Selection" }).click(); await page.getByLabel("Question*").fill(params.pictureSelectQuestion.question); - await page.getByRole("button", { name: "Add description", exact: true }).click(); + await page.getByRole("button", { name: "Add description" }).click(); await page.locator('input[name="subheader"]').fill(params.pictureSelectQuestion.description); + // Handle file uploads + await uploadFileForFileUploadQuestion(page); + // File Upload Question await page .locator("div") @@ -249,7 +277,7 @@ export const createSurvey = async (page: Page, params: CreateSurveyParams) => { await page.getByRole("button", { name: "File Upload" }).click(); await page.getByLabel("Question*").fill(params.fileUploadQuestion.question); - // File Upload Question + // Matrix Upload Question await page .locator("div") .filter({ hasText: new RegExp(`^${addQuestion}$`) }) @@ -263,14 +291,17 @@ export const createSurvey = async (page: Page, params: CreateSurveyParams) => { await page.locator("#row-0").fill(params.matrix.rows[0]); await page.locator("#row-1").click(); await page.locator("#row-1").fill(params.matrix.rows[1]); + await page.getByRole("button", { name: "Add row" }).click(); await page.locator("#row-2").click(); await page.locator("#row-2").fill(params.matrix.rows[2]); await page.locator("#column-0").click(); await page.locator("#column-0").fill(params.matrix.columns[0]); await page.locator("#column-1").click(); await page.locator("#column-1").fill(params.matrix.columns[1]); + await page.getByRole("button", { name: "Add column" }).click(); await page.locator("#column-2").click(); await page.locator("#column-2").fill(params.matrix.columns[2]); + await page.getByRole("button", { name: "Add column" }).click(); await page.locator("#column-3").click(); await page.locator("#column-3").fill(params.matrix.columns[3]); @@ -308,6 +339,20 @@ export const createSurvey = async (page: Page, params: CreateSurveyParams) => { .nth(1) .click(); await page.getByRole("button", { name: "Ranking" }).click(); + await page.getByLabel("Question*").fill(params.ranking.question); + await page.getByPlaceholder("Option 1").click(); + await page.getByPlaceholder("Option 1").fill(params.ranking.choices[0]); + await page.getByPlaceholder("Option 2").click(); + await page.getByPlaceholder("Option 2").fill(params.ranking.choices[1]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 3").click(); + await page.getByPlaceholder("Option 3").fill(params.ranking.choices[2]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 4").click(); + await page.getByPlaceholder("Option 4").fill(params.ranking.choices[3]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 5").click(); + await page.getByPlaceholder("Option 5").fill(params.ranking.choices[4]); // Thank You Card await page @@ -398,6 +443,25 @@ export const createSurveyWithLogic = async (page: Page, params: CreateSurveyWith await page.getByLabel("Question*").fill(params.pictureSelectQuestion.question); await page.getByRole("button", { name: "Add description" }).click(); await page.locator('input[name="subheader"]').fill(params.pictureSelectQuestion.description); + const fileInput = page.locator('input[type="file"]'); + const response1 = await fetch("https://formbricks-cdn.s3.eu-central-1.amazonaws.com/puppy-1-small.jpg"); + const response2 = await fetch("https://formbricks-cdn.s3.eu-central-1.amazonaws.com/puppy-2-small.jpg"); + const buffer1 = Buffer.from(await response1.arrayBuffer()); + const buffer2 = Buffer.from(await response2.arrayBuffer()); + + await fileInput.setInputFiles([ + { + name: "puppy-1-small.jpg", + mimeType: "image/jpeg", + buffer: buffer1, + }, + { + name: "puppy-2-small.jpg", + mimeType: "image/jpeg", + buffer: buffer2, + }, + ]); + await page.getByLabel("Required").click(); // Rating Question @@ -432,6 +496,19 @@ export const createSurveyWithLogic = async (page: Page, params: CreateSurveyWith .click(); await page.getByRole("button", { name: "Ranking" }).click(); await page.getByLabel("Question*").fill(params.ranking.question); + await page.getByPlaceholder("Option 1").click(); + await page.getByPlaceholder("Option 1").fill(params.ranking.choices[0]); + await page.getByPlaceholder("Option 2").click(); + await page.getByPlaceholder("Option 2").fill(params.ranking.choices[1]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 3").click(); + await page.getByPlaceholder("Option 3").fill(params.ranking.choices[2]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 4").click(); + await page.getByPlaceholder("Option 4").fill(params.ranking.choices[3]); + await page.getByRole("button", { name: "Add option" }).click(); + await page.getByPlaceholder("Option 5").click(); + await page.getByPlaceholder("Option 5").fill(params.ranking.choices[4]); await page.getByLabel("Required").click(); // Matrix Question @@ -448,14 +525,17 @@ export const createSurveyWithLogic = async (page: Page, params: CreateSurveyWith await page.locator("#row-0").fill(params.matrix.rows[0]); await page.locator("#row-1").click(); await page.locator("#row-1").fill(params.matrix.rows[1]); + await page.getByRole("button", { name: "Add row" }).click(); await page.locator("#row-2").click(); await page.locator("#row-2").fill(params.matrix.rows[2]); await page.locator("#column-0").click(); await page.locator("#column-0").fill(params.matrix.columns[0]); await page.locator("#column-1").click(); await page.locator("#column-1").fill(params.matrix.columns[1]); + await page.getByRole("button", { name: "Add column" }).click(); await page.locator("#column-2").click(); await page.locator("#column-2").fill(params.matrix.columns[2]); + await page.getByRole("button", { name: "Add column" }).click(); await page.locator("#column-3").click(); await page.locator("#column-3").fill(params.matrix.columns[3]); @@ -497,6 +577,7 @@ export const createSurveyWithLogic = async (page: Page, params: CreateSurveyWith .click(); await page.getByRole("button", { name: "Date" }).click(); await page.getByLabel("Question*").fill(params.date.question); + await page.getByLabel("Required").click(); // Cal Question await page diff --git a/apps/web/playwright/utils/mock.ts b/apps/web/playwright/utils/mock.ts index 1197cf191b..1304850396 100644 --- a/apps/web/playwright/utils/mock.ts +++ b/apps/web/playwright/utils/mock.ts @@ -144,6 +144,9 @@ export const surveys = { question: "This is my Picture Select Question", description: "This is Picture Select Description", }, + dateQuestion: { + question: "This is my Date Question", + }, fileUploadQuestion: { question: "This is my File Upload Question", }, diff --git a/packages/lib/messages/de-DE.json b/packages/lib/messages/de-DE.json index c84677d415..e4d812fcae 100644 --- a/packages/lib/messages/de-DE.json +++ b/packages/lib/messages/de-DE.json @@ -2059,7 +2059,6 @@ "templates": { "address": "Adresse", "address_description": "Frag nach einer Adresse", - "address_headline": "Wo wohnst du?", "alignment_and_engagement_survey_description": "Bewerte die Ausrichtung der Mitarbeiter an der Unternehmensvision, Strategie und Kommunikation sowie die Teamzusammenarbeit.", "alignment_and_engagement_survey_name": "Ausrichtung und Engagement mit der Unternehmensvision", "alignment_and_engagement_survey_question_1_headline": "Ich verstehe, wie meine Rolle zur Gesamtstrategie des Unternehmens beiträgt.", @@ -2206,11 +2205,8 @@ "collect_feedback_question_7_placeholder": "beispiel@email.com", "consent": "Zustimmung", "consent_description": "Bitte um Zustimmung zu den Bedingungen, Konditionen oder der Datennutzung", - "consent_headline": "Allgemeine Geschäftsbedingungen", - "consent_label": "Ich stimme den Allgemeinen Geschäftsbedingungen zu", "contact_info": "Kontaktinfo", "contact_info_description": "Bitte nach Name, Nachname, E-Mail, Telefonnummer und Firma gemeinsam fragen", - "contact_info_headline": "Was sind deine Kontaktdaten?", "csat_description": "Miss den Kundenzufriedenheitswert deines Produkts oder deiner Dienstleistung.", "csat_name": "Kundenzufriedenheitswert (CSAT)", "csat_question_10_headline": "Hast Du noch weitere Kommentare, Fragen oder Bedenken?", @@ -2290,8 +2286,6 @@ "csat_survey_question_3_headline": "Ugh, sorry! Können wir irgendwas tun, um deine Erfahrung zu verbessern?", "csat_survey_question_3_placeholder": "Tippe deine Antwort hier...", "cta_description": "Information anzeigen und Benutzer auffordern, eine bestimmte Aktion auszuführen", - "cta_headline": "Du bist einer unserer Power-User!", - "cta_html": "

Wir würden gerne dein Nutzererlebnis besser verstehen. Deine Einblicke helfen uns sehr.

", "custom_survey_description": "Erstelle eine Umfrage ohne Vorlage.", "custom_survey_name": "Eigene Umfrage erstellen", "custom_survey_question_1_headline": "Was möchtest Du wissen?", @@ -2305,7 +2299,6 @@ "customer_effort_score_question_2_placeholder": "Tippe deine Antwort hier...", "date": "Datum", "date_description": "Frag nach einem Datum", - "date_headline": "Wann hast Du Geburtstag?", "default_ending_card_button_label": "Erstelle deine eigene Umfrage", "default_ending_card_headline": "Danke!", "default_ending_card_subheader": "Wir schätzen dein Feedback.", @@ -2461,12 +2454,10 @@ "feedback_box_question_4_subheader": "Welches Problem sollten wir lösen?", "file_upload": "Datei hochladen", "file_upload_description": "Ermögliche es den Befragten, Dokumente, Bilder oder andere Dateien hochzuladen", - "file_upload_headline": "Datei hochladen", "finish": "Fertigstellen", "follow_ups_modal_action_body": "

Hey 👋

Danke, dass du dir die Zeit genommen hast zu antworten. Wir melden uns bald bei dir.

Hab noch einen schönen Tag!

", "free_text": "Freitext", "free_text_description": "Sammle offenes Feedback", - "free_text_headline": "Was möchtest Du mit uns teilen?", "free_text_placeholder": "Tippe deine Antwort hier...", "gauge_feature_satisfaction_description": "Bewerte die Zufriedenheit mit bestimmten Funktionen deines Produkts.", "gauge_feature_satisfaction_name": "Zufriedenheit mit Funktionen messen", @@ -2637,15 +2628,7 @@ "market_site_clarity_question_3_button_label": "Rabatt bekommen", "market_site_clarity_question_3_headline": "Danke für deine Antwort! Erhalte 25% Rabatt auf deine ersten 6 Monate:", "matrix": "Matrix", - "matrix_column_1": "0", - "matrix_column_2": "1", - "matrix_column_3": "2", - "matrix_column_4": "3", "matrix_description": "Erstelle ein Raster, um mehrere Elemente anhand derselben Kriterien zu bewerten", - "matrix_headline": "Wie sehr liebst Du diese Blumen?", - "matrix_row_1": "Rosen", - "matrix_row_2": "Bäume", - "matrix_row_3": "Ozean", "measure_search_experience_description": "Miss die Relevanz deiner Suchergebnisse.", "measure_search_experience_name": "Sucherfahrung messen", "measure_search_experience_question_1_headline": "Wie relevant sind diese Suchergebnisse?", @@ -2673,10 +2656,6 @@ "measure_task_accomplishment_question_5_placeholder": "Tippe deine Antwort hier...", "multi_select": "Mehrfachauswahl", "multi_select_description": "Bitte die Befragten, eine oder mehrere Optionen auszuwählen", - "multi_select_headline": "Was ist im Urlaub wichtig?", - "multi_select_option_1": "Sonne ☀️", - "multi_select_option_2": "Meer 🌊", - "multi_select_option_3": "Palmen 🌴", "new_integration_survey_description": "Finde heraus, welche Integrationen deine Nutzer als nächstes sehen möchten.", "new_integration_survey_name": "Umfrage zu neuen Integrationen", "new_integration_survey_question_1_choice_1": "Salesforce", @@ -2727,7 +2706,6 @@ "onboarding_segmentation_question_3_subheader": "Bitte wähle eine der folgenden Optionen aus:", "picture_selection": "Bilderauswahl", "picture_selection_description": "Bitte die Befragten, ein oder mehrere Bilder auszuwählen", - "picture_selection_headline": "Welcher Welpe ist der süßeste?", "preview_survey_ending_card_description": "Mach bitte mit deinem Onboarding weiter.", "preview_survey_ending_card_headline": "Geschafft!", "preview_survey_name": "Vorschau", @@ -2827,12 +2805,6 @@ "professional_development_survey_question_5_headline": "Was sind Ihre Hauptgründe, um Zeit für berufliche Weiterentwicklung einzuplanen?", "ranking": "Ranking", "ranking_description": "Bitte die Befragten, die Elemente nach Präferenz oder Wichtigkeit zu ordnen.", - "ranking_headline": "Was ist dir im Leben am wichtigsten?", - "ranking_option_1": "Arbeit", - "ranking_option_2": "Familie", - "ranking_option_3": "Reisen", - "ranking_option_4": "Geld", - "ranking_option_5": "Freunde", "rate_checkout_experience_description": "Lass Kunden den Checkout-Prozess bewerten, um die Conversion zu optimieren.", "rate_checkout_experience_name": "Bewerte den Checkout-Prozess", "rate_checkout_experience_question_1_headline": "Wie einfach oder schwierig war es, den Checkout abzuschließen?", @@ -2844,7 +2816,6 @@ "rate_checkout_experience_question_3_placeholder": "Tippe deine Antwort hier...", "rating": "Bewertung", "rating_description": "Bitte die Befragten um eine Bewertung (Sterne, Smileys, Zahlen)", - "rating_headline": "Wie würdest Du {{projectName}} bewerten?", "rating_lower_label": "Nicht gut", "rating_upper_label": "Sehr gut", "recognition_and_reward_survey_description": "Bewerte die Mitarbeiterzufriedenheit in Bezug auf Anerkennung, Belohnungen, Führungsunterstützung und Meinungsfreiheit.", @@ -2874,12 +2845,8 @@ "review_prompt_question_3_subheader": "Hilf uns, deine Experience zu verbessern.", "schedule_a_meeting": "Ein Meeting planen", "schedule_a_meeting_description": "Bitte die Befragten, einen Termin für Meetings oder Anrufe zu buchen.", - "schedule_a_meeting_headline": "Vereinbare einen Anruf mit mir", "single_select": "Einzelauswahl", "single_select_description": "Biete eine Liste von Optionen an (wähle eine aus)", - "single_select_headline": "Was machst du?", - "single_select_option_1": "Iss den Kuchen 🍰", - "single_select_option_2": "Hab den Kuchen 🎂", "site_abandonment_survey": "Umfrage zum Verlassen der Website", "site_abandonment_survey_description": "Verstehe die Gründe für den Kaufabbruch in deinem Webshop.", "site_abandonment_survey_question_1_html": "

Wir haben bemerkt, dass Du unsere Seite verlässt, ohne einen Kauf zu tätigen. Wir würden gerne verstehen, warum.

", diff --git a/packages/lib/messages/en-US.json b/packages/lib/messages/en-US.json index 1f9801387c..1c75201a2c 100644 --- a/packages/lib/messages/en-US.json +++ b/packages/lib/messages/en-US.json @@ -2059,7 +2059,6 @@ "templates": { "address": "Address", "address_description": "Ask for a mailing address", - "address_headline": "Where do you live?", "alignment_and_engagement_survey_description": "Gauge employee alignment with the company's vision, strategy, and communication, as well as team collaboration.", "alignment_and_engagement_survey_name": "Alignment and Engagement with Company Vision", "alignment_and_engagement_survey_question_1_headline": "I understand how my role contributes to the company’s overall strategy.", @@ -2206,11 +2205,8 @@ "collect_feedback_question_7_placeholder": "example@email.com", "consent": "Consent", "consent_description": "Ask to agree to terms, conditions, or data usage", - "consent_headline": "Terms and Conditions", - "consent_label": "I agree to the terms and conditions", "contact_info": "Contact Info", "contact_info_description": "Ask for name, surname, email, phone number and company jointly", - "contact_info_headline": "What is your contact information?", "csat_description": "Measure the Customer Satisfaction Score of your product or service.", "csat_name": "Customer Satisfaction Score (CSAT)", "csat_question_10_headline": "Do you have any other comments, questions or concerns?", @@ -2290,8 +2286,6 @@ "csat_survey_question_3_headline": "Ugh, sorry! Is there anything we can do to improve your experience?", "csat_survey_question_3_placeholder": "Type your answer here...", "cta_description": "Display information and prompt users to take a specific action", - "cta_headline": "You are one of our power users!", - "cta_html": "

We would love to understand your user experience better. Sharing your insight helps a lot.

", "custom_survey_description": "Create a survey without template.", "custom_survey_name": "Start from scratch", "custom_survey_question_1_headline": "What would you like to know?", @@ -2305,7 +2299,6 @@ "customer_effort_score_question_2_placeholder": "Type your answer here...", "date": "Date", "date_description": "Ask for a date selection", - "date_headline": "When is your birthday?", "default_ending_card_button_label": "Create your own Survey", "default_ending_card_headline": "Thank you!", "default_ending_card_subheader": "We appreciate your feedback.", @@ -2461,12 +2454,10 @@ "feedback_box_question_4_subheader": "What problem do you want us to solve?", "file_upload": "File Upload", "file_upload_description": "Enable respondents to upload documents, images, or other files", - "file_upload_headline": "File Upload", "finish": "Finish", "follow_ups_modal_action_body": "

Hey 👋

Thanks for taking the time to respond, we will be in touch shortly.

Have a great day!

", "free_text": "Free text", "free_text_description": "Collect open-ended feedback", - "free_text_headline": "Who let the dogs out?", "free_text_placeholder": "Type your answer here...", "gauge_feature_satisfaction_description": "Evaluate the satisfaction of specific features of your product.", "gauge_feature_satisfaction_name": "Gauge Feature Satisfaction", @@ -2637,15 +2628,7 @@ "market_site_clarity_question_3_button_label": "Get discount", "market_site_clarity_question_3_headline": "Thanks for your answer! Get 25% off your first 6 months:", "matrix": "Matrix", - "matrix_column_1": "0", - "matrix_column_2": "1", - "matrix_column_3": "2", - "matrix_column_4": "3", "matrix_description": "Create a grid to rate multiple items on the same set of criteria", - "matrix_headline": "How much do you love these flowers?", - "matrix_row_1": "Roses", - "matrix_row_2": "Trees", - "matrix_row_3": "Ocean", "measure_search_experience_description": "Measure how relevant your search results are.", "measure_search_experience_name": "Measure Search Experience", "measure_search_experience_question_1_headline": "How relevant are these search results?", @@ -2673,10 +2656,6 @@ "measure_task_accomplishment_question_5_placeholder": "Type your answer here...", "multi_select": "Multi-Select", "multi_select_description": "Ask respondents to choose one or more options", - "multi_select_headline": "What's important on vacay?", - "multi_select_option_1": "Sun ☀️", - "multi_select_option_2": "Ocean 🌊", - "multi_select_option_3": "Palms 🌴", "new_integration_survey_description": "Find out which integrations your users would like to see next.", "new_integration_survey_name": "New Integration Survey", "new_integration_survey_question_1_choice_1": "PostHog", @@ -2727,7 +2706,6 @@ "onboarding_segmentation_question_3_subheader": "Please select one of the following options:", "picture_selection": "Picture Selection", "picture_selection_description": "Ask respondents to choose one or more images", - "picture_selection_headline": "Which is the cutest puppy?", "preview_survey_ending_card_description": "Please continue your onboarding.", "preview_survey_ending_card_headline": "You did it!", "preview_survey_name": "New Survey", @@ -2827,12 +2805,6 @@ "professional_development_survey_question_5_headline": "What are your main reasons for wanting to spend time on professional development?", "ranking": "Ranking", "ranking_description": "Ask respondents to order items by preference or importance", - "ranking_headline": "What is most important for you in life?", - "ranking_option_1": "Work", - "ranking_option_2": "Family", - "ranking_option_3": "Travel", - "ranking_option_4": "Money", - "ranking_option_5": "Friends", "rate_checkout_experience_description": "Let customers rate the checkout experience to tweak conversion.", "rate_checkout_experience_name": "Rate Checkout Experience", "rate_checkout_experience_question_1_headline": "How easy or difficult was it to complete the checkout?", @@ -2844,7 +2816,7 @@ "rate_checkout_experience_question_3_placeholder": "Type your answer here...", "rating": "Rating", "rating_description": "Ask respondents for a rating (stars, smileys, numbers)", - "rating_headline": "How would you rate {{projectName}}", + "rating_lower_label": "Not good", "rating_upper_label": "Very good", "recognition_and_reward_survey_description": "Evaluate employee satisfaction with recognition, rewards, leadership support, and freedom of expression.", @@ -2874,12 +2846,9 @@ "review_prompt_question_3_subheader": "Help us improve your experience.", "schedule_a_meeting": "Schedule a meeting", "schedule_a_meeting_description": "Ask respondents to book a time slot for meetings or calls", - "schedule_a_meeting_headline": "Schedule a call with me", + "single_select": "Single-Select", "single_select_description": "Offer a list of options (choose one)", - "single_select_headline": "What do you do?", - "single_select_option_1": "Eat the cake 🍰", - "single_select_option_2": "Have the cake 🎂", "site_abandonment_survey": "Site Abandonment Survey", "site_abandonment_survey_description": "Understand the reasons behind site abandonment in your web shop.", "site_abandonment_survey_question_1_html": "

We noticed you're leaving our site without making a purchase. We would love to understand why.

", diff --git a/packages/lib/messages/fr-FR.json b/packages/lib/messages/fr-FR.json index c9e6e7a825..feb340e87d 100644 --- a/packages/lib/messages/fr-FR.json +++ b/packages/lib/messages/fr-FR.json @@ -2059,7 +2059,6 @@ "templates": { "address": "Adresse", "address_description": "Demander une adresse postale", - "address_headline": "Où habites-tu ?", "alignment_and_engagement_survey_description": "Évaluer l'alignement des employés avec la vision, la stratégie et la communication de l'entreprise, ainsi que la collaboration au sein de l'équipe.", "alignment_and_engagement_survey_name": "Alignement et engagement avec la vision de l'entreprise", "alignment_and_engagement_survey_question_1_headline": "Je comprends comment mon rôle contribue à la stratégie globale de l'entreprise.", @@ -2206,11 +2205,8 @@ "collect_feedback_question_7_placeholder": "exemple@email.com", "consent": "Consentement", "consent_description": "Demander d'accepter les termes, conditions ou l'utilisation des données", - "consent_headline": "Conditions Générales", - "consent_label": "J'accepte les termes et conditions", "contact_info": "Informations de contact", "contact_info_description": "Demandez le nom, le prénom, l'email, le numéro de téléphone et l'entreprise ensemble.", - "contact_info_headline": "Quelles sont vos coordonnées ?", "csat_description": "Mesurez le score de satisfaction client de votre produit ou service.", "csat_name": "Score de Satisfaction Client (CSAT)", "csat_question_10_headline": "Avez-vous d'autres commentaires, questions ou préoccupations ?", @@ -2290,8 +2286,6 @@ "csat_survey_question_3_headline": "Ah, désolé ! Y a-t-il quelque chose que nous puissions faire pour améliorer votre expérience ?", "csat_survey_question_3_placeholder": "Entrez votre réponse ici...", "cta_description": "Afficher des informations et inciter les utilisateurs à effectuer une action spécifique", - "cta_headline": "Vous êtes l'un de nos utilisateurs avancés !", - "cta_html": "

Nous aimerions mieux comprendre votre expérience utilisateur. Partager vos idées nous aide beaucoup.

", "custom_survey_description": "Créer une enquête sans modèle.", "custom_survey_name": "Commencer à zéro", "custom_survey_question_1_headline": "Que voudriez-vous savoir ?", @@ -2305,7 +2299,6 @@ "customer_effort_score_question_2_placeholder": "Entrez votre réponse ici...", "date": "Date", "date_description": "Demander une sélection de date", - "date_headline": "Quand est ton anniversaire ?", "default_ending_card_button_label": "Créez votre propre enquête", "default_ending_card_headline": "Merci !", "default_ending_card_subheader": "Nous apprécions vos retours.", @@ -2461,12 +2454,11 @@ "feedback_box_question_4_subheader": "Quel problème souhaitez-vous que nous résolvions ?", "file_upload": "Téléversement de fichier", "file_upload_description": "Permettre aux répondants de télécharger des documents, des images ou d'autres fichiers", - "file_upload_headline": "Téléversement de fichier", + "finish": "Terminer", "follow_ups_modal_action_body": "

Salut 👋

Merci d'avoir pris le temps de répondre, nous vous contacterons sous peu.

Passez une excellente journée !

", "free_text": "Texte libre", "free_text_description": "Collecter des retours ouverts", - "free_text_headline": "Qui a laissé sortir les chiens ?", "free_text_placeholder": "Entrez votre réponse ici...", "gauge_feature_satisfaction_description": "Évaluez la satisfaction des fonctionnalités spécifiques de votre produit.", "gauge_feature_satisfaction_name": "Évaluer la satisfaction des fonctionnalités", @@ -2637,15 +2629,7 @@ "market_site_clarity_question_3_button_label": "Obtenir une réduction", "market_site_clarity_question_3_headline": "Merci pour votre réponse ! Obtenez 25 % de réduction sur vos 6 premiers mois :", "matrix": "Matrice", - "matrix_column_1": "0", - "matrix_column_2": "1", - "matrix_column_3": "2", - "matrix_column_4": "3", "matrix_description": "Créer une grille pour évaluer plusieurs éléments selon le même ensemble de critères.", - "matrix_headline": "Combien aimes-tu ces fleurs ?", - "matrix_row_1": "Roses", - "matrix_row_2": "Arbres", - "matrix_row_3": "Océan", "measure_search_experience_description": "Mesurez la pertinence de vos résultats de recherche.", "measure_search_experience_name": "Mesurer l'expérience de recherche", "measure_search_experience_question_1_headline": "Quelle est la pertinence de ces résultats de recherche ?", @@ -2673,10 +2657,6 @@ "measure_task_accomplishment_question_5_placeholder": "Entrez votre réponse ici...", "multi_select": "Sélection multiple", "multi_select_description": "Demandez aux répondants de choisir une ou plusieurs options", - "multi_select_headline": "Qu'est-ce qui est important en vacances ?", - "multi_select_option_1": "Soleil ☀️", - "multi_select_option_2": "Océan 🌊", - "multi_select_option_3": "Palmiers 🌴", "new_integration_survey_description": "Découvrez quelles intégrations vos utilisateurs aimeraient voir ensuite.", "new_integration_survey_name": "Nouveau sondage d'intégration", "new_integration_survey_question_1_choice_1": "PostHog", @@ -2727,7 +2707,6 @@ "onboarding_segmentation_question_3_subheader": "Veuillez sélectionner l'une des options suivantes :", "picture_selection": "Sélection d'images", "picture_selection_description": "Demandez aux répondants de choisir une ou plusieurs images", - "picture_selection_headline": "Quel est le chiot le plus mignon ?", "preview_survey_ending_card_description": "Continue ton onboarding, s'il te plaît.", "preview_survey_ending_card_headline": "C'est fait !", "preview_survey_name": "Nouveau Sondage", @@ -2827,12 +2806,6 @@ "professional_development_survey_question_5_headline": "Quelles sont vos principales raisons de vouloir consacrer du temps au développement professionnel ?", "ranking": "Classement", "ranking_description": "Demandez aux répondants de classer les éléments par préférence ou par importance.", - "ranking_headline": "Qu'est-ce qui est le plus important pour vous dans la vie ?", - "ranking_option_1": "Travail", - "ranking_option_2": "Famille", - "ranking_option_3": "Voyage", - "ranking_option_4": "Argent", - "ranking_option_5": "Amis", "rate_checkout_experience_description": "Permettez aux clients d'évaluer l'expérience de paiement pour ajuster la conversion.", "rate_checkout_experience_name": "Évaluer l'expérience de paiement", "rate_checkout_experience_question_1_headline": "À quel point était-il facile ou difficile de finaliser le paiement ?", @@ -2844,7 +2817,6 @@ "rate_checkout_experience_question_3_placeholder": "Entrez votre réponse ici...", "rating": "Évaluation", "rating_description": "Demandez aux répondants de donner une note (étoiles, smileys, chiffres)", - "rating_headline": "Comment évalueriez-vous {{projectName}} ?", "rating_lower_label": "Pas bon", "rating_upper_label": "Très bien", "recognition_and_reward_survey_description": "Évaluer la satisfaction des employés en ce qui concerne la reconnaissance, les récompenses, le soutien des dirigeants et la liberté d'expression.", @@ -2874,12 +2846,8 @@ "review_prompt_question_3_subheader": "Aidez-nous à améliorer votre expérience.", "schedule_a_meeting": "Planifier une réunion", "schedule_a_meeting_description": "Demandez aux répondants de réserver un créneau horaire pour des réunions ou des appels.", - "schedule_a_meeting_headline": "Planifiez un appel avec moi", "single_select": "Choix unique", "single_select_description": "Propose une liste d'options (choisissez-en une)", - "single_select_headline": "Que faites-vous ?", - "single_select_option_1": "Mange le gâteau 🍰", - "single_select_option_2": "Avoir le gâteau 🎂", "site_abandonment_survey": "Enquête sur l'abandon de site", "site_abandonment_survey_description": "Comprendre les raisons de l'abandon de site dans votre boutique en ligne.", "site_abandonment_survey_question_1_html": "

Nous avons remarqué que vous quittez notre site sans effectuer d'achat. Nous aimerions comprendre pourquoi.

", diff --git a/packages/lib/messages/pt-BR.json b/packages/lib/messages/pt-BR.json index ae7e57a425..e0fcdba6dc 100644 --- a/packages/lib/messages/pt-BR.json +++ b/packages/lib/messages/pt-BR.json @@ -2059,7 +2059,6 @@ "templates": { "address": "endereço", "address_description": "Pede um endereço pra correspondência", - "address_headline": "Onde você mora?", "alignment_and_engagement_survey_description": "Avalie o alinhamento dos funcionários com a visão, estratégia e comunicação da empresa, bem como a colaboração em equipe.", "alignment_and_engagement_survey_name": "Alinhamento e Engajamento com a Visão da Empresa", "alignment_and_engagement_survey_question_1_headline": "Eu entendo como meu papel contribui para a estratégia geral da empresa.", @@ -2206,11 +2205,8 @@ "collect_feedback_question_7_placeholder": "exemplo@email.com", "consent": "consentimento", "consent_description": "Pedir para concordar com os termos, condições ou uso de dados", - "consent_headline": "Termos e Condições", - "consent_label": "Eu concordo com os termos e condições", "contact_info": "Informações de Contato", "contact_info_description": "Peça nome, sobrenome, e-mail, telefone e empresa juntos", - "contact_info_headline": "Qual é o seu contato?", "csat_description": "Mede o Índice de Satisfação do Cliente do seu produto ou serviço.", "csat_name": "Pontuação de Satisfação do Cliente (CSAT)", "csat_question_10_headline": "Você tem mais algum comentário, pergunta ou preocupação?", @@ -2290,8 +2286,6 @@ "csat_survey_question_3_headline": "Ah, foi mal! Tem algo que a gente possa fazer pra melhorar sua experiência?", "csat_survey_question_3_placeholder": "Digite sua resposta aqui...", "cta_description": "Mostrar informações e pedir para os usuários tomarem uma ação específica", - "cta_headline": "Você é um dos nossos usuários top!", - "cta_html": "Adoraríamos entender melhor sua experiência como usuário. Compartilhar sua opinião ajuda muito.", "custom_survey_description": "Crie uma pesquisa sem modelo.", "custom_survey_name": "Começar do zero", "custom_survey_question_1_headline": "O que você gostaria de saber?", @@ -2305,7 +2299,6 @@ "customer_effort_score_question_2_placeholder": "Digite sua resposta aqui...", "date": "Encontro", "date_description": "Pede pra escolher uma data", - "date_headline": "Quando é seu aniversário?", "default_ending_card_button_label": "Crie sua própria pesquisa", "default_ending_card_headline": "Valeu!", "default_ending_card_subheader": "Agradecemos seu feedback.", @@ -2461,12 +2454,11 @@ "feedback_box_question_4_subheader": "Qual problema você quer que a gente resolva?", "file_upload": "Enviar Arquivo", "file_upload_description": "Permitir que os respondentes façam upload de documentos, imagens ou outros arquivos", - "file_upload_headline": "Enviar Arquivo", + "finish": "Terminar", "follow_ups_modal_action_body": "

Oi 👋

Valeu por tirar um tempinho pra responder. A gente vai entrar em contato em breve.

Tenha um ótimo dia!

", "free_text": "Texto livre", "free_text_description": "Coletar feedback aberto", - "free_text_headline": "Quem deixou os cachorros saírem?", "free_text_placeholder": "Digite sua resposta aqui...", "gauge_feature_satisfaction_description": "Avalie a satisfação com recursos específicos do seu produto.", "gauge_feature_satisfaction_name": "Medir a Satisfação com o Recurso", @@ -2637,15 +2629,7 @@ "market_site_clarity_question_3_button_label": "Conseguir desconto", "market_site_clarity_question_3_headline": "Valeu pela resposta! Ganhe 25% de desconto nos primeiros 6 meses:", "matrix": "Matrix", - "matrix_column_1": "0", - "matrix_column_2": "1", - "matrix_column_3": "2", - "matrix_column_4": "3", "matrix_description": "Crie uma grade para avaliar vários itens com os mesmos critérios", - "matrix_headline": "Quanto você ama essas flores?", - "matrix_row_1": "rosas", - "matrix_row_2": "árvores", - "matrix_row_3": "oceano", "measure_search_experience_description": "Meça o quão relevantes são os seus resultados de busca.", "measure_search_experience_name": "Medir Experiência de Busca", "measure_search_experience_question_1_headline": "Quão relevantes são esses resultados de busca?", @@ -2673,10 +2657,6 @@ "measure_task_accomplishment_question_5_placeholder": "Digite sua resposta aqui...", "multi_select": "Seleção Múltipla", "multi_select_description": "Peça aos respondentes para escolher uma ou mais opções", - "multi_select_headline": "O que é importante nas férias?", - "multi_select_option_1": "Sol ☀️", - "multi_select_option_2": "Oceano 🌊", - "multi_select_option_3": "Palmeiras 🌴", "new_integration_survey_description": "Descubra quais integrações seus usuários gostariam de ver a seguir.", "new_integration_survey_name": "Nova Pesquisa de Integração", "new_integration_survey_question_1_choice_1": "PostHog", @@ -2727,7 +2707,6 @@ "onboarding_segmentation_question_3_subheader": "Por favor, escolha uma das opções a seguir:", "picture_selection": "Seleção de Imagem", "picture_selection_description": "Peça aos respondentes para escolherem uma ou mais imagens", - "picture_selection_headline": "Qual é o filhote mais fofo?", "preview_survey_ending_card_description": "Por favor, continue seu onboarding.", "preview_survey_ending_card_headline": "Você conseguiu!", "preview_survey_name": "Nova pesquisa", @@ -2827,12 +2806,6 @@ "professional_development_survey_question_5_headline": "Quais são seus principais motivos para querer dedicar tempo para o desenvolvimento profissional?", "ranking": "classificação", "ranking_description": "Peça aos respondentes para ordenar os itens por preferência ou importância", - "ranking_headline": "O que é mais importante pra você na vida?", - "ranking_option_1": "Trabalho", - "ranking_option_2": "Família", - "ranking_option_3": "Viajar", - "ranking_option_4": "dinheiro", - "ranking_option_5": "Amigos", "rate_checkout_experience_description": "Deixe os clientes avaliarem a experiência de checkout para ajustar a conversão.", "rate_checkout_experience_name": "Avaliar Experiência de Checkout", "rate_checkout_experience_question_1_headline": "Quão fácil ou difícil foi finalizar a compra?", @@ -2844,7 +2817,6 @@ "rate_checkout_experience_question_3_placeholder": "Digite sua resposta aqui...", "rating": "avaliação", "rating_description": "Peça aos respondentes uma avaliação (estrelas, carinhas, números)", - "rating_headline": "Como você avaliaria {{projectName}}", "rating_lower_label": "Não tá bom", "rating_upper_label": "Muito bom", "recognition_and_reward_survey_description": "Avalie a satisfação dos funcionários com reconhecimento, recompensas, suporte da liderança e liberdade de expressão.", @@ -2874,12 +2846,8 @@ "review_prompt_question_3_subheader": "Ajude a gente a melhorar sua experiência.", "schedule_a_meeting": "Marcar uma reunião", "schedule_a_meeting_description": "Peça aos respondentes para agendarem um horário para reuniões ou chamadas", - "schedule_a_meeting_headline": "Marca uma ligação comigo", "single_select": "Seleção Única", "single_select_description": "Ofereça uma lista de opções (escolha uma)", - "single_select_headline": "O que você faz?", - "single_select_option_1": "Come o bolo 🍰", - "single_select_option_2": "Ficar com o bolo 🎂", "site_abandonment_survey": "Pesquisa de Abandono de Site", "site_abandonment_survey_description": "Entenda os motivos por trás do abandono de carrinho na sua loja online.", "site_abandonment_survey_question_1_html": "Percebemos que você está saindo do nosso site sem fazer uma compra. Adoraríamos entender o motivo.", diff --git a/packages/lib/utils/questions.tsx b/packages/lib/utils/questions.tsx index ce6bbf5d25..9a29c862e5 100644 --- a/packages/lib/utils/questions.tsx +++ b/packages/lib/utils/questions.tsx @@ -55,7 +55,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("free_text_description", locale), icon: MessageSquareTextIcon, preset: { - headline: { default: translate("free_text_headline", locale) }, + headline: { default: "" }, placeholder: { default: translate("free_text_placeholder", locale) }, longAnswer: true, inputType: "text", @@ -69,15 +69,15 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("single_select_description", locale), icon: Rows3Icon, preset: { - headline: { default: translate("single_select_headline", locale) }, + headline: { default: "" }, choices: [ { id: createId(), - label: { default: translate("single_select_option_1", locale) }, + label: { default: "" }, }, { id: createId(), - label: { default: translate("single_select_option_2", locale) }, + label: { default: "" }, }, ], shuffleOption: "none", @@ -91,19 +91,19 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("multi_select_description", locale), icon: ListIcon, preset: { - headline: { default: translate("multi_select_headline", locale) }, + headline: { default: "" }, choices: [ { id: createId(), - label: { default: translate("multi_select_option_1", locale) }, + label: { default: "" }, }, { id: createId(), - label: { default: translate("multi_select_option_2", locale) }, + label: { default: "" }, }, { id: createId(), - label: { default: translate("multi_select_option_3", locale) }, + label: { default: "" }, }, ], shuffleOption: "none", @@ -117,18 +117,9 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("picture_selection_description", locale), icon: ImageIcon, preset: { - headline: { default: translate("picture_selection_headline", locale) }, + headline: { default: "" }, allowMulti: true, - choices: [ - { - id: createId(), - imageUrl: "https://formbricks-cdn.s3.eu-central-1.amazonaws.com/puppy-1-small.jpg", - }, - { - id: createId(), - imageUrl: "https://formbricks-cdn.s3.eu-central-1.amazonaws.com/puppy-2-small.jpg", - }, - ], + choices: [], buttonLabel: { default: translate("next", locale) }, backButtonLabel: { default: translate("back", locale) }, } as Partial, @@ -139,7 +130,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("rating_description", locale), icon: StarIcon, preset: { - headline: { default: translate("rating_headline", locale) }, + headline: { default: "" }, scale: "star", range: 5, lowerLabel: { default: translate("rating_lower_label", locale) }, @@ -154,7 +145,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("nps_description", locale), icon: PresentationIcon, preset: { - headline: { default: translate("nps_headline", locale) }, + headline: { default: "" }, lowerLabel: { default: translate("nps_lower_label", locale) }, upperLabel: { default: translate("nps_upper_label", locale) }, buttonLabel: { default: translate("next", locale) }, @@ -168,28 +159,16 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ icon: ListOrderedIcon, preset: { headline: { - default: translate("ranking_headline", locale), + default: "", }, choices: [ { id: createId(), - label: { default: translate("ranking_option_1", locale) }, + label: { default: "" }, }, { id: createId(), - label: { default: translate("ranking_option_2", locale) }, - }, - { - id: createId(), - label: { default: translate("ranking_option_3", locale) }, - }, - { - id: createId(), - label: { default: translate("ranking_option_4", locale) }, - }, - { - id: createId(), - label: { default: translate("ranking_option_5", locale) }, + label: { default: "" }, }, ], buttonLabel: { default: translate("next", locale) }, @@ -203,19 +182,10 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ icon: Grid3X3Icon, preset: { headline: { - default: translate("matrix_headline", locale), + default: "", }, - rows: [ - { default: translate("matrix_row_1", locale) }, - { default: translate("matrix_row_2", locale) }, - { default: translate("matrix_row_3", locale) }, - ], - columns: [ - { default: translate("matrix_column_1", locale) }, - { default: translate("matrix_column_2", locale) }, - { default: translate("matrix_column_3", locale) }, - { default: translate("matrix_column_4", locale) }, - ], + rows: [{ default: "" }, { default: "" }], + columns: [{ default: "" }, { default: "" }], buttonLabel: { default: translate("next", locale) }, backButtonLabel: { default: translate("back", locale) }, } as Partial, @@ -226,9 +196,9 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("cta_description", locale), icon: MousePointerClickIcon, preset: { - headline: { default: translate("cta_headline", locale) }, + headline: { default: "" }, html: { - default: translate("cta_html", locale), + default: "", }, buttonLabel: { default: translate("book_interview", locale) }, buttonExternal: false, @@ -242,9 +212,9 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("consent_description", locale), icon: CheckIcon, preset: { - headline: { default: translate("consent_headline", locale) }, + headline: { default: "" }, html: { default: "" }, - label: { default: translate("consent_label", locale) }, + label: { default: "" }, buttonLabel: { default: translate("next", locale) }, backButtonLabel: { default: translate("back", locale) }, } as Partial, @@ -255,7 +225,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("file_upload_description", locale), icon: ArrowUpFromLineIcon, preset: { - headline: { default: translate("file_upload_headline", locale) }, + headline: { default: "" }, allowMultipleFiles: false, buttonLabel: { default: translate("next", locale) }, backButtonLabel: { default: translate("back", locale) }, @@ -267,7 +237,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("date_description", locale), icon: CalendarDaysIcon, preset: { - headline: { default: translate("date_headline", locale) }, + headline: { default: "" }, format: "M-d-y", buttonLabel: { default: translate("next", locale) }, backButtonLabel: { default: translate("back", locale) }, @@ -279,7 +249,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("schedule_a_meeting_description", locale), icon: PhoneIcon, preset: { - headline: { default: translate("schedule_a_meeting_headline", locale) }, + headline: { default: "" }, calUserName: "rick/get-rick-rolled", buttonLabel: { default: translate("next", locale) }, backButtonLabel: { default: translate("back", locale) }, @@ -291,7 +261,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("address_description", locale), icon: HomeIcon, preset: { - headline: { default: translate("address_headline", locale) }, + headline: { default: "" }, addressLine1: { show: true, required: true }, addressLine2: { show: true, required: true }, city: { show: true, required: true }, @@ -308,7 +278,7 @@ export const getQuestionTypes = (locale: string): TQuestion[] => [ description: translate("contact_info_description", locale), icon: ContactIcon, preset: { - headline: { default: translate("contact_info_headline", locale) }, + headline: { default: "" }, firstName: { show: true, required: true }, lastName: { show: true, required: true }, email: { show: true, required: true }, diff --git a/packages/surveys/src/components/questions/picture-selection-question.tsx b/packages/surveys/src/components/questions/picture-selection-question.tsx index 3403a59b43..b30898b70f 100644 --- a/packages/surveys/src/components/questions/picture-selection-question.tsx +++ b/packages/surveys/src/components/questions/picture-selection-question.tsx @@ -8,6 +8,7 @@ import { getUpdatedTtc, useTtc } from "@/lib/ttc"; import { cn } from "@/lib/utils"; import { useEffect, useState } from "preact/hooks"; import { getLocalizedValue } from "@formbricks/lib/i18n/utils"; +import { getOriginalFileNameFromUrl } from "@formbricks/lib/storage/utils"; import { type TResponseData, type TResponseTtc } from "@formbricks/types/responses"; import type { TSurveyPictureSelectionQuestion, TSurveyQuestionId } from "@formbricks/types/surveys/types"; @@ -138,7 +139,7 @@ export function PictureSelectionQuestion({ {choice.imageUrl.split("/").pop()}