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