fix: remove default values for new questions added (#4450)

Co-authored-by: Matti Nannt <mail@matthiasnannt.com>
Co-authored-by: Dhruwang <dhruwangjariwala18@gmail.com>
Co-authored-by: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com>
This commit is contained in:
Johannes
2024-12-22 23:39:52 -08:00
committed by GitHub
parent 9b8112b478
commit 843fed5ffd
10 changed files with 186 additions and 193 deletions

View File

@@ -594,6 +594,7 @@ export const QuestionFormInput = ({
ref={inputRef}
onBlur={onBlur}
maxLength={maxLength ?? undefined}
autoFocus={id === "headline"}
isInvalid={
isInvalid &&
text[usedLanguageCode]?.trim() === "" &&

View File

@@ -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();

View File

@@ -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

View File

@@ -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",
},

View File

@@ -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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span>Wir würden gerne dein Nutzererlebnis besser verstehen. Deine Einblicke helfen uns sehr.</span></p>",
"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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span style=\"white-space: pre-wrap;\">Hey 👋</span><br><br><span style=\"white-space: pre-wrap;\">Danke, dass du dir die Zeit genommen hast zu antworten. Wir melden uns bald bei dir.</span><br><br><span style=\"white-space: pre-wrap;\">Hab noch einen schönen Tag!</span></p>",
"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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span>Wir haben bemerkt, dass Du unsere Seite verlässt, ohne einen Kauf zu tätigen. Wir würden gerne verstehen, warum.</span></p>",

View File

@@ -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 companys 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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span>We would love to understand your user experience better. Sharing your insight helps a lot.</span></p>",
"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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span style=\"white-space: pre-wrap;\">Hey 👋</span><br><br><span style=\"white-space: pre-wrap;\">Thanks for taking the time to respond, we will be in touch shortly.</span><br><br><span style=\"white-space: pre-wrap;\">Have a great day!</span></p>",
"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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span>We noticed you're leaving our site without making a purchase. We would love to understand why.</span></p>",

View File

@@ -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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span>Nous aimerions mieux comprendre votre expérience utilisateur. Partager vos idées nous aide beaucoup.</span></p>",
"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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span style=\"white-space: pre-wrap;\">Salut 👋</span><br><br><span style=\"white-space: pre-wrap;\">Merci d'avoir pris le temps de répondre, nous vous contacterons sous peu.</span><br><br><span style=\"white-space: pre-wrap;\">Passez une excellente journée !</span></p>",
"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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span>Nous avons remarqué que vous quittez notre site sans effectuer d'achat. Nous aimerions comprendre pourquoi.</span></p>",

View File

@@ -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": "<p class=\"fb-editor-paragraph\" dir=\"ltr\"><span style=\"white-space: pre-wrap;\">Oi 👋</span><br><br><span style=\"white-space: pre-wrap;\">Valeu por tirar um tempinho pra responder. A gente vai entrar em contato em breve.</span><br><br><span style=\"white-space: pre-wrap;\">Tenha um ótimo dia!</span></p>",
"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.",

View File

@@ -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<TSurveyPictureSelectionQuestion>,
@@ -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<TSurveyMatrixQuestion>,
@@ -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<TSurveyConsentQuestion>,
@@ -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 },

View File

@@ -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({
<img
src={choice.imageUrl}
id={choice.id}
alt={choice.imageUrl.split("/").pop()}
alt={getOriginalFileNameFromUrl(choice.imageUrl)}
className="fb-h-full fb-w-full fb-object-cover"
/>
<a