1- import React , { useEffect , useState } from 'react' ;
2- import { MeetingDto } from "../../dtos/MeetingDto" ;
3- import { UserDto } from "../../dtos/UserDto" ;
4- import { getUser } from "../../api/UserApi" ;
5- import { getUserIdsForMeeting , joinStudyGroup , leaveStudyGroup } from "../../api/UserGroupApi" ;
1+ import React , { useEffect , useState } from 'react' ;
2+ import { MeetingDto } from "../../dtos/MeetingDto" ;
3+ import { UserDto } from "../../dtos/UserDto" ;
4+ import { getUser } from "../../api/UserApi" ;
5+ import { getUserIdsForMeeting , joinStudyGroup , leaveStudyGroup } from "../../api/UserGroupApi" ;
66import axiosInstance from "../../AxiosConfig" ;
7- import { CuteButton } from "../CuteButton" ;
8- import { deleteMeeting , updateCreator } from '../../api/MeetingApi' ;
7+ import { CuteButton } from "../CuteButton" ;
8+ import { deleteMeeting , updateCreator } from '../../api/MeetingApi' ;
9+ import { Theme , Tooltip } from "@mui/material" ;
10+ import useMediaQuery from "@mui/material/useMediaQuery" ;
911
1012interface Props {
1113 meeting : MeetingDto ;
1214}
1315
14- export default function MeetingSearchResult ( { meeting } : Props ) {
16+ export default function MeetingSearchResult ( { meeting} : Props ) {
1517 const [ userIds , setUserIds ] = useState < string [ ] > ( [ ] ) ;
1618 const [ myUser , setMyUser ] = useState < UserDto | null > ( null ) ;
1719 const [ loading , setLoading ] = useState < boolean > ( false ) ;
20+ const mdAndUp = useMediaQuery ( ( theme : Theme ) => theme . breakpoints . up ( "md" ) ) ;
1821
1922 useEffect ( ( ) => {
2023 getUser ( axiosInstance )
@@ -64,8 +67,8 @@ export default function MeetingSearchResult({ meeting }: Props) {
6467
6568 return (
6669 < div className = "bg-[#333C4F] p-4 flex flex-col gap-4" >
67- < div >
68- < h2 className = "font-bold text-2xl text-white mb-4" > { meeting . title } </ h2 >
70+ < div className = "min-h-80" >
71+ < h2 className = "font-bold text-2xl text-white mb-4 line-clamp-1 " > { meeting . title } </ h2 >
6972
7073 < div className = "flex flex-col gap-4 mb-4" >
7174 < p className = "text-bs font-medium text-white" >
@@ -88,23 +91,47 @@ export default function MeetingSearchResult({ meeting }: Props) {
8891 minute : '2-digit' ,
8992 } ) }
9093 </ p >
91- < p className = "text-bs font-medium text-white" >
92- < strong className = "text-[#CAE8FF] font-semibold" > Beschreibung:</ strong > { meeting . description }
94+ < p className = "text-bs font-medium text-white break-words whitespace-normal md:line-clamp-2 " >
95+ < strong className = "text-[#CAE8FF] font-semibold " > Beschreibung:</ strong > { meeting . description }
9396 </ p >
94- < p className = "text-bs font-medium text-white" >
97+ < p className = "text-bs font-medium text-white break-words whitespace-normal md:line-clamp-2 " >
9598 < strong className = "text-[#CAE8FF] font-semibold" > Raum:</ strong > { meeting . place }
9699 </ p >
97-
98- < p className = "text-bs font-medium text-white" >
99- < strong className = "text-[#CAE8FF] font-semibold" > Teilnehmer:</ strong >
100- </ p >
101- < ul className = "text-white text-sm list-disc list-inside" >
102- < li key = { meeting . creator } > { meeting . creator } </ li >
103- { userIds . map ( id => (
104- < li key = { id } > { id } </ li >
105- ) ) }
106- { userIds . length === 0 && < li > -</ li > }
107- </ ul >
100+ { mdAndUp ? (
101+ < >
102+ < p className = "text-bs font-medium text-white" >
103+ < strong className = "text-[#CAE8FF] font-semibold" > Creator:</ strong >
104+ </ p >
105+ < Tooltip
106+ title = { < >
107+ < p > Alle Teilnehmenden:</ p >
108+ < ul style = { { margin : 0 , padding : 0 , listStyle : 'inside' } } >
109+ < li key = { meeting . creator } > { meeting . creator } </ li >
110+ { userIds . map ( id => (
111+ < li key = { id } > { id } </ li >
112+ ) ) }
113+
114+ </ ul >
115+ </ > }
116+ >
117+ < ul className = "text-white text-sm list-disc list-inside line-clamp-1" >
118+ < li key = { meeting . creator } > { meeting . creator } </ li >
119+ </ ul >
120+ </ Tooltip >
121+ </ >
122+ ) : (
123+ < >
124+ < p className = "text-bs font-medium text-white" >
125+ < strong className = "text-[#CAE8FF] font-semibold" > Teilnehmende:</ strong >
126+ </ p >
127+ < ul className = "text-white text-sm list-disc list-inside" >
128+ < li key = { meeting . creator } > { meeting . creator } </ li >
129+ { userIds . map ( id => (
130+ < li key = { id } > { id } </ li >
131+ ) ) }
132+ </ ul >
133+ </ >
134+ ) }
108135 </ div >
109136 </ div >
110137
@@ -148,5 +175,6 @@ export default function MeetingSearchResult({ meeting }: Props) {
148175 ) }
149176 </ div >
150177 </ div >
151- ) ;
178+ )
179+ ;
152180}
0 commit comments