diff --git a/frontend/components/tables/tutorials-table/edit-tutorials-table.tsx b/frontend/components/tables/tutorials-table/edit-tutorials-table.tsx index e945718..ecff220 100644 --- a/frontend/components/tables/tutorials-table/edit-tutorials-table.tsx +++ b/frontend/components/tables/tutorials-table/edit-tutorials-table.tsx @@ -10,13 +10,19 @@ import { TutorialAvailabilitysQueryVariables, User, } from "@/lib/gql/generated/graphql"; -import {Info, MessageCircleQuestionMark, Plus, Save, SquareMinus} from "lucide-react"; +import { + Info, + MessageCircleQuestionMark, + Plus, + Save, + SquareMinus, +} from "lucide-react"; import { getClient } from "@/lib/graphql"; import React, { useEffect, useState } from "react"; import { Table, TableBody, TableCell, TableRow } from "../../ui/table"; import { TutorSelection } from "./tutor-selection"; import { RoomSelection } from "./room-selection"; -import {useUser} from "@/components/provider/user-provider"; +import { useUser } from "@/components/provider/user-provider"; import { Tooltip, TooltipContent, @@ -75,13 +81,27 @@ export function EditTutorialsTable({ vars ); - setAvailableTutors( - eventData.events[0].tutorsAvailable?.map((t) => ({ + const newAvailableTutors: User[] = [ + ...(eventData.events[0].tutorsAvailable?.map((t) => ({ ...defaultUser, ...t, - })) ?? [] + })) ?? []), + + ...(eventData.events[0].tutorials?.flatMap( + (tutorial) => + tutorial.tutors?.map((tutor) => ({ + ...defaultUser, + ...tutor, + })) ?? [] + ) ?? []), + ]; + + const uniqueTutors = Array.from( + new Map(newAvailableTutors.map((tutor) => [tutor.ID, tutor])).values() ); + setAvailableTutors(uniqueTutors); + setAvailableRooms( eventData.events[0].roomsAvailable?.map((r) => ({ ...defaultRoom, diff --git a/frontend/lib/gql/queries/events.graphql b/frontend/lib/gql/queries/events.graphql index d3359df..928db47 100644 --- a/frontend/lib/gql/queries/events.graphql +++ b/frontend/lib/gql/queries/events.graphql @@ -165,6 +165,14 @@ query eventCloseup($id: Int!) { query tutorialAvailabilitys($id: Int!) { events(id: [$id]) { + tutorials { + tutors { + ID + fn + sn + mail + } + } tutorsAvailable { ID mail