fix: event cards layout bugs
Some checks failed
tests / Tests (pull_request) Has been cancelled
docker-build / docker (pull_request) Has been cancelled
container-scan / Container Scan (pull_request) Has been cancelled

This commit is contained in:
Dominik 2025-07-01 11:36:40 +02:00
parent d7fdd5d257
commit 83fe2c772c
Signed by: dominik
GPG key ID: 06A4003FC5049644
3 changed files with 11 additions and 15 deletions

View file

@ -8,7 +8,6 @@ import {
useDeleteApiEventEventID, useDeleteApiEventEventID,
useGetApiEventEventID, useGetApiEventEventID,
} from '@/generated/api/event/event'; } from '@/generated/api/event/event';
import { useGetApiUserMe } from '@/generated/api/user/user';
import { RedirectButton } from '@/components/buttons/redirect-button'; import { RedirectButton } from '@/components/buttons/redirect-button';
import { useSession } from 'next-auth/react'; import { useSession } from 'next-auth/react';
import ParticipantListEntry from '@/components/custom-ui/participant-list-entry'; import ParticipantListEntry from '@/components/custom-ui/participant-list-entry';
@ -35,10 +34,9 @@ export default function ShowEvent() {
// Fetch event data // Fetch event data
const { data: eventData, isLoading, error } = useGetApiEventEventID(eventID); const { data: eventData, isLoading, error } = useGetApiEventEventID(eventID);
const { data: userData, isLoading: userLoading } = useGetApiUserMe();
const deleteEvent = useDeleteApiEventEventID(); const deleteEvent = useDeleteApiEventEventID();
if (isLoading || userLoading) { if (isLoading) {
return ( return (
<div className='flex justify-center items-center h-full'>Loading...</div> <div className='flex justify-center items-center h-full'>Loading...</div>
); );
@ -143,7 +141,7 @@ export default function ShowEvent() {
Organiser: Organiser:
</Label> </Label>
<Label size='large'> <Label size='large'>
{userData?.data.user?.name || 'Unknown User'} {eventData.data.event.organizer.name || 'Unknown User'}
</Label> </Label>
</div> </div>
</div> </div>
@ -160,7 +158,7 @@ export default function ShowEvent() {
<Label className='text-[var(--color-neutral-300)] mb-2'> <Label className='text-[var(--color-neutral-300)] mb-2'>
Participants Participants
</Label>{' '} </Label>{' '}
<div className='grid grid-cols-1 mt-3 sm:max-h-60 sm:grid-cols-2 sm:overflow-y-auto sm:mb-0'> <div className='grid grid-cols-1 mt-3'>
{eventData.data.event.participants?.map((user) => ( {eventData.data.event.participants?.map((user) => (
<ParticipantListEntry <ParticipantListEntry
key={user.user.id} key={user.user.id}

View file

@ -30,6 +30,7 @@ import {
DialogTitle, DialogTitle,
DialogTrigger, DialogTrigger,
} from '../ui/dialog'; } from '../ui/dialog';
import { useGetApiUserMe } from '@/generated/api/user/user';
type User = zod.output<typeof PublicUserSchema>; type User = zod.output<typeof PublicUserSchema>;
@ -56,13 +57,10 @@ const EventForm: React.FC<EventFormProps> = (props) => {
isSuccess, isSuccess,
error, error,
} = usePostApiEvent(); } = usePostApiEvent();
const { const { data: eventData } = useGetApiEventEventID(props.eventId!, {
data: eventData,
isLoading,
isError,
} = useGetApiEventEventID(props.eventId!, {
query: { enabled: props.type === 'edit' }, query: { enabled: props.type === 'edit' },
}); });
const { data, isLoading, isError } = useGetApiUserMe();
const patchEvent = usePatchApiEventEventID(); const patchEvent = usePatchApiEventEventID();
const router = useRouter(); const router = useRouter();
@ -299,7 +297,7 @@ const EventForm: React.FC<EventFormProps> = (props) => {
<p className='text-[var(--color-neutral-300)]'> <p className='text-[var(--color-neutral-300)]'>
{!isClient || isLoading {!isClient || isLoading
? 'Loading...' ? 'Loading...'
: eventData?.data.event.organizer.name || 'Unknown User'} : data?.data.user.name || 'Unknown User'}
</p> </p>
</div> </div>
</div> </div>
@ -336,7 +334,7 @@ const EventForm: React.FC<EventFormProps> = (props) => {
<DialogTrigger asChild> <DialogTrigger asChild>
<Button variant='primary'>Calendar</Button> <Button variant='primary'>Calendar</Button>
</DialogTrigger> </DialogTrigger>
<div className='grid grid-cols-1 mt-3 sm:max-h-60 sm:grid-cols-2 sm:overflow-y-auto sm:mb-0'> <div className='grid grid-cols-1 mt-3'>
{selectedParticipants.map((user) => ( {selectedParticipants.map((user) => (
<ParticipantListEntry <ParticipantListEntry
key={user.id} key={user.id}

View file

@ -32,8 +32,8 @@ export default function TimePicker({
const [open, setOpen] = React.useState(false); const [open, setOpen] = React.useState(false);
return ( return (
<div className='flex gap-4' {...props}> <div className='grid grid-cols-2 gap-4' {...props}>
<div className='flex flex-col gap-3'> <div className='grid grid-rows-2 gap-2'>
<Label htmlFor='date' className='px-1'> <Label htmlFor='date' className='px-1'>
{dateLabel} {dateLabel}
</Label> </Label>
@ -69,7 +69,7 @@ export default function TimePicker({
</PopoverContent> </PopoverContent>
</Popover> </Popover>
</div> </div>
<div className='flex flex-col gap-3'> <div className='grid grid-rows-2 gap-2'>
<Label htmlFor='time' className='px-1'> <Label htmlFor='time' className='px-1'>
{timeLabel} {timeLabel}
</Label> </Label>