fix: notes not appearing (#3131)

Co-authored-by: Johannes <72809645+jobenjada@users.noreply.github.com>
This commit is contained in:
mdm317
2024-09-18 18:37:36 +09:00
committed by GitHub
parent ebf35ea582
commit 774c6f19a5
4 changed files with 25 additions and 24 deletions

View File

@@ -11,8 +11,8 @@ import { SingleResponseCard } from "@formbricks/ui/SingleResponseCard";
interface ResponseCardModalProps {
responses: TResponse[];
selectedResponse: TResponse | null;
setSelectedResponse: (response: TResponse | null) => void;
selectedResponseId: string | null;
setSelectedResponseId: (id: string | null) => void;
survey: TSurvey;
environment: TEnvironment;
user?: TUser;
@@ -26,8 +26,8 @@ interface ResponseCardModalProps {
export const ResponseCardModal = ({
responses,
selectedResponse,
setSelectedResponse,
selectedResponseId,
setSelectedResponseId,
survey,
environment,
user,
@@ -41,33 +41,33 @@ export const ResponseCardModal = ({
const [currentIndex, setCurrentIndex] = useState<number | null>(null);
useEffect(() => {
if (selectedResponse) {
if (selectedResponseId) {
setOpen(true);
const index = responses.findIndex((response) => response.id === selectedResponse.id);
const index = responses.findIndex((response) => response.id === selectedResponseId);
setCurrentIndex(index);
} else {
setOpen(false);
}
}, [selectedResponse, responses, setOpen]);
}, [selectedResponseId, responses, setOpen]);
const handleNext = () => {
if (currentIndex !== null && currentIndex < responses.length - 1) {
setSelectedResponse(responses[currentIndex + 1]);
setSelectedResponseId(responses[currentIndex + 1].id);
}
};
const handleBack = () => {
if (currentIndex !== null && currentIndex > 0) {
setSelectedResponse(responses[currentIndex - 1]);
setSelectedResponseId(responses[currentIndex - 1].id);
}
};
const handleClose = () => {
setSelectedResponse(null);
setSelectedResponseId(null);
};
// If no response is selected or currentIndex is null, do not render the modal
if (selectedResponse === null || currentIndex === null) return null;
if (selectedResponseId === null || currentIndex === null) return null;
return (
<Modal
@@ -100,7 +100,7 @@ export const ResponseCardModal = ({
</div>
<SingleResponseCard
survey={survey}
response={selectedResponse}
response={responses[currentIndex]}
user={user}
pageType="response"
environment={environment}
@@ -108,7 +108,7 @@ export const ResponseCardModal = ({
isViewer={isViewer}
updateResponse={updateResponse}
deleteResponses={deleteResponses}
setSelectedResponse={setSelectedResponse}
setSelectedResponseId={setSelectedResponseId}
/>
</div>
</div>

View File

@@ -59,7 +59,8 @@ export const ResponseTable = ({
const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});
const [rowSelection, setRowSelection] = useState({});
const [isTableSettingsModalOpen, setIsTableSettingsModalOpen] = useState(false);
const [selectedResponse, setSelectedResponse] = useState<TResponse | null>(null);
const [selectedResponseId, setSelectedResponseId] = useState<string | null>(null);
const selectedResponse = responses?.find((response) => response.id === selectedResponseId) ?? null;
const [isExpanded, setIsExpanded] = useState(false);
const [columnOrder, setColumnOrder] = useState<string[]>([]);
@@ -181,7 +182,7 @@ export const ResponseTable = ({
cell={cell}
row={row}
isExpanded={isExpanded}
setSelectedResponseCard={setSelectedResponse}
setSelectedResponseId={setSelectedResponseId}
responses={responses}
/>
))}
@@ -225,12 +226,12 @@ export const ResponseTable = ({
isViewer={isViewer}
updateResponse={updateResponse}
deleteResponses={deleteResponses}
setSelectedResponse={setSelectedResponse}
selectedResponse={selectedResponse}
setSelectedResponseId={setSelectedResponseId}
selectedResponseId={selectedResponseId}
open={selectedResponse !== null}
setOpen={(open) => {
if (!open) {
setSelectedResponse(null);
setSelectedResponseId(null);
}
}}
/>

View File

@@ -9,7 +9,7 @@ interface ResponseTableCellProps {
cell: Cell<TResponseTableData, unknown>;
row: Row<TResponseTableData>;
isExpanded: boolean;
setSelectedResponseCard: (responseCard: TResponse) => void;
setSelectedResponseId: (responseId: string | null) => void;
responses: TResponse[] | null;
}
@@ -17,14 +17,14 @@ export const ResponseTableCell = ({
cell,
row,
isExpanded,
setSelectedResponseCard,
setSelectedResponseId,
responses,
}: ResponseTableCellProps) => {
// Function to handle cell click
const handleCellClick = () => {
if (cell.column.id !== "select") {
const response = responses?.find((response) => response.id === row.id);
if (response) setSelectedResponseCard(response);
if (response) setSelectedResponseId(response.id);
}
};

View File

@@ -28,7 +28,7 @@ interface SingleResponseCardProps {
updateResponse?: (responseId: string, responses: TResponse) => void;
deleteResponses?: (responseIds: string[]) => void;
isViewer: boolean;
setSelectedResponse?: (response: TResponse | null) => void;
setSelectedResponseId?: (responseId: string | null) => void;
}
export const SingleResponseCard = ({
@@ -41,7 +41,7 @@ export const SingleResponseCard = ({
updateResponse,
deleteResponses,
isViewer,
setSelectedResponse,
setSelectedResponseId,
}: SingleResponseCardProps) => {
const environmentId = survey.environmentId;
const router = useRouter();
@@ -95,7 +95,7 @@ export const SingleResponseCard = ({
await deleteResponseAction({ responseId: response.id });
deleteResponses?.([response.id]);
router.refresh();
if (setSelectedResponse) setSelectedResponse(null);
if (setSelectedResponseId) setSelectedResponseId(null);
toast.success("Response deleted successfully.");
setDeleteDialogOpen(false);
} catch (error) {