mirror of
https://github.com/formbricks/formbricks.git
synced 2026-01-07 06:12:31 -06:00
fix: Empty survey list state after deleting the last survey.
This commit is contained in:
@@ -60,6 +60,8 @@ describe("SurveyCard", () => {
|
||||
deleteSurvey={mockDeleteSurvey}
|
||||
locale="en-US"
|
||||
publicDomain={WEBAPP_URL}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
// Draft survey => link should point to edit
|
||||
@@ -77,6 +79,8 @@ describe("SurveyCard", () => {
|
||||
deleteSurvey={mockDeleteSurvey}
|
||||
locale="en-US"
|
||||
publicDomain={WEBAPP_URL}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
// When it's read only and draft, we expect no link
|
||||
@@ -94,6 +98,8 @@ describe("SurveyCard", () => {
|
||||
deleteSurvey={mockDeleteSurvey}
|
||||
locale="en-US"
|
||||
publicDomain={WEBAPP_URL}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
// For non-draft => link to summary
|
||||
|
||||
@@ -8,7 +8,7 @@ import { TSurvey } from "@/modules/survey/list/types/surveys";
|
||||
import { SurveyStatusIndicator } from "@/modules/ui/components/survey-status-indicator";
|
||||
import { useTranslate } from "@tolgee/react";
|
||||
import Link from "next/link";
|
||||
import { useMemo } from "react";
|
||||
import React, { SetStateAction, useMemo } from "react";
|
||||
import { TUserLocale } from "@formbricks/types/user";
|
||||
import { SurveyDropDownMenu } from "./survey-dropdown-menu";
|
||||
|
||||
@@ -20,6 +20,8 @@ interface SurveyCardProps {
|
||||
duplicateSurvey: (survey: TSurvey) => void;
|
||||
deleteSurvey: (surveyId: string) => void;
|
||||
locale: TUserLocale;
|
||||
surveyCount: number;
|
||||
setIsFetching: React.Dispatch<SetStateAction<boolean>>;
|
||||
}
|
||||
export const SurveyCard = ({
|
||||
survey,
|
||||
@@ -29,6 +31,8 @@ export const SurveyCard = ({
|
||||
deleteSurvey,
|
||||
duplicateSurvey,
|
||||
locale,
|
||||
surveyCount,
|
||||
setIsFetching,
|
||||
}: SurveyCardProps) => {
|
||||
const { t } = useTranslate();
|
||||
const surveyStatusLabel = (() => {
|
||||
@@ -108,6 +112,8 @@ export const SurveyCard = ({
|
||||
isSurveyCreationDeletionDisabled={isSurveyCreationDeletionDisabled}
|
||||
duplicateSurvey={duplicateSurvey}
|
||||
deleteSurvey={deleteSurvey}
|
||||
surveyCount={surveyCount}
|
||||
setIsFetching={setIsFetching}
|
||||
/>
|
||||
</button>
|
||||
</>
|
||||
|
||||
@@ -63,6 +63,8 @@ describe("SurveyDropDownMenu", () => {
|
||||
refreshSingleUseId={mockRefresh}
|
||||
duplicateSurvey={mockDuplicateSurvey}
|
||||
deleteSurvey={mockDeleteSurvey}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -97,6 +99,8 @@ describe("SurveyDropDownMenu", () => {
|
||||
deleteSurvey={vi.fn()}
|
||||
disabled={false}
|
||||
isSurveyCreationDeletionDisabled={false}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -135,6 +139,8 @@ describe("SurveyDropDownMenu", () => {
|
||||
refreshSingleUseId={vi.fn()}
|
||||
duplicateSurvey={vi.fn()}
|
||||
deleteSurvey={vi.fn()}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -158,6 +164,8 @@ describe("SurveyDropDownMenu", () => {
|
||||
refreshSingleUseId={vi.fn()}
|
||||
duplicateSurvey={vi.fn()}
|
||||
deleteSurvey={vi.fn()}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -184,6 +192,8 @@ describe("SurveyDropDownMenu", () => {
|
||||
refreshSingleUseId={vi.fn()}
|
||||
duplicateSurvey={mockDuplicateSurvey}
|
||||
deleteSurvey={vi.fn()}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -211,6 +221,8 @@ describe("SurveyDropDownMenu", () => {
|
||||
refreshSingleUseId={vi.fn()}
|
||||
duplicateSurvey={mockDuplicateSurvey}
|
||||
deleteSurvey={vi.fn()}
|
||||
surveyCount={1}
|
||||
setIsFetching={vi.fn()}
|
||||
/>
|
||||
);
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import {
|
||||
} from "lucide-react";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { useMemo, useState } from "react";
|
||||
import React, { SetStateAction, useMemo, useState } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
import { CopySurveyModal } from "./copy-survey-modal";
|
||||
|
||||
@@ -43,6 +43,8 @@ interface SurveyDropDownMenuProps {
|
||||
isSurveyCreationDeletionDisabled?: boolean;
|
||||
duplicateSurvey: (survey: TSurvey) => void;
|
||||
deleteSurvey: (surveyId: string) => void;
|
||||
surveyCount: number;
|
||||
setIsFetching: React.Dispatch<SetStateAction<boolean>>;
|
||||
}
|
||||
|
||||
export const SurveyDropDownMenu = ({
|
||||
@@ -54,6 +56,8 @@ export const SurveyDropDownMenu = ({
|
||||
isSurveyCreationDeletionDisabled,
|
||||
deleteSurvey,
|
||||
duplicateSurvey,
|
||||
surveyCount,
|
||||
setIsFetching,
|
||||
}: SurveyDropDownMenuProps) => {
|
||||
const { t } = useTranslate();
|
||||
const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
||||
@@ -70,6 +74,7 @@ export const SurveyDropDownMenu = ({
|
||||
setLoading(true);
|
||||
try {
|
||||
await deleteSurveyAction({ surveyId });
|
||||
if (surveyCount - 1 === 0) setIsFetching(true);
|
||||
deleteSurvey(surveyId);
|
||||
router.refresh();
|
||||
setDeleteDialogOpen(false);
|
||||
|
||||
@@ -160,6 +160,8 @@ export const SurveysList = ({
|
||||
duplicateSurvey={handleDuplicateSurvey}
|
||||
deleteSurvey={handleDeleteSurvey}
|
||||
locale={locale}
|
||||
surveyCount={surveys.length}
|
||||
setIsFetching={setIsFetching}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
|
||||
Reference in New Issue
Block a user