From d204134129f62ac722ceec8581f8f7de4da24435 Mon Sep 17 00:00:00 2001 From: Henri Date: Thu, 7 Dec 2023 12:56:58 +0100 Subject: [PATCH 01/15] Add dependabot.yml to check for updates --- .github/dependabot.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..d202a332d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every week + interval: "weekly" From 38e4253ed0b25f30f3f8cd55474dfe69f59f527e Mon Sep 17 00:00:00 2001 From: Henri Date: Thu, 7 Dec 2023 13:02:27 +0100 Subject: [PATCH 02/15] Use own target branch for dependabot --- .github/dependabot.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d202a332d..aff8749a4 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,3 +5,4 @@ updates: schedule: # Check for updates to GitHub Actions every week interval: "weekly" + target-branch: "dependabot" From 74a0b101fbc94a84b7e80c16def4c7013f75c9b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:02:38 +0100 Subject: [PATCH 03/15] Bump docker/build-push-action from 3 to 5 (#60) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-app.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-app.yml b/.github/workflows/deploy-app.yml index 0218a75c1..7bc7a3958 100644 --- a/.github/workflows/deploy-app.yml +++ b/.github/workflows/deploy-app.yml @@ -68,7 +68,7 @@ jobs: uses: docker/setup-buildx-action@v2 - name: Build app image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: file: ./docker/app/Dockerfile push: false @@ -78,7 +78,7 @@ jobs: tags: public.ecr.aws/n0p8j4k5/trassenscout/app:${{ github.sha }} - name: Build nginx image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: ./docker/nginx push: false From d5fec6937369daf857d89c88b4958271be562c04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:02:57 +0100 Subject: [PATCH 04/15] Bump aws-actions/configure-aws-credentials from 1 to 4 (#62) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-app.yml b/.github/workflows/deploy-app.yml index 7bc7a3958..9eff265b0 100644 --- a/.github/workflows/deploy-app.yml +++ b/.github/workflows/deploy-app.yml @@ -58,7 +58,7 @@ jobs: sudo chmod +x /usr/local/bin/lightsailctl - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 + uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} From c0060ccdaa9ec194c568d99406d1e8d695784fef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:03:13 +0100 Subject: [PATCH 05/15] Bump docker/setup-buildx-action from 2 to 3 (#63) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-app.yml b/.github/workflows/deploy-app.yml index 9eff265b0..e6870c5ca 100644 --- a/.github/workflows/deploy-app.yml +++ b/.github/workflows/deploy-app.yml @@ -65,7 +65,7 @@ jobs: aws-region: eu-central-1 - name: Setup buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Build app image uses: docker/build-push-action@v5 From 9681a5241e51c47c13bf88b28ec9c015e4eeafdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:03:17 +0100 Subject: [PATCH 06/15] Bump actions/checkout from 3 to 4 (#61) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-app.yml b/.github/workflows/deploy-app.yml index e6870c5ca..941a1e871 100644 --- a/.github/workflows/deploy-app.yml +++ b/.github/workflows/deploy-app.yml @@ -47,7 +47,7 @@ jobs: build-push-deploy-docker-images: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Upgrade AWS CLI version and setup lightsailctl run: | From ed067c7394f2231ebe9253b83a204846ca8e117d Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:02:57 +0100 Subject: [PATCH 07/15] Dashboard: disable data refetch, when window regains focus to keep map zoom state --- src/pages/[projectSlug]/index.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/pages/[projectSlug]/index.tsx b/src/pages/[projectSlug]/index.tsx index 45ec3cb09..4ae932c83 100644 --- a/src/pages/[projectSlug]/index.tsx +++ b/src/pages/[projectSlug]/index.tsx @@ -22,7 +22,14 @@ import getSubsections from "src/subsections/queries/getSubsections" export const ProjectDashboardWithQuery = () => { const projectSlug = useParam("projectSlug", "string") const [project] = useQuery(getProject, { slug: projectSlug }) - const [{ subsections }] = useQuery(getSubsections, { projectSlug: projectSlug! }) + const [{ subsections }] = useQuery( + getSubsections, + { projectSlug: projectSlug! }, + { + // This ensures the query does not refresh when the window regains focus https://blitzjs.com/docs/query-usage + refetchOnWindowFocus: false, + }, + ) // We use the URL param `operator` to filter the UI // Docs: https://blitzjs.com/docs/route-params-query#use-router-query From b694b780d1d2045c5f16bb3dfba80b21a408c774 Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:40:05 +0100 Subject: [PATCH 08/15] Dashboard: show FallbackMap in case operator has no subsections --- src/core/components/Map/BaseMap.tsx | 4 ++-- .../components/Map/ProjectMapFallback.tsx | 22 +++++++++++++++++++ src/pages/[projectSlug]/index.tsx | 7 +++++- 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/core/components/Map/ProjectMapFallback.tsx diff --git a/src/core/components/Map/BaseMap.tsx b/src/core/components/Map/BaseMap.tsx index 778a146c7..c5eea943e 100644 --- a/src/core/components/Map/BaseMap.tsx +++ b/src/core/components/Map/BaseMap.tsx @@ -50,9 +50,9 @@ export type BaseMapProps = Required> & Point, { subsectionSlug: string; subsubsectionSlug?: string; color: string; opacity?: number } > - dots: [number, number][] + dots?: [number, number][] classHeight?: string - children: React.ReactNode + children?: React.ReactNode } export const BaseMap: React.FC = ({ diff --git a/src/core/components/Map/ProjectMapFallback.tsx b/src/core/components/Map/ProjectMapFallback.tsx new file mode 100644 index 000000000..e6ef19b89 --- /dev/null +++ b/src/core/components/Map/ProjectMapFallback.tsx @@ -0,0 +1,22 @@ +import { SubsectionWithPosition } from "src/subsections/queries/getSubsection" +import { BaseMap } from "./BaseMap" +import { subsectionsBbox } from "./utils" + +type Props = { subsections: SubsectionWithPosition[] } + +export const ProjectMapFallback: React.FC = ({ subsections }) => { + return ( +
+ +
+ Noch keine Planungsabschnitte angelegt +
+
+ ) +} diff --git a/src/pages/[projectSlug]/index.tsx b/src/pages/[projectSlug]/index.tsx index 4ae932c83..bd46322f7 100644 --- a/src/pages/[projectSlug]/index.tsx +++ b/src/pages/[projectSlug]/index.tsx @@ -6,6 +6,7 @@ import { CalenderDashboard } from "src/calendar-entries/components" import { SuperAdminLogData } from "src/core/components/AdminBox/SuperAdminLogData" import { Breadcrumb } from "src/core/components/Breadcrumb/Breadcrumb" import { ProjectMap } from "src/core/components/Map/ProjectMap" +import { ProjectMapFallback } from "src/core/components/Map/ProjectMapFallback" import { Markdown } from "src/core/components/Markdown/Markdown" import { Spinner } from "src/core/components/Spinner" import { Link } from "src/core/components/links" @@ -81,7 +82,11 @@ export const ProjectDashboardWithQuery = () => { - + {Boolean(filteredSubsections.length) ? ( + + ) : ( + + )} From d0fd423ef724b9b63f5675244caa8a6b355e22ad Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:33:26 +0100 Subject: [PATCH 09/15] Dashboard: disable subsections filter to keep map zoom --- src/pages/[projectSlug]/index.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/pages/[projectSlug]/index.tsx b/src/pages/[projectSlug]/index.tsx index bd46322f7..9471824a9 100644 --- a/src/pages/[projectSlug]/index.tsx +++ b/src/pages/[projectSlug]/index.tsx @@ -1,6 +1,6 @@ import { BlitzPage, Routes, useParam, useRouterQuery } from "@blitzjs/next" import { useQuery } from "@blitzjs/rpc" -import { Suspense } from "react" +import { Suspense, useEffect, useState } from "react" import { MapProvider } from "react-map-gl" import { CalenderDashboard } from "src/calendar-entries/components" import { SuperAdminLogData } from "src/core/components/AdminBox/SuperAdminLogData" @@ -31,15 +31,19 @@ export const ProjectDashboardWithQuery = () => { refetchOnWindowFocus: false, }, ) - // We use the URL param `operator` to filter the UI // Docs: https://blitzjs.com/docs/route-params-query#use-router-query const params = useRouterQuery() - const filteredSubsections = params.operator - ? subsections.filter( - (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, - ) - : subsections + const [filteredSubsections, setFilteredSubsections] = useState(subsections) + + useEffect(() => { + const newFilteredSubsections = params.operator + ? subsections.filter( + (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, + ) + : subsections + setFilteredSubsections(newFilteredSubsections) + }, [params.operator, subsections]) if (!subsections.length) { return ( @@ -81,6 +85,7 @@ export const ProjectDashboardWithQuery = () => { )} + {Boolean(filteredSubsections.length) ? ( From 6a1bdc313e8646f2fb025b88d6e2aa1d809be19f Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Wed, 13 Dec 2023 09:12:02 +0100 Subject: [PATCH 10/15] Dashboard: replace useEffect with useMemo --- src/pages/[projectSlug]/index.tsx | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/pages/[projectSlug]/index.tsx b/src/pages/[projectSlug]/index.tsx index 9471824a9..6408a3103 100644 --- a/src/pages/[projectSlug]/index.tsx +++ b/src/pages/[projectSlug]/index.tsx @@ -1,6 +1,6 @@ import { BlitzPage, Routes, useParam, useRouterQuery } from "@blitzjs/next" import { useQuery } from "@blitzjs/rpc" -import { Suspense, useEffect, useState } from "react" +import { Suspense, useMemo } from "react" import { MapProvider } from "react-map-gl" import { CalenderDashboard } from "src/calendar-entries/components" import { SuperAdminLogData } from "src/core/components/AdminBox/SuperAdminLogData" @@ -34,16 +34,19 @@ export const ProjectDashboardWithQuery = () => { // We use the URL param `operator` to filter the UI // Docs: https://blitzjs.com/docs/route-params-query#use-router-query const params = useRouterQuery() - const [filteredSubsections, setFilteredSubsections] = useState(subsections) - useEffect(() => { - const newFilteredSubsections = params.operator + const filteredSubsections = useMemo(() => { + return params.operator ? subsections.filter( (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, ) : subsections - setFilteredSubsections(newFilteredSubsections) }, [params.operator, subsections]) + // const filteredSubsections = params.operator + // ? subsections.filter( + // (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, + // ) + // : subsections if (!subsections.length) { return ( @@ -86,13 +89,13 @@ export const ProjectDashboardWithQuery = () => { - - {Boolean(filteredSubsections.length) ? ( + {Boolean(filteredSubsections.length) ? ( + - ) : ( - - )} - + + ) : ( + + )} From 253ca2e91bc4d6936abf3557753d5579aae0fb93 Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Tue, 12 Dec 2023 10:27:32 +0100 Subject: [PATCH 11/15] clean up --- src/subsections/components/SubsectionTable.tsx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/subsections/components/SubsectionTable.tsx b/src/subsections/components/SubsectionTable.tsx index 0b4366b96..85d9827cb 100644 --- a/src/subsections/components/SubsectionTable.tsx +++ b/src/subsections/components/SubsectionTable.tsx @@ -1,16 +1,14 @@ import { Routes } from "@blitzjs/next" -import { Subsection } from "@prisma/client" +import clsx from "clsx" import { useRouter } from "next/router" +import { SubsectionIcon } from "src/core/components/Map/Icons" import { TableWrapper } from "src/core/components/Table/TableWrapper" import { Link } from "src/core/components/links" -import { useSlugs } from "src/core/hooks" -import { SubsectionIcon } from "src/core/components/Map/Icons" -import { startEnd } from "src/core/components/text/startEnd" import { longTitle, shortTitle } from "src/core/components/text" -import { Prettify } from "src/core/types" -import { SubsectionWithPosition } from "../queries/getSubsection" +import { startEnd } from "src/core/components/text/startEnd" +import { useSlugs } from "src/core/hooks" import { StakeholderSummary } from "src/stakeholdernotes/components/StakeholderSummary" -import clsx from "clsx" +import { SubsectionWithPosition } from "../queries/getSubsection" type Props = { subsections: SubsectionWithPosition[] From 32ef7b66edfb6c809eaf7999ed7785155a3d62c4 Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Tue, 12 Dec 2023 13:29:15 +0100 Subject: [PATCH 12/15] Map: disable Mapbox RTLTextPlugin --- src/core/components/Map/BaseMap.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/components/Map/BaseMap.tsx b/src/core/components/Map/BaseMap.tsx index c5eea943e..6fce3c11a 100644 --- a/src/core/components/Map/BaseMap.tsx +++ b/src/core/components/Map/BaseMap.tsx @@ -176,6 +176,8 @@ export const BaseMap: React.FC = ({ .flat() .filter(Boolean)} hash={hash || false} + // @ts-expect-error: See https://github.com/visgl/react-map-gl/issues/2310 + RTLTextPlugin={null} > From cccea1334eed8b4d1637941bda343b0264e3e9d4 Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:02:58 +0100 Subject: [PATCH 13/15] Dashboard: refactor avoid map fitbounds on every render --- src/core/components/Map/ProjectMap.tsx | 23 ++++++++++++++++++----- src/pages/[projectSlug]/index.tsx | 26 ++++++-------------------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/core/components/Map/ProjectMap.tsx b/src/core/components/Map/ProjectMap.tsx index a00a8c60c..3ccd8e941 100644 --- a/src/core/components/Map/ProjectMap.tsx +++ b/src/core/components/Map/ProjectMap.tsx @@ -1,10 +1,11 @@ import { Routes, useParam } from "@blitzjs/next" import { lineString } from "@turf/helpers" import { along, featureCollection, length } from "@turf/turf" -import { LngLatBoundsLike } from "maplibre-gl" + import { useRouter } from "next/router" -import React, { useEffect, useState } from "react" +import React, { useEffect, useMemo, useState } from "react" import { + LngLatBoundsLike, MapEvent, MapLayerMouseEvent, Marker, @@ -27,9 +28,21 @@ export const ProjectMap: React.FC = ({ subsections }) => { const projectSlug = useParam("projectSlug", "string") const { mainMap } = useMap() + // bundingBox only changes when subsections change / subsections array is created + const boundingBox = useMemo(() => { + return subsectionsBbox(subsections) as LngLatBoundsLike + }, [subsections]) + + // we do not want to fitBounds everytime the subsections array is created (tanstack query refetches subsections on window focus) + // we could disable refetchOnWindowFocus, in [projectId]/index.tsx with {refetchOnWindowFocus: false} https://blitzjs.com/docs/query-usage + // but then we would not get the latest data when the user comes back to the page + + // we spread boundingBox in the dependency array to make sure the effect runs when the values of boundingBox change (not everytime the array is created) useEffect(() => { - mainMap?.fitBounds(subsectionsBbox(subsections) as LngLatBoundsLike, { padding: 60 }) - }, [mainMap, subsections]) + // @ts-expect-error + mainMap?.fitBounds(boundingBox, { padding: 60 }) + // @ts-expect-error + }, [mainMap, ...boundingBox]) type HandleSelectProps = { subsectionSlug: string; edit: boolean } const handleSelect = ({ subsectionSlug, edit }: HandleSelectProps) => { @@ -117,7 +130,7 @@ export const ProjectMap: React.FC = ({ subsections }) => { { const projectSlug = useParam("projectSlug", "string") const [project] = useQuery(getProject, { slug: projectSlug }) - const [{ subsections }] = useQuery( - getSubsections, - { projectSlug: projectSlug! }, - { - // This ensures the query does not refresh when the window regains focus https://blitzjs.com/docs/query-usage - refetchOnWindowFocus: false, - }, - ) + const [{ subsections }] = useQuery(getSubsections, { projectSlug: projectSlug! }) // We use the URL param `operator` to filter the UI // Docs: https://blitzjs.com/docs/route-params-query#use-router-query const params = useRouterQuery() - const filteredSubsections = useMemo(() => { - return params.operator - ? subsections.filter( - (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, - ) - : subsections - }, [params.operator, subsections]) - // const filteredSubsections = params.operator - // ? subsections.filter( - // (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, - // ) - // : subsections + const filteredSubsections = params.operator + ? subsections.filter( + (sec) => typeof params.operator === "string" && sec.operator?.slug === params.operator, + ) + : subsections if (!subsections.length) { return ( From e4e68213266b7770d4a5f09462193e42ab393c47 Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:39:50 +0100 Subject: [PATCH 14/15] Map: disable Mapbox RTLTextPlugin --- src/core/components/forms/LabeledGeometryFieldPreview.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/components/forms/LabeledGeometryFieldPreview.tsx b/src/core/components/forms/LabeledGeometryFieldPreview.tsx index 1773b7143..6b405aa55 100644 --- a/src/core/components/forms/LabeledGeometryFieldPreview.tsx +++ b/src/core/components/forms/LabeledGeometryFieldPreview.tsx @@ -76,6 +76,8 @@ export const LabeledGeometryFieldPreview: React.FC = ({ name, hasError }) id="preview" mapStyle={vectorStyle} scrollZoom={false} + // @ts-expect-error: See https://github.com/visgl/react-map-gl/issues/2310 + RTLTextPlugin={null} > From 5905fdff7cec28f18fb7d57d2abad5032fe0c739 Mon Sep 17 00:00:00 2001 From: JohannaPeanut <76495099+JohannaPeanut@users.noreply.github.com> Date: Thu, 14 Dec 2023 10:48:17 +0100 Subject: [PATCH 15/15] clean up --- src/pages/api/survey/[surveyId]/results.ts | 1 - src/subsections/mutations/updateSubsectionsWithFeltData.ts | 3 +-- .../components/feedback/EditableSurveyResponseForm.tsx | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/pages/api/survey/[surveyId]/results.ts b/src/pages/api/survey/[surveyId]/results.ts index 983e68e89..5aa8fa898 100644 --- a/src/pages/api/survey/[surveyId]/results.ts +++ b/src/pages/api/survey/[surveyId]/results.ts @@ -29,7 +29,6 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) where: { surveyId: survey.id }, include: { responses: true }, }) - console.log("surveySessions", surveySessions) const headers = [ { id: "createdAt", title: "createdAt" }, diff --git a/src/subsections/mutations/updateSubsectionsWithFeltData.ts b/src/subsections/mutations/updateSubsectionsWithFeltData.ts index f1e44a52f..cbe038d58 100644 --- a/src/subsections/mutations/updateSubsectionsWithFeltData.ts +++ b/src/subsections/mutations/updateSubsectionsWithFeltData.ts @@ -1,9 +1,8 @@ import { resolver } from "@blitzjs/rpc" import db from "db" import { z } from "zod" -import { SubsectionWithPosition } from "../queries/getSubsection" -import { FeltApiResponseSchema, SubsectionSchema } from "../schema" import { multilinestringToLinestring } from "../components/utils/multilinestringToLinestring" +import { FeltApiResponseSchema, SubsectionSchema } from "../schema" const UpdateSubsectionsWithFeltDataSchema = z.object({ subsections: z.array( diff --git a/src/survey-responses/components/feedback/EditableSurveyResponseForm.tsx b/src/survey-responses/components/feedback/EditableSurveyResponseForm.tsx index d1155f2b2..2365beb80 100644 --- a/src/survey-responses/components/feedback/EditableSurveyResponseForm.tsx +++ b/src/survey-responses/components/feedback/EditableSurveyResponseForm.tsx @@ -70,7 +70,6 @@ export function EditableSurveyResponseForm>({ }) const handleSubmit = async (values: any) => { - console.log("handleSubmit", { values }) try { await updateSurveyResponseMutation({ id: response.id,