diff --git a/web-citizen-reporting/web-citizen-reporting-template/src/pages/ReportingFormsList.tsx b/web-citizen-reporting/web-citizen-reporting-template/src/pages/ReportingFormsList.tsx index 7ffbdc2a3..41ce99a5a 100644 --- a/web-citizen-reporting/web-citizen-reporting-template/src/pages/ReportingFormsList.tsx +++ b/web-citizen-reporting/web-citizen-reporting-template/src/pages/ReportingFormsList.tsx @@ -1,23 +1,53 @@ import { Button } from "@/components/ui/button"; -import { useForms } from "@/queries/use-forms"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { formsOptions } from "@/queries/use-forms"; +import { useSuspenseQuery } from "@tanstack/react-query"; import { Link } from "@tanstack/react-router"; function ReportingFormsList() { - const { data: forms } = useForms(); + const { data: forms } = useSuspenseQuery(formsOptions()); + + const sortedForms = [...forms].sort( + (a, b) => a.displayOrder - b.displayOrder + ); return ( - <> - {forms?.map((form) => ( -
- {form.name[form.defaultLanguage]} - -
+
+ {sortedForms.map((form) => ( + + + {form.icon && ( +
+ )} + + {form.name[form.defaultLanguage]} + + + +
+

+ {form.description[form.defaultLanguage]} +

+
+ {form.numberOfQuestions} questions +
+
+ + +
+ ))} - +
); } diff --git a/web-citizen-reporting/web-citizen-reporting-template/src/routes/forms/index.tsx b/web-citizen-reporting/web-citizen-reporting-template/src/routes/forms/index.tsx index b0686bde9..135669cba 100644 --- a/web-citizen-reporting/web-citizen-reporting-template/src/routes/forms/index.tsx +++ b/web-citizen-reporting/web-citizen-reporting-template/src/routes/forms/index.tsx @@ -1,6 +1,8 @@ import ReportingFormsList from "@/pages/ReportingFormsList"; +import { formsOptions } from "@/queries/use-forms"; import { createFileRoute } from "@tanstack/react-router"; export const Route = createFileRoute("/forms/")({ + loader: (opts) => opts.context.queryClient.ensureQueryData(formsOptions()), component: ReportingFormsList, });