Skip to content

Commit f2be457

Browse files
committed
feat: introduce questionnaires select component
1 parent a8ef43a commit f2be457

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { Checkbox, Table } from "@quassel/ui";
2+
import { components } from "../api.gen";
3+
4+
type QuestionnairesSelectProps = {
5+
value: number[];
6+
onChange: (participantIds: number[]) => void;
7+
questionnaires: components["schemas"]["QuestionnaireResponseDto"][];
8+
};
9+
10+
export function QuestionnairesSelect({ questionnaires, value, onChange }: QuestionnairesSelectProps) {
11+
return (
12+
<Table>
13+
<Table.Caption>Questionnaires</Table.Caption>
14+
<Table.Thead>
15+
<Table.Tr>
16+
<Table.Th></Table.Th>
17+
<Table.Th>Id</Table.Th>
18+
<Table.Th>Title</Table.Th>
19+
</Table.Tr>
20+
</Table.Thead>
21+
<Table.Tbody>
22+
{questionnaires?.map((q) => (
23+
<Table.Tr key={q.id}>
24+
<Table.Td>
25+
<Checkbox
26+
aria-label="Select row"
27+
checked={value.includes(q.id)}
28+
onChange={(event) => onChange(event.currentTarget.checked ? [...value, q.id] : value.filter((id) => id !== q.id))}
29+
/>
30+
</Table.Td>
31+
<Table.Td>{q.id}</Table.Td>
32+
<Table.Td>{q.title}</Table.Td>
33+
</Table.Tr>
34+
))}
35+
</Table.Tbody>
36+
</Table>
37+
);
38+
}

0 commit comments

Comments
 (0)