diff --git a/apps/formbricks-com/pages/waitlist.tsx b/apps/formbricks-com/pages/waitlist.tsx
index 5b61a0a851..afe0699193 100644
--- a/apps/formbricks-com/pages/waitlist.tsx
+++ b/apps/formbricks-com/pages/waitlist.tsx
@@ -57,7 +57,7 @@ const WaitlistPage = () => {
formId={
process.env.NODE_ENV === "production"
? "cld37mt2i0000ld08p9q572bc"
- : "cldufl8uh000019mzr7fdotyu"
+ : "cldonm4ra000019axa4oc440z"
}
onPageSubmit={({ page }) => plausible(`waitlistSubmitPage-${page.id}`)}
onFinished={() => plausible("waitlistFinished")}
diff --git a/apps/web/src/components/forms/custom/CustomResults.tsx b/apps/web/src/components/forms/custom/CustomResults.tsx
index bb6272e134..2637267440 100644
--- a/apps/web/src/components/forms/custom/CustomResults.tsx
+++ b/apps/web/src/components/forms/custom/CustomResults.tsx
@@ -17,6 +17,7 @@ export default function PMFResults() {
router.query.formId?.toString()
);
+ const [numTotalSubmissions, setNumTotalSubmissions] = useState(0);
const [filteredSubmissions, setFilteredSubmissions] = useState([]);
if (isLoadingSubmissions) {
@@ -38,9 +39,13 @@ export default function PMFResults() {
+
-
{/* Submission grid */}
diff --git a/apps/web/src/components/forms/custom/OverviewResults.tsx b/apps/web/src/components/forms/custom/OverviewResults.tsx
index a4684ea15c..d7bc77a467 100644
--- a/apps/web/src/components/forms/custom/OverviewResults.tsx
+++ b/apps/web/src/components/forms/custom/OverviewResults.tsx
@@ -22,6 +22,7 @@ export default function OverviewResults() {
router.query.organisationId?.toString(),
router.query.formId?.toString()
);
+ const [numTotalSubmissions, setNumTotalSubmissions] = useState(0);
const [filteredSubmissions, setFilteredSubmissions] = useState([]);
if (isLoadingSubmissions || isLoadingForm) {
@@ -44,9 +45,13 @@ export default function OverviewResults() {
+
-
{/* Submission grid */}
diff --git a/apps/web/src/components/forms/pmf/OverviewResults.tsx b/apps/web/src/components/forms/pmf/OverviewResults.tsx
index ca57543ba1..edf0031818 100644
--- a/apps/web/src/components/forms/pmf/OverviewResults.tsx
+++ b/apps/web/src/components/forms/pmf/OverviewResults.tsx
@@ -22,6 +22,7 @@ export default function OverviewResults() {
router.query.organisationId?.toString(),
router.query.formId?.toString()
);
+ const [numTotalSubmissions, setNumTotalSubmissions] = useState(0);
const [filteredSubmissions, setFilteredSubmissions] = useState([]);
const labelMap = useMemo(() => {
@@ -67,7 +68,11 @@ export default function OverviewResults() {
numFilteredSubmissions={filteredSubmissions.length}
numTotalSubmissions={submissions.length}
/>
-
+
{/* Submission grid */}
diff --git a/apps/web/src/components/forms/pmf/PMFResults.tsx b/apps/web/src/components/forms/pmf/PMFResults.tsx
index 417ee42588..704d8cc2fb 100644
--- a/apps/web/src/components/forms/pmf/PMFResults.tsx
+++ b/apps/web/src/components/forms/pmf/PMFResults.tsx
@@ -16,6 +16,7 @@ export default function PMFResults() {
router.query.organisationId?.toString(),
router.query.formId?.toString()
);
+ const [numTotalSubmissions, setNumTotalSubmissions] = useState(0);
const [filteredSubmissions, setFilteredSubmissions] = useState([]);
@@ -38,9 +39,13 @@ export default function PMFResults() {
+
-
{/* Submission grid */}
diff --git a/apps/web/src/components/forms/shared/FilterNavigation.tsx b/apps/web/src/components/forms/shared/FilterNavigation.tsx
index 25e030488d..cc4c07a617 100644
--- a/apps/web/src/components/forms/shared/FilterNavigation.tsx
+++ b/apps/web/src/components/forms/shared/FilterNavigation.tsx
@@ -24,12 +24,14 @@ interface FilterNavigationProps {
submissions: any[];
setFilteredSubmissions: (submissions: any[]) => void;
limitFields?: string[];
+ setNumTotalSubmissions?: (any?) => void;
}
export default function FilterNavigation({
submissions,
setFilteredSubmissions,
limitFields = null,
+ setNumTotalSubmissions = () => {},
}: FilterNavigationProps) {
const router = useRouter();
const { formId, organisationId } = router.query;
@@ -47,25 +49,23 @@ export default function FilterNavigation({
const archivedSelected = filter.options.find((option) => option.value === "archived")?.active;
if (archivedSelected) {
newFilteredSubmissions = newFilteredSubmissions.filter((submission) => submission.archived);
+ setNumTotalSubmissions([...submissions].filter((s) => s.archived).length);
} else {
newFilteredSubmissions = newFilteredSubmissions.filter((submission) => !submission.archived);
+ setNumTotalSubmissions([...submissions].filter((s) => !s.archived).length);
}
+
continue;
}
const isAllActive = filter.options.find((option) => option.value === "all")?.active;
// no filter is all is selected, if not keep on filtering
if (!isAllActive) {
// filter for all other types
- let pinnedFilterSubmissions = [];
+ let listOfValidFilteredSubmissions = [];
if (filter.type === "radio") {
for (const option of filter.options) {
- if (option.active) {
- newFilteredSubmissions = newFilteredSubmissions.filter((submission) => {
- return submission.data[filter.name] === option.value;
- });
- }
- if (option.pinned) {
- pinnedFilterSubmissions = pinnedFilterSubmissions.concat(
+ if (option.active || option.pinned) {
+ listOfValidFilteredSubmissions.push(
[...newFilteredSubmissions].filter((submission) => {
return submission.data[filter.name] === option.value;
})
@@ -74,30 +74,21 @@ export default function FilterNavigation({
}
} else if (filter.type === "checkbox") {
for (const option of filter.options) {
- if (option.active) {
- newFilteredSubmissions = newFilteredSubmissions.filter((submission) => {
- const value = submission.data[filter.name];
- if (value) {
- return value.includes(option.value);
- }
- });
- }
- if (option.pinned) {
- pinnedFilterSubmissions = pinnedFilterSubmissions.concat(
- [...newFilteredSubmissions].filter((submission) => {
- return submission.data[filter.name] === option.value;
+ if (option.active || option.pinned) {
+ listOfValidFilteredSubmissions.push(
+ newFilteredSubmissions.filter((submission) => {
+ const value = submission.data[filter.name];
+ if (value) {
+ return value.includes(option.value);
+ }
})
);
}
}
}
// add pinned submissions to the top
- newFilteredSubmissions = filterUniqueById(
- pinnedFilterSubmissions.concat(newFilteredSubmissions).sort((a, b) => {
- // sort by date descending
- return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
- })
- );
+ const flattenedListOfValidFilteredSubmissions = listOfValidFilteredSubmissions.flat();
+ newFilteredSubmissions = filterUniqueById(flattenedListOfValidFilteredSubmissions);
}
}
setFilteredSubmissions(newFilteredSubmissions);
diff --git a/apps/web/src/components/forms/shared/SubmissionCounter.tsx b/apps/web/src/components/forms/shared/SubmissionCounter.tsx
index f8e48ca91b..d074e2b28e 100644
--- a/apps/web/src/components/forms/shared/SubmissionCounter.tsx
+++ b/apps/web/src/components/forms/shared/SubmissionCounter.tsx
@@ -1,6 +1,6 @@
export function SubmissionCounter({ numFilteredSubmissions, numTotalSubmissions }) {
return (
-
+
{numFilteredSubmissions} responses