From 6a6e213b3ef3e28ca1904a341269d4d3b7aa8213 Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Thu, 27 Nov 2025 15:06:13 +0530 Subject: [PATCH 1/2] fix: mqp code cleanup (#6884) --- .../components/ResponseFilterContext.tsx | 18 +- .../components/AddIntegrationModal.tsx | 42 +-- .../airtable/components/ManageIntegration.tsx | 4 +- .../integrations/airtable/lib/types.ts | 2 +- .../components/AddIntegrationModal.tsx | 30 +- .../components/ManageIntegration.tsx | 2 +- .../notion/components/AddIntegrationModal.tsx | 85 ++--- .../components/AddChannelMappingModal.tsx | 48 +-- .../slack/components/ManageIntegration.tsx | 2 +- .../responses/components/ResponseDataView.tsx | 11 +- .../components/ResponseTableColumns.tsx | 81 +++-- .../summary/components/AddressSummary.tsx | 10 +- .../summary/components/CTASummary.tsx | 26 +- .../summary/components/CalSummary.tsx | 24 +- .../summary/components/ConsentSummary.tsx | 28 +- .../summary/components/ContactInfoSummary.tsx | 10 +- ...tionSummary.tsx => DateElementSummary.tsx} | 21 +- ...aryHeader.tsx => ElementSummaryHeader.tsx} | 22 +- .../summary/components/FileUploadSummary.tsx | 14 +- .../components/HiddenFieldsSummary.tsx | 16 +- ...onSummary.tsx => MatrixElementSummary.tsx} | 30 +- .../components/MultipleChoiceSummary.tsx | 39 +-- .../summary/components/NPSSummary.tsx | 30 +- .../summary/components/OpenTextSummary.tsx | 14 +- .../components/PictureChoiceSummary.tsx | 34 +- .../summary/components/RankingSummary.tsx | 12 +- .../summary/components/RatingSummary.tsx | 42 +-- .../summary/components/SummaryDropOffs.tsx | 10 +- .../summary/components/SummaryList.tsx | 126 ++++---- .../summary/lib/surveySummary.test.ts | 224 ++++++------- .../(analysis)/summary/lib/surveySummary.ts | 253 ++++++++------- .../(analysis)/summary/lib/utils.ts | 19 +- .../[surveyId]/components/CustomFilter.tsx | 4 +- ...ComboBox.tsx => ElementFilterComboBox.tsx} | 22 +- ...tionsComboBox.tsx => ElementsComboBox.tsx} | 32 +- .../[surveyId]/components/ResponseFilter.tsx | 76 ++--- .../pipeline/lib/handleIntegrations.test.ts | 42 ++- .../pipeline/lib/handleIntegrations.ts | 111 ++++--- .../responses/[responseId]/route.ts | 2 +- .../client/[environmentId]/responses/route.ts | 2 +- apps/web/app/lib/surveys/surveys.test.ts | 158 ++++----- apps/web/app/lib/surveys/surveys.ts | 188 ++++++----- apps/web/lib/airtable/service.ts | 12 +- apps/web/lib/googleSheet/service.ts | 21 +- apps/web/lib/integration/service.test.ts | 4 +- apps/web/lib/response/service.ts | 16 +- .../lib/response/tests/__mocks__/data.mock.ts | 6 +- apps/web/lib/response/utils.test.ts | 2 +- apps/web/lib/response/utils.ts | 111 ++++--- apps/web/lib/responses.test.ts | 26 +- apps/web/lib/responses.ts | 37 +-- apps/web/lib/slack/service.ts | 8 +- apps/web/lib/survey/utils.ts | 16 +- apps/web/lib/surveyLogic/utils.test.ts | 2 +- apps/web/lib/surveyLogic/utils.ts | 44 +-- .../{QuestionSkip.tsx => ElementSkip.tsx} | 40 +-- .../components/RenderResponse.tsx | 23 +- .../components/SingleResponseCardBody.tsx | 24 +- .../api/v2/lib/{question.ts => element.ts} | 0 .../{question.test.ts => element.test.ts} | 2 +- .../responses/[responseId]/route.ts | 2 +- .../api/v2/management/responses/route.ts | 2 +- .../components/localized-editor.tsx | 38 +-- .../components/multi-language-card.tsx | 18 +- .../components/secondary-language-select.tsx | 8 +- ...on-header.tsx => email-element-header.tsx} | 4 +- .../components/preview-email-template.tsx | 30 +- .../emails/survey/response-finished-email.tsx | 14 +- .../components/fallback-input.tsx | 0 .../components/multi-lang-wrapper.tsx | 0 .../components/recall-item-select.tsx | 62 ++-- .../components/recall-wrapper.tsx | 16 +- .../index.tsx | 177 ++++++----- .../utils.test.ts | 0 .../utils.ts | 0 ...tion-button.tsx => add-element-button.tsx} | 44 +-- ...on.tsx => add-element-to-block-button.tsx} | 48 +-- ...tion-form.tsx => address-element-form.tsx} | 89 +++--- .../editor/components/advanced-settings.tsx | 36 +-- .../survey/editor/components/block-card.tsx | 294 ++++++++--------- .../editor/components/block-settings.tsx | 14 +- .../editor/components/blocks-droppable.tsx | 54 ++-- ...question-form.tsx => cal-element-form.tsx} | 62 ++-- ...tion-form.tsx => consent-element-form.tsx} | 40 +-- ...form.tsx => contact-info-element-form.tsx} | 80 ++--- ...question-form.tsx => cta-element-form.tsx} | 60 ++-- ...uestion-form.tsx => date-element-form.tsx} | 52 +-- .../editor/components/edit-ending-card.tsx | 21 +- .../editor/components/edit-welcome-card.tsx | 30 +- .../editor/components/editor-card-menu.tsx | 64 ++-- ...n-choice.tsx => element-option-choice.tsx} | 40 +-- .../{questions-view.tsx => elements-view.tsx} | 300 +++++++++--------- .../editor/components/end-screen-form.tsx | 18 +- ...-form.tsx => file-upload-element-form.tsx} | 72 ++--- .../editor/components/hidden-fields-card.tsx | 36 +-- ...stion-form.tsx => matrix-element-form.tsx} | 116 +++---- .../components/matrix-sortable-item.tsx | 12 +- ...m.tsx => multiple-choice-element-form.tsx} | 132 ++++---- ...question-form.tsx => nps-element-form.tsx} | 66 ++-- ...uestion-form.tsx => open-element-form.tsx} | 104 +++--- .../survey/editor/components/option-ids.tsx | 10 +- .../components/picture-selection-form.tsx | 62 ++-- ...tion-form.tsx => ranking-element-form.tsx} | 102 +++--- ...stion-form.tsx => rating-element-form.tsx} | 82 +++-- .../editor/components/redirect-url-form.tsx | 4 +- .../editor/components/survey-editor-tabs.tsx | 4 +- .../editor/components/survey-editor.tsx | 30 +- .../editor/components/survey-menu-bar.tsx | 20 +- .../components/survey-variables-card-item.tsx | 18 +- .../components/survey-variables-card.tsx | 16 +- ...-question-id.tsx => update-element-id.tsx} | 40 +-- .../editor/lib/logic-rule-engine.test.ts | 38 +-- .../survey/editor/lib/logic-rule-engine.ts | 42 +-- apps/web/modules/survey/editor/lib/utils.tsx | 154 +++++---- .../follow-ups/components/follow-up-email.tsx | 16 +- .../follow-ups/components/follow-up-modal.tsx | 47 +-- .../lib/{questions.tsx => elements.tsx} | 40 +-- .../components/template-container.tsx | 6 +- .../components/editor/components/editor.tsx | 10 +- .../editor/components/recall-plugin.tsx | 8 +- .../index.tsx | 28 +- .../ui/components/options-switch/index.tsx | 4 +- .../ui/components/preview-survey/index.tsx | 52 +-- .../shuffle-option-select/index.tsx | 12 +- .../address-element.tsx} | 88 ++--- .../cal-element.tsx} | 48 +-- .../consent-element.tsx} | 66 ++-- .../contact-info-element.tsx} | 70 ++-- .../cta-element.tsx} | 48 +-- .../date-element.tsx} | 46 +-- .../file-upload-element.tsx} | 50 +-- .../matrix-element.tsx} | 76 ++--- .../multiple-choice-multi-element.tsx} | 117 ++++--- .../multiple-choice-single-element.tsx} | 111 ++++--- .../nps-element.tsx} | 52 +-- .../open-text-element.tsx} | 96 +++--- .../picture-selection-element.tsx} | 62 ++-- .../ranking-element.tsx} | 74 ++--- .../rating-element.tsx} | 69 ++-- .../src/components/general/cal-embed.tsx | 10 +- .../general/element-conditional.tsx | 124 ++++---- .../{question-media.tsx => element-media.tsx} | 4 +- .../src/components/general/ending-card.tsx | 12 +- .../src/components/general/headline.tsx | 6 +- .../src/components/general/subheader.tsx | 6 +- .../src/components/general/welcome-card.tsx | 4 +- packages/types/integration/index.ts | 4 +- packages/types/integration/notion.ts | 8 +- packages/types/integration/shared-types.ts | 6 +- packages/types/surveys/types.ts | 168 ++++++++-- packages/types/surveys/validation.ts | 14 +- 151 files changed, 3475 insertions(+), 3424 deletions(-) rename apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/{DateQuestionSummary.tsx => DateElementSummary.tsx} (86%) rename apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/{QuestionSummaryHeader.tsx => ElementSummaryHeader.tsx} (68%) rename apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/{MatrixQuestionSummary.tsx => MatrixElementSummary.tsx} (77%) rename apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/components/{QuestionFilterComboBox.tsx => ElementFilterComboBox.tsx} (93%) rename apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/components/{QuestionsComboBox.tsx => ElementsComboBox.tsx} (90%) rename apps/web/modules/analysis/components/SingleResponseCard/components/{QuestionSkip.tsx => ElementSkip.tsx} (83%) rename apps/web/modules/api/v2/lib/{question.ts => element.ts} (100%) rename apps/web/modules/api/v2/lib/tests/{question.test.ts => element.test.ts} (99%) rename apps/web/modules/email/components/{email-question-header.tsx => email-element-header.tsx} (80%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/components/fallback-input.tsx (100%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/components/multi-lang-wrapper.tsx (100%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/components/recall-item-select.tsx (76%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/components/recall-wrapper.tsx (95%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/index.tsx (80%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/utils.test.ts (100%) rename apps/web/modules/survey/components/{question-form-input => element-form-input}/utils.ts (100%) rename apps/web/modules/survey/editor/components/{add-question-button.tsx => add-element-button.tsx} (67%) rename apps/web/modules/survey/editor/components/{add-question-to-block-button.tsx => add-element-to-block-button.tsx} (66%) rename apps/web/modules/survey/editor/components/{address-question-form.tsx => address-element-form.tsx} (67%) rename apps/web/modules/survey/editor/components/{cal-question-form.tsx => cal-element-form.tsx} (72%) rename apps/web/modules/survey/editor/components/{consent-question-form.tsx => consent-element-form.tsx} (63%) rename apps/web/modules/survey/editor/components/{contact-info-question-form.tsx => contact-info-element-form.tsx} (67%) rename apps/web/modules/survey/editor/components/{cta-question-form.tsx => cta-element-form.tsx} (68%) rename apps/web/modules/survey/editor/components/{date-question-form.tsx => date-element-form.tsx} (71%) rename apps/web/modules/survey/editor/components/{question-option-choice.tsx => element-option-choice.tsx} (85%) rename apps/web/modules/survey/editor/components/{questions-view.tsx => elements-view.tsx} (75%) rename apps/web/modules/survey/editor/components/{file-upload-question-form.tsx => file-upload-element-form.tsx} (82%) rename apps/web/modules/survey/editor/components/{matrix-question-form.tsx => matrix-element-form.tsx} (75%) rename apps/web/modules/survey/editor/components/{multiple-choice-question-form.tsx => multiple-choice-element-form.tsx} (71%) rename apps/web/modules/survey/editor/components/{nps-question-form.tsx => nps-element-form.tsx} (71%) rename apps/web/modules/survey/editor/components/{open-question-form.tsx => open-element-form.tsx} (74%) rename apps/web/modules/survey/editor/components/{ranking-question-form.tsx => ranking-element-form.tsx} (68%) rename apps/web/modules/survey/editor/components/{rating-question-form.tsx => rating-element-form.tsx} (74%) rename apps/web/modules/survey/editor/components/{update-question-id.tsx => update-element-id.tsx} (69%) rename apps/web/modules/survey/lib/{questions.tsx => elements.tsx} (86%) rename apps/web/modules/ui/components/{question-toggle-table => element-toggle-table}/index.tsx (88%) rename packages/surveys/src/components/{questions/address-question.tsx => elements/address-element.tsx} (61%) rename packages/surveys/src/components/{questions/cal-question.tsx => elements/cal-element.tsx} (52%) rename packages/surveys/src/components/{questions/consent-question.tsx => elements/consent-element.tsx} (56%) rename packages/surveys/src/components/{questions/contact-info-question.tsx => elements/contact-info-element.tsx} (64%) rename packages/surveys/src/components/{questions/cta-question.tsx => elements/cta-element.tsx} (60%) rename packages/surveys/src/components/{questions/date-question.tsx => elements/date-element.tsx} (88%) rename packages/surveys/src/components/{questions/file-upload-question.tsx => elements/file-upload-element.tsx} (55%) rename packages/surveys/src/components/{questions/matrix-question.tsx => elements/matrix-element.tsx} (71%) rename packages/surveys/src/components/{questions/multiple-choice-multi-question.tsx => elements/multiple-choice-multi-element.tsx} (78%) rename packages/surveys/src/components/{questions/multiple-choice-single-question.tsx => elements/multiple-choice-single-element.tsx} (75%) rename packages/surveys/src/components/{questions/nps-question.tsx => elements/nps-element.tsx} (75%) rename packages/surveys/src/components/{questions/open-text-question.tsx => elements/open-text-element.tsx} (61%) rename packages/surveys/src/components/{questions/picture-selection-question.tsx => elements/picture-selection-element.tsx} (81%) rename packages/surveys/src/components/{questions/ranking-question.tsx => elements/ranking-element.tsx} (80%) rename packages/surveys/src/components/{questions/rating-question.tsx => elements/rating-element.tsx} (86%) rename packages/surveys/src/components/general/{question-media.tsx => element-media.tsx} (96%) diff --git a/apps/web/app/(app)/environments/[environmentId]/components/ResponseFilterContext.tsx b/apps/web/app/(app)/environments/[environmentId]/components/ResponseFilterContext.tsx index 99e2f29a69..91e3f2b7f8 100644 --- a/apps/web/app/(app)/environments/[environmentId]/components/ResponseFilterContext.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/components/ResponseFilterContext.tsx @@ -2,14 +2,14 @@ import React, { createContext, useCallback, useContext, useState } from "react"; import { - QuestionOption, - QuestionOptions, -} from "@/app/(app)/environments/[environmentId]/surveys/[surveyId]/components/QuestionsComboBox"; -import { QuestionFilterOptions } from "@/app/(app)/environments/[environmentId]/surveys/[surveyId]/components/ResponseFilter"; + ElementOption, + ElementOptions, +} from "@/app/(app)/environments/[environmentId]/surveys/[surveyId]/components/ElementsComboBox"; +import { ElementFilterOptions } from "@/app/(app)/environments/[environmentId]/surveys/[surveyId]/components/ResponseFilter"; import { getTodayDate } from "@/app/lib/surveys/surveys"; export interface FilterValue { - questionType: Partial; + elementType: Partial; filterType: { filterValue: string | undefined; filterComboBoxValue: string | string[] | undefined; @@ -24,8 +24,8 @@ export interface SelectedFilterValue { } interface SelectedFilterOptions { - questionOptions: QuestionOptions[]; - questionFilterOptions: QuestionFilterOptions[]; + elementOptions: ElementOptions[]; + elementFilterOptions: ElementFilterOptions[]; } export interface DateRange { @@ -53,8 +53,8 @@ const ResponseFilterProvider = ({ children }: { children: React.ReactNode }) => }); // state holds all the options of the responses fetched const [selectedOptions, setSelectedOptions] = useState({ - questionFilterOptions: [], - questionOptions: [], + elementFilterOptions: [], + elementOptions: [], }); const [dateRange, setDateRange] = useState({ diff --git a/apps/web/app/(app)/environments/[environmentId]/project/integrations/airtable/components/AddIntegrationModal.tsx b/apps/web/app/(app)/environments/[environmentId]/project/integrations/airtable/components/AddIntegrationModal.tsx index 08a0460dcb..2c0524747c 100644 --- a/apps/web/app/(app)/environments/[environmentId]/project/integrations/airtable/components/AddIntegrationModal.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/project/integrations/airtable/components/AddIntegrationModal.tsx @@ -69,10 +69,10 @@ const NoBaseFoundError = () => { ); }; -const renderQuestionSelection = ({ +const renderElementSelection = ({ t, selectedSurvey, - questions, + elements, control, includeVariables, setIncludeVariables, @@ -85,7 +85,7 @@ const renderQuestionSelection = ({ }: { t: TFunction; selectedSurvey: TSurvey; - questions: TSurveyElement[]; + elements: TSurveyElement[]; control: Control; includeVariables: boolean; setIncludeVariables: (value: boolean) => void; @@ -102,29 +102,29 @@ const renderQuestionSelection = ({
- {questions.map((question) => ( + {elements.map((element) => ( (
-