Skip to content

Commit 745040a

Browse files
committed
feat: introduce questionnaire completed page
1 parent e55d3b3 commit 745040a

File tree

5 files changed

+66
-69
lines changed

5 files changed

+66
-69
lines changed

apps/frontend/src/routeTree.gen.ts

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { Route as AuthAdministrationExportIndexImport } from "./routes/_auth/adm
3535
import { Route as AuthAdministrationCarersIndexImport } from "./routes/_auth/administration/carers/index";
3636
import { Route as AuthQuestionnaireQuestionnaireParticipantImport } from "./routes/_auth/questionnaire/_questionnaire/participant";
3737
import { Route as AuthQuestionnaireQuestionnaireNewImport } from "./routes/_auth/questionnaire/_questionnaire/new";
38+
import { Route as AuthQuestionnaireQuestionnaireCompletedImport } from "./routes/_auth/questionnaire/_questionnaire/completed";
3839
import { Route as AuthAdministrationUsersNewImport } from "./routes/_auth/administration/users/new";
3940
import { Route as AuthAdministrationStudiesNewImport } from "./routes/_auth/administration/studies/new";
4041
import { Route as AuthAdministrationParticipantsNewImport } from "./routes/_auth/administration/participants/new";
@@ -43,7 +44,6 @@ import { Route as AuthAdministrationLanguagesNewImport } from "./routes/_auth/ad
4344
import { Route as AuthAdministrationCarersNewImport } from "./routes/_auth/administration/carers/new";
4445
import { Route as AuthQuestionnaireQuestionnaireIdRemarksImport } from "./routes/_auth/questionnaire/_questionnaire/$id/remarks";
4546
import { Route as AuthQuestionnaireQuestionnaireIdPeriodImport } from "./routes/_auth/questionnaire/_questionnaire/$id/period";
46-
import { Route as AuthQuestionnaireQuestionnaireIdOverviewImport } from "./routes/_auth/questionnaire/_questionnaire/$id/overview";
4747
import { Route as AuthQuestionnaireQuestionnaireIdEntriesImport } from "./routes/_auth/questionnaire/_questionnaire/$id/entries";
4848
import { Route as AuthAdministrationUsersEditIdImport } from "./routes/_auth/administration/users/edit.$id";
4949
import { Route as AuthAdministrationStudiesEditIdImport } from "./routes/_auth/administration/studies/edit.$id";
@@ -209,6 +209,13 @@ const AuthQuestionnaireQuestionnaireNewRoute =
209209
getParentRoute: () => AuthQuestionnaireQuestionnaireRoute,
210210
} as any);
211211

212+
const AuthQuestionnaireQuestionnaireCompletedRoute =
213+
AuthQuestionnaireQuestionnaireCompletedImport.update({
214+
id: "/completed",
215+
path: "/completed",
216+
getParentRoute: () => AuthQuestionnaireQuestionnaireRoute,
217+
} as any);
218+
212219
const AuthAdministrationUsersNewRoute = AuthAdministrationUsersNewImport.update(
213220
{
214221
id: "/new",
@@ -266,13 +273,6 @@ const AuthQuestionnaireQuestionnaireIdPeriodRoute =
266273
getParentRoute: () => AuthQuestionnaireQuestionnaireRoute,
267274
} as any);
268275

269-
const AuthQuestionnaireQuestionnaireIdOverviewRoute =
270-
AuthQuestionnaireQuestionnaireIdOverviewImport.update({
271-
id: "/$id/overview",
272-
path: "/$id/overview",
273-
getParentRoute: () => AuthQuestionnaireQuestionnaireRoute,
274-
} as any);
275-
276276
const AuthQuestionnaireQuestionnaireIdEntriesRoute =
277277
AuthQuestionnaireQuestionnaireIdEntriesImport.update({
278278
id: "/$id/entries",
@@ -473,6 +473,13 @@ declare module "@tanstack/react-router" {
473473
preLoaderRoute: typeof AuthAdministrationUsersNewImport;
474474
parentRoute: typeof AuthAdministrationUsersImport;
475475
};
476+
"/_auth/questionnaire/_questionnaire/completed": {
477+
id: "/_auth/questionnaire/_questionnaire/completed";
478+
path: "/completed";
479+
fullPath: "/questionnaire/completed";
480+
preLoaderRoute: typeof AuthQuestionnaireQuestionnaireCompletedImport;
481+
parentRoute: typeof AuthQuestionnaireQuestionnaireImport;
482+
};
476483
"/_auth/questionnaire/_questionnaire/new": {
477484
id: "/_auth/questionnaire/_questionnaire/new";
478485
path: "/new";
@@ -585,13 +592,6 @@ declare module "@tanstack/react-router" {
585592
preLoaderRoute: typeof AuthQuestionnaireQuestionnaireIdEntriesImport;
586593
parentRoute: typeof AuthQuestionnaireQuestionnaireImport;
587594
};
588-
"/_auth/questionnaire/_questionnaire/$id/overview": {
589-
id: "/_auth/questionnaire/_questionnaire/$id/overview";
590-
path: "/$id/overview";
591-
fullPath: "/questionnaire/$id/overview";
592-
preLoaderRoute: typeof AuthQuestionnaireQuestionnaireIdOverviewImport;
593-
parentRoute: typeof AuthQuestionnaireQuestionnaireImport;
594-
};
595595
"/_auth/questionnaire/_questionnaire/$id/period": {
596596
id: "/_auth/questionnaire/_questionnaire/$id/period";
597597
path: "/$id/period";
@@ -770,24 +770,24 @@ const AuthAdministrationRouteWithChildren =
770770
AuthAdministrationRoute._addFileChildren(AuthAdministrationRouteChildren);
771771

772772
interface AuthQuestionnaireQuestionnaireRouteChildren {
773+
AuthQuestionnaireQuestionnaireCompletedRoute: typeof AuthQuestionnaireQuestionnaireCompletedRoute;
773774
AuthQuestionnaireQuestionnaireNewRoute: typeof AuthQuestionnaireQuestionnaireNewRoute;
774775
AuthQuestionnaireQuestionnaireParticipantRoute: typeof AuthQuestionnaireQuestionnaireParticipantRoute;
775776
AuthQuestionnaireQuestionnaireIdEntriesRoute: typeof AuthQuestionnaireQuestionnaireIdEntriesRoute;
776-
AuthQuestionnaireQuestionnaireIdOverviewRoute: typeof AuthQuestionnaireQuestionnaireIdOverviewRoute;
777777
AuthQuestionnaireQuestionnaireIdPeriodRoute: typeof AuthQuestionnaireQuestionnaireIdPeriodRoute;
778778
AuthQuestionnaireQuestionnaireIdRemarksRoute: typeof AuthQuestionnaireQuestionnaireIdRemarksRoute;
779779
}
780780

781781
const AuthQuestionnaireQuestionnaireRouteChildren: AuthQuestionnaireQuestionnaireRouteChildren =
782782
{
783+
AuthQuestionnaireQuestionnaireCompletedRoute:
784+
AuthQuestionnaireQuestionnaireCompletedRoute,
783785
AuthQuestionnaireQuestionnaireNewRoute:
784786
AuthQuestionnaireQuestionnaireNewRoute,
785787
AuthQuestionnaireQuestionnaireParticipantRoute:
786788
AuthQuestionnaireQuestionnaireParticipantRoute,
787789
AuthQuestionnaireQuestionnaireIdEntriesRoute:
788790
AuthQuestionnaireQuestionnaireIdEntriesRoute,
789-
AuthQuestionnaireQuestionnaireIdOverviewRoute:
790-
AuthQuestionnaireQuestionnaireIdOverviewRoute,
791791
AuthQuestionnaireQuestionnaireIdPeriodRoute:
792792
AuthQuestionnaireQuestionnaireIdPeriodRoute,
793793
AuthQuestionnaireQuestionnaireIdRemarksRoute:
@@ -848,6 +848,7 @@ export interface FileRoutesByFullPath {
848848
"/administration/participants/new": typeof AuthAdministrationParticipantsNewRoute;
849849
"/administration/studies/new": typeof AuthAdministrationStudiesNewRoute;
850850
"/administration/users/new": typeof AuthAdministrationUsersNewRoute;
851+
"/questionnaire/completed": typeof AuthQuestionnaireQuestionnaireCompletedRoute;
851852
"/questionnaire/new": typeof AuthQuestionnaireQuestionnaireNewRoute;
852853
"/questionnaire/participant": typeof AuthQuestionnaireQuestionnaireParticipantRoute;
853854
"/administration/carers/": typeof AuthAdministrationCarersIndexRoute;
@@ -864,7 +865,6 @@ export interface FileRoutesByFullPath {
864865
"/administration/studies/edit/$id": typeof AuthAdministrationStudiesEditIdRoute;
865866
"/administration/users/edit/$id": typeof AuthAdministrationUsersEditIdRoute;
866867
"/questionnaire/$id/entries": typeof AuthQuestionnaireQuestionnaireIdEntriesRoute;
867-
"/questionnaire/$id/overview": typeof AuthQuestionnaireQuestionnaireIdOverviewRoute;
868868
"/questionnaire/$id/period": typeof AuthQuestionnaireQuestionnaireIdPeriodRoute;
869869
"/questionnaire/$id/remarks": typeof AuthQuestionnaireQuestionnaireIdRemarksRoute;
870870
}
@@ -880,6 +880,7 @@ export interface FileRoutesByTo {
880880
"/administration/participants/new": typeof AuthAdministrationParticipantsNewRoute;
881881
"/administration/studies/new": typeof AuthAdministrationStudiesNewRoute;
882882
"/administration/users/new": typeof AuthAdministrationUsersNewRoute;
883+
"/questionnaire/completed": typeof AuthQuestionnaireQuestionnaireCompletedRoute;
883884
"/questionnaire/new": typeof AuthQuestionnaireQuestionnaireNewRoute;
884885
"/questionnaire/participant": typeof AuthQuestionnaireQuestionnaireParticipantRoute;
885886
"/administration/carers": typeof AuthAdministrationCarersIndexRoute;
@@ -896,7 +897,6 @@ export interface FileRoutesByTo {
896897
"/administration/studies/edit/$id": typeof AuthAdministrationStudiesEditIdRoute;
897898
"/administration/users/edit/$id": typeof AuthAdministrationUsersEditIdRoute;
898899
"/questionnaire/$id/entries": typeof AuthQuestionnaireQuestionnaireIdEntriesRoute;
899-
"/questionnaire/$id/overview": typeof AuthQuestionnaireQuestionnaireIdOverviewRoute;
900900
"/questionnaire/$id/period": typeof AuthQuestionnaireQuestionnaireIdPeriodRoute;
901901
"/questionnaire/$id/remarks": typeof AuthQuestionnaireQuestionnaireIdRemarksRoute;
902902
}
@@ -924,6 +924,7 @@ export interface FileRoutesById {
924924
"/_auth/administration/participants/new": typeof AuthAdministrationParticipantsNewRoute;
925925
"/_auth/administration/studies/new": typeof AuthAdministrationStudiesNewRoute;
926926
"/_auth/administration/users/new": typeof AuthAdministrationUsersNewRoute;
927+
"/_auth/questionnaire/_questionnaire/completed": typeof AuthQuestionnaireQuestionnaireCompletedRoute;
927928
"/_auth/questionnaire/_questionnaire/new": typeof AuthQuestionnaireQuestionnaireNewRoute;
928929
"/_auth/questionnaire/_questionnaire/participant": typeof AuthQuestionnaireQuestionnaireParticipantRoute;
929930
"/_auth/administration/carers/": typeof AuthAdministrationCarersIndexRoute;
@@ -940,7 +941,6 @@ export interface FileRoutesById {
940941
"/_auth/administration/studies/edit/$id": typeof AuthAdministrationStudiesEditIdRoute;
941942
"/_auth/administration/users/edit/$id": typeof AuthAdministrationUsersEditIdRoute;
942943
"/_auth/questionnaire/_questionnaire/$id/entries": typeof AuthQuestionnaireQuestionnaireIdEntriesRoute;
943-
"/_auth/questionnaire/_questionnaire/$id/overview": typeof AuthQuestionnaireQuestionnaireIdOverviewRoute;
944944
"/_auth/questionnaire/_questionnaire/$id/period": typeof AuthQuestionnaireQuestionnaireIdPeriodRoute;
945945
"/_auth/questionnaire/_questionnaire/$id/remarks": typeof AuthQuestionnaireQuestionnaireIdRemarksRoute;
946946
}
@@ -968,6 +968,7 @@ export interface FileRouteTypes {
968968
| "/administration/participants/new"
969969
| "/administration/studies/new"
970970
| "/administration/users/new"
971+
| "/questionnaire/completed"
971972
| "/questionnaire/new"
972973
| "/questionnaire/participant"
973974
| "/administration/carers/"
@@ -984,7 +985,6 @@ export interface FileRouteTypes {
984985
| "/administration/studies/edit/$id"
985986
| "/administration/users/edit/$id"
986987
| "/questionnaire/$id/entries"
987-
| "/questionnaire/$id/overview"
988988
| "/questionnaire/$id/period"
989989
| "/questionnaire/$id/remarks";
990990
fileRoutesByTo: FileRoutesByTo;
@@ -999,6 +999,7 @@ export interface FileRouteTypes {
999999
| "/administration/participants/new"
10001000
| "/administration/studies/new"
10011001
| "/administration/users/new"
1002+
| "/questionnaire/completed"
10021003
| "/questionnaire/new"
10031004
| "/questionnaire/participant"
10041005
| "/administration/carers"
@@ -1015,7 +1016,6 @@ export interface FileRouteTypes {
10151016
| "/administration/studies/edit/$id"
10161017
| "/administration/users/edit/$id"
10171018
| "/questionnaire/$id/entries"
1018-
| "/questionnaire/$id/overview"
10191019
| "/questionnaire/$id/period"
10201020
| "/questionnaire/$id/remarks";
10211021
id:
@@ -1041,6 +1041,7 @@ export interface FileRouteTypes {
10411041
| "/_auth/administration/participants/new"
10421042
| "/_auth/administration/studies/new"
10431043
| "/_auth/administration/users/new"
1044+
| "/_auth/questionnaire/_questionnaire/completed"
10441045
| "/_auth/questionnaire/_questionnaire/new"
10451046
| "/_auth/questionnaire/_questionnaire/participant"
10461047
| "/_auth/administration/carers/"
@@ -1057,7 +1058,6 @@ export interface FileRouteTypes {
10571058
| "/_auth/administration/studies/edit/$id"
10581059
| "/_auth/administration/users/edit/$id"
10591060
| "/_auth/questionnaire/_questionnaire/$id/entries"
1060-
| "/_auth/questionnaire/_questionnaire/$id/overview"
10611061
| "/_auth/questionnaire/_questionnaire/$id/period"
10621062
| "/_auth/questionnaire/_questionnaire/$id/remarks";
10631063
fileRoutesById: FileRoutesById;
@@ -1189,10 +1189,10 @@ export const routeTree = rootRoute
11891189
"filePath": "_auth/questionnaire/_questionnaire.tsx",
11901190
"parent": "/_auth/questionnaire",
11911191
"children": [
1192+
"/_auth/questionnaire/_questionnaire/completed",
11921193
"/_auth/questionnaire/_questionnaire/new",
11931194
"/_auth/questionnaire/_questionnaire/participant",
11941195
"/_auth/questionnaire/_questionnaire/$id/entries",
1195-
"/_auth/questionnaire/_questionnaire/$id/overview",
11961196
"/_auth/questionnaire/_questionnaire/$id/period",
11971197
"/_auth/questionnaire/_questionnaire/$id/remarks"
11981198
]
@@ -1229,6 +1229,10 @@ export const routeTree = rootRoute
12291229
"filePath": "_auth/administration/users/new.tsx",
12301230
"parent": "/_auth/administration/users"
12311231
},
1232+
"/_auth/questionnaire/_questionnaire/completed": {
1233+
"filePath": "_auth/questionnaire/_questionnaire/completed.tsx",
1234+
"parent": "/_auth/questionnaire/_questionnaire"
1235+
},
12321236
"/_auth/questionnaire/_questionnaire/new": {
12331237
"filePath": "_auth/questionnaire/_questionnaire/new.tsx",
12341238
"parent": "/_auth/questionnaire/_questionnaire"
@@ -1293,10 +1297,6 @@ export const routeTree = rootRoute
12931297
"filePath": "_auth/questionnaire/_questionnaire/$id/entries.tsx",
12941298
"parent": "/_auth/questionnaire/_questionnaire"
12951299
},
1296-
"/_auth/questionnaire/_questionnaire/$id/overview": {
1297-
"filePath": "_auth/questionnaire/_questionnaire/$id/overview.tsx",
1298-
"parent": "/_auth/questionnaire/_questionnaire"
1299-
},
13001300
"/_auth/questionnaire/_questionnaire/$id/period": {
13011301
"filePath": "_auth/questionnaire/_questionnaire/$id/period.tsx",
13021302
"parent": "/_auth/questionnaire/_questionnaire"

apps/frontend/src/routes/_auth/questionnaire/_questionnaire/$id/overview.tsx

Lines changed: 0 additions & 38 deletions
This file was deleted.

apps/frontend/src/routes/_auth/questionnaire/_questionnaire/$id/remarks.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function QuestionnaireRemarks() {
5050
await onSave({ ...values, completedAt: new Date().toISOString() });
5151

5252
if (isSameOrAfter(new Date(Date.parse(questionnaire.endedAt)), new Date(), "month")) {
53-
n({ to: "/questionnaire/$id/overview", params: p });
53+
n({ to: "/questionnaire/completed" });
5454
} else {
5555
await c.invalidateQueries(
5656
$api.queryOptions("get", "/participants/{id}", { params: { path: { id: questionnaire.participant.id.toString() } } })
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { Button, Stack, Title } from "@quassel/ui";
2+
import { createFileRoute, useNavigate } from "@tanstack/react-router";
3+
import { i18n } from "../../../../stores/i18n";
4+
import { useStore } from "@nanostores/react";
5+
import { $questionnaire } from "../../../../stores/questionnaire";
6+
7+
export const messages = i18n("questionnaireOverview", {
8+
title: "Thanks for submitting the questionnaire!",
9+
closeAction: "Close",
10+
});
11+
12+
function QuestionnaireOverview() {
13+
const n = useNavigate();
14+
const t = useStore(messages);
15+
16+
const handleClose = () => {
17+
$questionnaire.set(undefined);
18+
19+
n({ to: "/questionnaire" });
20+
};
21+
22+
return (
23+
<Stack align="flex-start">
24+
<Title order={2}>{t.title}</Title>
25+
<Button onClick={handleClose}>{t.closeAction}</Button>
26+
</Stack>
27+
);
28+
}
29+
30+
export const Route = createFileRoute("/_auth/questionnaire/_questionnaire/completed")({
31+
component: QuestionnaireOverview,
32+
});

apps/frontend/src/routes/_auth/questionnaire/_questionnaire/participant.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ function QuestionnaireParticipant() {
2626
if (!latestQuestionnaire || latestQuestionnaire.completedAt) {
2727
n({ to: "/questionnaire/new" });
2828
} else {
29-
n({ to: "/questionnaire/$id/entries", params: { id: latestQuestionnaire.id.toString() } });
29+
n({
30+
to: "/questionnaire/$id/entries",
31+
params: { id: latestQuestionnaire.id.toString() },
32+
});
3033
}
3134
};
3235

0 commit comments

Comments
 (0)