diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseCardModal.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseCardModal.tsx index 2acfd22090..c2550f87f0 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseCardModal.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseCardModal.tsx @@ -20,6 +20,8 @@ interface ResponseCardModalProps { updateResponse: (responseId: string, updatedResponse: TResponse) => void; deleteResponses: (responseIds: string[]) => void; isViewer: boolean; + open: boolean; + setOpen: React.Dispatch>; } export const ResponseCardModal = ({ @@ -33,9 +35,11 @@ export const ResponseCardModal = ({ updateResponse, deleteResponses, isViewer, + open, + setOpen, }: ResponseCardModalProps) => { const [currentIndex, setCurrentIndex] = useState(null); - const [open, setOpen] = useState(selectedResponse !== null); + useEffect(() => { if (selectedResponse) { setOpen(true); @@ -44,7 +48,7 @@ export const ResponseCardModal = ({ } else { setOpen(false); } - }, [selectedResponse, responses]); + }, [selectedResponse, responses, setOpen]); const handleNext = () => { if (currentIndex !== null && currentIndex < responses.length - 1) { diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTable.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTable.tsx index f036ba1e04..6a8c77f52f 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTable.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTable.tsx @@ -226,6 +226,12 @@ export const ResponseTable = ({ deleteResponses={deleteResponses} setSelectedResponse={setSelectedResponse} selectedResponse={selectedResponse} + open={selectedResponse !== null} + setOpen={(open) => { + if (!open) { + setSelectedResponse(null); + } + }} /> )} diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx index a78b842255..3dbc59a8f9 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx @@ -193,8 +193,8 @@ export const generateColumns = ( const tagsColumn: ColumnDef = { accessorKey: "tags", header: "Tags", - cell: ({ getValue }) => { - const tags = getValue(); // Get the ISO date string + cell: ({ row }) => { + const tags = row.original.tags; if (Array.isArray(tags)) { const tagsArray = tags.map((tag) => tag.name); return ( @@ -211,8 +211,8 @@ export const generateColumns = ( const notesColumn: ColumnDef = { accessorKey: "notes", header: "Notes", - cell: ({ getValue }) => { - const notes = getValue(); + cell: ({ row }) => { + const notes = row.original.notes; if (Array.isArray(notes)) { const notesArray = notes.map((note) => note.text); return processResponseData(notesArray); @@ -232,8 +232,8 @@ export const generateColumns = ( {hiddenFieldId} ), - cell: ({ getValue }) => { - const hiddenFieldResponse = getValue(); + cell: ({ row }) => { + const hiddenFieldResponse = row.original.responseData[hiddenFieldId]; if (typeof hiddenFieldResponse === "string") { return
{hiddenFieldResponse}
; }