Skip to content

Commit aa5e486

Browse files
author
Alexandra Zwinger
committed
Make MeetinSearchResult responsive
1 parent 41ed29c commit aa5e486

File tree

1 file changed

+53
-25
lines changed

1 file changed

+53
-25
lines changed

src/components/meeting/MeetingSearchResult.tsx

Lines changed: 53 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
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";
66
import 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

1012
interface 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

Comments
 (0)